PTC - Zadanie VI - VHDL 3: przelicznik
Treść zadania:
Zadanie polega na napisaniu w języku VHDL programu realizującego poniżej
opisany układ. Zaimplementowany układ należy uruchomić w środowisku
Quartus II na płycie Altera.
Do zrealizowania jest układ, którego podstawę stanowić będą dwa liczniki
zbudowane z przerzutników oraz multiplekserów 8-wejściowych.
Multipleksery będą pełnić w licznikach funkcje realizowane do tej pory
przez zespoły bramek (jeżeli funkcja podawana na wejście przerzutnika
jest bardzo prosta i może zostać zrealizowana pojedynczą bramką dwuwejściową,
dopuszcza się taką realizację; wszystkie bardziej złożone funkcje muszą
zostać zrealizowane na multiplekserze − każda funkcja na jednym multiplekserze).
Oba liczniki mają być taktowane tym samym sygnałem zegarowym. Należy
zastosować generator impulsów zegarowych z płyty Altera (odpowiednio
spowolniony). Pierwszy licznik, na przerzutnikach JK, będzie liczył
w kodzie Input danej osoby do tyłu, począwszy od liczby wprowadzonej
przez użytkownika. Drugi licznik, na przerzutnikach D, będzie liczył
w kodzie Output danej osoby do przodu, począwszy od pierwszej liczby
z listy.
Cały układ musi zostać uzupełniony o dodatkowe elementy.
Przycisk LOAD ma spowodować rozpoczęcie pracy układu: ustawienie licznika
pierwszego w stan podany przez użytkownika, ustawienie licznika drugiego
w stan pierwszy z ciągu Output, wyzerowanie wyjść END i ERROR. Kolejne takty
zegara będą powodowały (niemalże) równoczesną zmianę stanów obu liczników
(na stan poprzedni w przypadku pierwszego licznika lub na stan następny
w przypadku drugiego licznika). Cały układ ma zakończyć pracę po dojściu
licznika pierwszego do pierwszego stanu z ciągu Input − wtedy odcinany
jest sygnał zegarowy od obu liczników i dalsze taktowanie nie ma wpływu na
stan liczników, a wyjście END przyjmuje wartość 1. W tym czasie licznik drugi
osiągnął stan w ciągu Output, który znajduje się w tej samej kolumnie,
co liczba wprowadzona przez użytkownika (od której licznik pierwszy rozpoczął
zliczanie). Kolejne stany licznika drugiego mają być wyświetlane na wyjściu
w systemie dziesiętnym (na wyświetlaczach 7-segmentowych) jako rezultat
pracy układu.
Jeżeli liczba wprowadzona przez użytkownika nie występuje w kodzie Input
danej osoby, po zwolnieniu LOAD wyjście ERROR powinno przyjąć wartość 1,
a sygnał zegarowy powinien pozostać odcięty.
Przewidywany termin realizacji:
Zadanie będzie realizowane na zajęciach w dniu 14 stycznia
i zostanie sprawdzone na zajęciach w dniu 21 stycznia.
Powrót
Back to the Marta Kasprzak's Home Page
26 Sep 2018