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