Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gerador de Clock VHDL
Gerador de Clock VHDL
d (p/ nPeriodos ) da
entity Osc_1Hz is GENERIC (nPeriodos: integer := 27000000); -- 27000 ? para 1kHz; 270 ? para 100kHz; ... port (clk_27: in std_logic; relogio: out std_logic); end Osc_1Hz;
architecture Osc of Osc_1Hz is --constant nPeriodo: integer := 28; constant mPeriodo: integer := (nPeriodos/2); -- meio per? odo: onda sim? trica (ou quase). signal resto: integer range 0 to (nPeriodos - mPeriodo):=1;
begin relogio <= sRelogio; CompRel : process (clk_27) begin if (clk_27)='1' then -- borda de subida if resto = 1 then sRelogio <= not(sRelogio); end if; end if; end process CompRel;
SubRest : process (clk_27) begin if (clk_27)='0' then -- borda de descida --falling_edge (clk_27) if resto > 1 then resto <= resto - 1; else if sRelogio = '0' then --resto <= ((nPeriodo - (nPeriodo/2))1); resto <= nPeriodos - mPeriodo; else resto <= mPeriodo; end if; end if; end if; end process SubRest;
end Osc;