Dzielnik częstotliwości

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) (w trybie zdalnym - wirtualny przycisk BTN3) 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 Nexys-A7 (układ FPGA xc7a100tcsg324-1):  iup5s.xdc 

 

Wersja pliku z ograniczeniami projektowymi przeznaczona dla trybu zdalnego (obsługa przycisków wirtualnych): iup5z.xdc