Я новичок в VHDL. Мне дали этот код о том, как генерировать тактовый сигнал 1 Гц (рабочий цикл 50%) из входного тактового сигнала 24 МГц. У меня есть несколько вопросов для уточнения.
- Как выбирается лимит счетчика? в приведенном ниже случае 12000000. Каким будет этот предел, если я хочу генерировать тактовый сигнал 8 Гц.
Как следует настроить код, если я хочу изменить рабочий цикл на 80%?
library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity clock is port ( CLKin: in std_logic; reset: in std_logic; CLKout: out std_logic); end clock; architecture arch of clock is signal counter: integer:=0; signal temp : std_logic := '1'; begin process(CLKin,counter,reset) begin if(reset='0') then counter<=0; temp<='1'; elsif(CLKin'event and CLKin='1') then counter <=counter+1; if (counter = 12000000) then temp <= NOT temp; counter<=0; end if; end if; CLKout <= temp; end process; end arch;