-- GENERADOR DE FRECUENCIAS. -- Autor: Iván López Espejo. LIBRARY ieee; USE ieee.std_logic_1164.ALL; ENTITY GenFrec IS PORT ( Frecuencia : IN STD_LOGIC_VECTOR(3 DOWNTO 0); CLK : IN STD_LOGIC; CLKOut : OUT STD_LOGIC ); END GenFrec; ARCHITECTURE arq OF GenFrec IS SIGNAL Modula : INTEGER RANGE 0 TO 12588 := 0; SIGNAL Contador : INTEGER RANGE 0 TO 12588 := 0; SIGNAL Valor : STD_LOGIC; BEGIN WITH Frecuencia SELECT Modula <= 12588 WHEN "1111", 6294 WHEN "1110", 4196 WHEN "1101", 3147 WHEN "1100", 2518 WHEN "1011", 2098 WHEN "1010", 1799 WHEN "1001", 1574 WHEN "1000", 1399 WHEN "0111", 1259 WHEN "0110", 1145 WHEN "0101", 1049 WHEN "0100", 969 WHEN "0011", 900 WHEN "0010", 840 WHEN "0001", 787 WHEN "0000", 0 WHEN OTHERS; PROCESS (CLK,Modula,Valor) BEGIN IF CLK'event AND CLK = '1' THEN IF Contador < Modula THEN Contador <= Contador + 1; ELSE Contador <= 0; Valor <= not Valor; CLKOut <= Valor; END IF; END IF; END PROCESS; END arq;