Jak w tytule usiłuję zrealizować przestrajany generator sygnału prostokątnego, czyli nic innego jak dzielnik częstotliwości wzorcowej ze zmienną wartością dzielnika. Poniżej przedstawiam kod VHDL. Niestety po zaimplementowaniu go do maximatora nie działa. Byłbym wdzięczny za każde konstruktywne sugestie. Po wgraniu kod powinien generować sygnał wyjściowy o mniejszej częstotliwość co pół okresu (sygnał wzorcowy 400MHz).
Kod: Zaznacz cały
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
entity DIVIDER_2 is
port(
clk: in STD_LOGIC;
O : out STD_LOGIC
);
end DIVIDER_2;
architecture DIVIDER_2 of DIVIDER_2 is
signal divider: integer range 0 to 20000:=666; -- USTAWIAMY DZIELNIK
signal counter: integer range 0 to 2000:=0;
signal OI : STD_LOGIC;
begin
O <= OI;
process (clk) is
begin
if rising_edge (clk) then
if (counter < divider) then
counter <= counter + 1;
else
OI <= not OI;
counter <= 0;
divider <= divider + 1;
end if;
end if;
end process;
end DIVIDER_2;
Pozdrawiam,
Kamil