Salve, devo generare un' onda quadra a 10kHz in vhdl tramite un divisore di frequenza a partire da un clock a 50MHz. Questo è quanto ho fatto:
LIBRARY IEEE;
USE IEEE.std_logic_1164.all;
USE IEEE.std_logic_unsigned.all;
ENTITY ondaq IS
PORT(RST_N : IN std_logic;
CLK : IN std_logic;
clk_new : OUT std_logic
);
END ondaq;
ARCHITECTURE bhv OF ondaq IS
SIGNAL i_q : std_logic_vector(12 downto 0);
BEGIN
clk_new <= i_q(11);
cnt: PROCESS(CLK,RST_N)
BEGIN
IF RST_N = '0' THEN
i_q <= (OTHERS => '0');
ELSIF rising_edge(clk) THEN
if (i_q = 5000) then
i_q <= (OTHERS => '0');
else
i_q <= i_q + 1;
end if;
END IF;
END PROCESS;
END bhv;
sapreste dirmi come modificare il duty cycle di questa nuova forma d'onda al 20%, 40% e 60% senza variarne la frequenza?