Zadanie: Należy zaprojektować układ dzielnika częstotliwości przez N. Zapewnić wypełnienie przebiegu wyjściowego jak najbardziej zbliżone do 1/2 (dla parzystych N wypełnienie powinno wynosić dokładnie 1/2, dla nieparzystych N wypełnienie = 1/2 z dokładnością do jednego okresu sygnału wejściowego). Należy także umożliwić łatwą zmianę wartości N (np. poprzez constant lub generic). Dzielnik powinien mieć wejście resetu asynchronicznego powodującego zresetowanie licznika w dzielniku (na wyjściu powinno pojawić się zero).
Wejścia układu:
- zegar wejściowy 100 MHz ( nazwa sygnału clk_i ),
- przycisk BTNR na płytce prototypowej (prawy) stanowiący reset
asynchroniczny ( nazwa sygnału - rst_i ).
Wyjścia układu:
- dioda świecąca LD0 – wyjście dzielnika ( nazwa sygnału - led_o ).
Należy wykonać symulację funkcjonalną oraz zweryfikować układ praktycznie poprzez zaprogramowanie płytki testowej.
Minimalne wymagania dotyczące symulacji i weryfikacji na płytce: wykonać reset dwa razy: na początku symulacji/weryfikacji i w jej trakcie, ale w taki sposób, aby było widać jego działanie na wyjściu dzielnika. Symulacja/weryfikacja musi pokazać kilka cykli migania diody. Do celów symulacji podział N ustawić na liczbę równą sumie cyfr indeksu studenta zaliczającego ćwiczenie (w przypadku grupy – wziąć numer indeksu dowolnego ze studentów z grupy) i uwidocznić równocześnie na tym samym wykresie zarówno sygnał zegara jak i wyjście dzielnika. Częstotliwość zegara w symulacji – 100 MHz.
W celu weryfikacji ustawić podział N tak, aby otrzymać miganie diody LED0 z częstotliwością 1Hz.
Fragment głównego pliku projektowego VHDL z deklaracją sygnałów:
entity top is
Port ( clk_i : in STD_LOGIC;
rst_i : in STD_LOGIC;
led_o : out STD_LOGIC);
end top;
Plik z ograniczeniami
projektowymi dla płytki Basys 3 (układ FPGA xc7a35tcpg236-1): iup5.xdc