Está en la página 1de 2

-- Oscilador com entrada de 27MHz e sa?

d (p/ nPeriodos ) da

library IEEE; use IEEE.std_logic_1164.all;

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;

signal sRelogio: std_logic := '0';

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;

También podría gustarte