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