Sprzęt i architektura komputerów
Transkrypt
Sprzęt i architektura komputerów
Radosław Maciaszczyk Sprzęt i architektura komputerów Laboratorium Temat: Projektowanie detektora sekwencji Katedra Architektury Komputerów i Telekomunikacji SPIS TREŚCI 2.1.Przykład projektowy...............................................................................................................................2 2.1.1.Specyfikacja układu, określenie liczby wejść i wyjść układu................................................................2 2.1.2.Opracowanie opisu formalnego, opracowanie grafu stanów lub tablicę przejść i wyjść.....................2 2.1.3.Przypisanie stanom odpowiednich kodów binarnych.........................................................................4 2.1.4.Określenie równań wejściowych przerzutników.................................................................................4 2.1.5.Określenie równań wyjściowych przerzutników..................................................................................4 2.1.6.Optymalizacja......................................................................................................................................5 2.1.7.Wybór technologii i realizacja.............................................................................................................5 2.1.8.Weryfikacja..........................................................................................................................................5 1. W YM AGAN I A Wykonanie niniejszego ćwiczenia wymaga od studenta posiadania wiedzy i umiejętności z zakresu: • zasad działania oraz sposobów formalnego opisu przerzutników synchronicznych typu D i JK ze szczególnym uwzględnieniem tablicy wzbudzeń, • własności i zastosowań automatów Moore’a oraz Mealy’ego do opisu układów sekwencyjnych, • zasad działania i sposobu projektowania detektora sekwencji, • podstaw posługiwania się narzędziem Xilinx ISE, a w szczególności tworzenia projektu opartego na schemacie, wykonania operacji implementacji, przeprowadzenia symulacji opartej na jednostce testowej (ang. test bench) implementowanej w języku VHDL. 2. P R Z EBI EG Ć WI C ZEN I A Projektowanie detektora sekwencji jest zagadnieniem bardzo obszernym i jako takie jest szeroko omawiane w dostępnej literaturze. Niniejsze ćwiczenie ma na celu jedynie wstępne przedstawienie zasady działania, struktur oraz elementów projektowania detektora sekwencji w oparciu o automat Moor’a W ra mach wstępu do praktycznych ćwiczeń zaprezentowany zostanie przykład projektowy wybranego detektora sekwencji. Zadanie projektowe można podzielić na 8 etapów 2.1. PRZYKŁAD PROJEKTOWY Zadanie: Zaprojektować układ wykrywający podaną sekwencję wejściową wykorzystując model automatu Moore’a i przerzutniki typu D. Sekwencja wejściowa : 0110011 2.1.1. SPECYFIKACJA UKŁADU, OKREŚLENIE LICZBY WEJŚĆ I WYJŚĆ UKŁADU Układ ma jedno wejście i jedno wyjście 2.1.2. OPRACOWANIE OPISU FORMALNEGO, OPRACOWANIE GRAFU STANÓW LUB TABLICĘ PRZEJŚĆ I WYJŚĆ Stany wewnętrzne oznaczają ilość symboli dostarczonych na wejściu spełniających jednocześnie sekwencję wejściową. Najpierw tworzymy pierwszy stan wewnętrzny oraz określamy stany wyjść układu. Następnie w zależności od szukanej sekwencji określamy warunki przejścia do kolejnego stanu. W tym przypadku gdy na wejściu pojawi się symbol 1 to układ pozostanie w tym stanie. Gdy na wejściu pojawi się symbol 0 to zgodnie z badaną sekwencją układ będzie w stanie q2, zaś stan wyjściowy nadal będzie miał wartość 0. Po tym etapie projektowany układ rozpoznał symbol ”1” na wejściu. Teraz przystępujemy do badanie kolejnego symbolu na wejściu układu. W przypadku, gdy to będzie symbol 1 to układ przejdzie do następnego stanu „g3”, gdy to będzie symbol „0” to układ pozostanie w tym stanie, ponieważ stan q2 oznacza, że w ciągu wejściowym pojawiła się już sekwencja „0”. Układ w stanie q3 rozpoznał sekwencje symboli „01” Następnym szukanym symbolem jest również symbol „1”. Z tego względu układ przejdzie do stanu „q4” gdy pojawi się na wejściu symbol „1” (rozpoznana sekwencja „011”) gdy pojawi się symbol „0”(rozpoznana sekwencja 010 - nieprawidłowa) to układ powróci do stanu „q2” w którym rozpoznana jest już sekwencja „0”. W przypadku braku odpowiedniej sekwencji, zawsze szukamy sekwencji odrzucając najstarszy symbol. W naszym przypadku jeżeli z sekwencji „010” odrzucimy „0” to pozostanie sekwencja „10” która, jest nieprawidłowa. W kolejnym kroku odrzucamy „symbol „1” i zostaje sekwencja „0”, a ta występuje w stanie q2. Tak postępujemy do momentu zbudowania całego grafu. W efekcie dla sekwencji „0110011” otrzymamy następujący graf: Warto zauważyć, że wartość wyjściową 1 otrzymujemy tylko w stanie „q8”. Po znalezieniu odpowiedniej sekwencji układ nie kasuje historii symboli i kontynuuje badanie sekwencji odrzucając najstarszy symbol. W naszym przypadku jest to sekwencja „1100110” (gdy następny symbol to „0” lub „1100111” gdy następny symbol to 1. Obydwie sekwencje są nieprawidłowe, odrzucając kolejne najstarsze symbole dochodzimy do sytuacji, w której układ wraca do stanu q1 gdy na wejściu pojawił się symbol „1” i do stanu q2 gdy na wejściu pojawił się symbol „0” 2.1.3. PRZYPISANIE STANOM ODPOWIEDNICH KODÓW BINARNYCH Na podstawie grafu tworzymy tablice stanów. Następnie poszczególnym stanom przypisujemy kody binarne. Istnieją różne sposoby przypisywania kodów binarnych, i w zależności od przyjętych zasad wynikowy układ może nie być optymalny. Rozpatrywany przykład posiada 8 stanów wejściowych, które da się zakodować na 3 bitach stąd: przyjęto że poszczególne stany będą miał y następujące wartości binarne: Co w efekcie daje tablice stanów: 2.1.4. OKREŚLENIE RÓWNAŃ WEJŚCIOWYCH PRZERZUTNIKÓW Na podstawie tablicy stanów oraz tablicy wzbudzeń danego przerzutnika tworzymy tablice Karnaugh dla każdego wejścia przerzutnika. W przypadku przerzutnika typu D jest to jedno wejście. 2.1.5. OKREŚLENIE RÓWNAŃ WYJŚCIOWYCH PRZERZUTNIKÓW Równanie dla przerzutnika Q1 Równanie dla przerzutnika Q2 Równanie dla przerzutnika Q3 Równanie wyjściowe 2.1.6. OPTYMALIZACJA Uzyskane równania są optymalne. 2.1.7. WYBÓR TECHNOLOGII I REALIZACJA 2.1.8. WERYFIK AC J A Należy napisać własny testbench 3. Z AD ANI E Zaprojektować i wykonać detektor sekwencji dla dowolnej 7-bitowej wartości sekwencji. 4. P OD SUM OWAN I E W wyniku przeprowadzonego ćwiczenia, a także ćwiczeń poprzednich student powinien nabyć bądź utrwalić następujące umiejętności: • projektowanie detektora sekwencji opartego na przerzutnikach typu D, • posługiwanie się narzędziem Xilinx ISE w zakresie utworzenia schematu oraz przeprowadzenia elementarnego testowania układu za pomocą pliku zawierającego jednostkę testującą (test bench).