Pobierz

Transkrypt

Pobierz
GENERATORY SEKWENCJI
Celem ćwiczenia jest stworzenie prostego automatu autonomicznego będącego nietypowym licznikiem, poznanie sposobu kodowania stanów, zbadanie zależności czasowych.
Zagadnienia
Teoria automatów, automat Moore’a, kodowanie stanów, liczniki.
Zadanie 1 :
Utworzyć licznik zliczający w sekwencji 0 →1→2→4→8→0........... itd....
1. ZBUDOWAĆ OPIS FORMALNY, w postaci symbolicznej tabeli przejść.
2. Zbudować zakodowaną tablicę przejść przy założeniu oczywistego w tym
przypadku kodowania stanów zgodnie z binarną reprezentacją kolejnych cyfr
w sekwencji.
3. Wyznaczyć funkcję wzbudzeń dla każdej zmiennej stanu, zgodnie z uproszczonym diagramem automatu Moore’a, zakładając, że rejestr stanu jest wykonany z przerzutników D.
4.
Q(t)
γ
W(t) =Q(t+1) = f(Q(t))
µ
CLK
RST
Rys.1. Autonomiczna maszyna Moore’a
5. Na wejściu układu mamy sygnał zegarowy CLK i sygnał resetu asynchronicznego RST.
6. Stan wewnętrzny jest kodowany na wektorze Q(3 downto 0). Dla uniknię-
cia problemów implementacyjnych należy go zrealizować na sygnale
lokalnym, a potem - dzięki tożsamości stanu wewnętrznego i generowanej cyfry – przypisać do sygnału wyjściowego Qzew. Wprowadzić
opis automatu w VHDL opisując rejestr stanu w procesie, a blok γ np.
kombinacyjnie.
7. Sprawdzić działanie układu na symulatorze funkcjonalnym ( po syntezie). UWAGA ! Foundation 4.1i winno mieć zainstalowany Service Pack.
W przeciwnym razie w symulacji postimplementacyjnej wektory są rozbijane na pojedyncze linie z modyfikacją oznaczeń.
2005-03-14
Strona 1 z 2
licznik_01248
Zadanie 2 :
Utworzyć analogiczny licznik zliczający w sekwencji 0 →1→2→4→8→0... itd..
przy użyciu edytora FSM.
1. Używając edytora FSM stworzyć diagram, opisujący licznik o identycznych parametrach, jak powyższy. Wykorzystać sygnały RST i CLK, jak
poprzednio. Wektor wyjściowy nazwać wyjFSM. We własnościach maszyny wybrać reset asynchroniczny, wyjście kombinacyjne i kodowanie
definiowane przez użytkownika. Zakodować stany identycznie, jak poprzednio.
2. Dołączyć plik z maszyną stanów do projektu, a samą maszynę dołączyć
do powyższego generatora w postaci komponentu.
3. Usunąć stare dane implementacyjne, dokonać symulacji funkcjonalnej,
zapisać przebieg symulacji.
4. Wykonać implementację, wykonać weryfikację czasową z zegarem o
dużej częstotliwości z dużą rozdzielczością czasową. Sprawdzić, czy
parametry czasowe obu generatorów są identyczne. Wyjaśnić ewentualne różnice.
Zadanie 3 :
Utworzyć licznik zliczający w sekwencji 0 →1→3→5→7→9→0............ itd....
1. Wykorzystując metodologię z zadania 1. pkt. 1-4. stworzyć opis licznika
generującego sekwencję 0 →1→3→5→7→9→0.........
2. Dokonać redukcji funkcyj wzbudzeń, np. używając tablic Karnaugh’a.
3. Dołączyć opis do poprzedniego projektu, zgodnie z pkt. 6-7. zadania 1.
Aby nie zablokować działania poprzednich części projektu należy dodać
definicję rejestru Qnp, wektora wzbudzeń Wnp i sygnału wyjściowego
Qzewnp.
4. Ponownie dokonać syntezy i sprawdzić działanie wszystkich trzech części projektu.
Zadanie 4:
Utworzyć analogiczny licznik zliczający w sekwencji 0 →1→3→5→7→9→0...
itd.. przy użyciu edytora FSM.
1. Diagram licznika z zadania 2 zmodyfikować przez dodanie drugiej maszyny stanów realizującej zadanie 3 i sygnału wyjściowego
WyjFSMnp (3 downto 0).
2. Zakodować stany drugiej maszyny podobnie, jak poprzednio.
3. Zmodyfikować główny plik projektu.
a. Dodać do portu wyjściowego sygnał WyjFSMnp.
b. Zmodyfikować deklarację komponentu maszyny stanów przez
dodanie sygnału WyjFSMnp.
c. Zmodyfikować mapowanie komponentu.
4. DOKONAĆ IMPLEMENTACJI CAŁOŚCI I ZWERYFIKOWAĆ
CZASOWO.
2005-03-14
Strona 2 z 2
licznik_01248