evgoi
-
Постов
3 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные evgoi
-
-
не надо трогать этот модуль
надо сделать модуль обертку, который будет подавать увеличивающийся или уменьшающийся счетчик на вход этого модуля.
Спасибо!...А как это сделать не подскажите?
-
Доброго всем времени суток!...
Прошу помощи, мне требовалось сделать ШИМ с настройкой периода и частоты, при этом сейчас появилась необходимость добавить к уже имеющемуся коду настроечный вход типа "ПИЛЫ". Для 1 должна быть пила, а для 0 обратная пила.
Я даже теоретически не представляю себе как его сделать. Помогите пожалуйста дописать к уже имеющемуся коду данную настройку. Исходный код выложу ниже. Спасибо.
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.std_logic_unsigned.all; ENTITY pwm IS GENERIC( sys_clk : INTEGER := 50_000_000; pwm_freq : INTEGER := 100_000; bits_resolution : INTEGER := 8; phases : INTEGER := 1); PORT( clk : IN STD_LOGIC; reset_n : IN STD_LOGIC; ena : IN STD_LOGIC; duty : IN STD_LOGIC_VECTOR(bits_resolution-1 DOWNTO 0); pwm_out : OUT STD_LOGIC_VECTOR(phases-1 DOWNTO 0); pwm_n_out : OUT STD_LOGIC_VECTOR(phases-1 DOWNTO 0)); END pwm; ARCHITECTURE logic OF pwm IS CONSTANT period : INTEGER := sys_clk/pwm_freq; TYPE counters IS ARRAY (0 TO phases-1) OF INTEGER RANGE 0 TO period - 1; SIGNAL count : counters := (OTHERS => 0); SIGNAL half_duty : INTEGER RANGE 0 TO period/2 := 0; BEGIN PROCESS(clk, reset_n) BEGIN IF(reset_n = '0') THEN count <= (OTHERS => 0); pwm_out <= (OTHERS => '0'); pwm_n_out <= (OTHERS => '0'); ELSIF(clk'EVENT AND clk = '1') THEN IF(ena = '1') THEN half_duty <= conv_integer(duty)*period/(2**bits_resolution)/2; END IF; FOR i IN 0 to phases-1 LOOP IF(count(0) = period - 1 - i*period/phases) THEN count(i) <= 0; ELSE count(i) <= count(i) + 1; END IF; END LOOP; FOR i IN 0 to phases-1 LOOP IF(count(i) = half_duty) THEN pwm_out(i) <= '0'; pwm_n_out(i) <= '1'; ELSIF(count(i) = period - half_duty) THEN pwm_out(i) <= '1'; pwm_n_out(i) <= '0'; END IF; END LOOP; END IF; END PROCESS; END logic;
Как прикрутить к VHDL коду ШИМ настроечный вход?
в Языки проектирования на ПЛИС (FPGA)
Опубликовано · Пожаловаться
Большое спасибо вам!...