Instrukcja

Transkrypt

Instrukcja
Mirosław Łazoryszczak
Technika cyfrowa
Laboratorium nr 7
Temat:
Liczniki synchroniczne
Katedra Architektury Komputerów i Telekomunikacji
Zakład Systemów i Sieci Komputerowych
SPIS TREŚCI
1. Wymagania ................................................................................................. 3
2. Przebieg ćwiczenia....................................................................................... 3
2.1.
Przykład projektowy ............................................................................. 3
2.2.
Weryfikacja projektu w środowisku Xilinx ISE ....................................... 7
3. Zadania...................................................................................................... 14
4. Podsumowanie.......................................................................................... 14
5. Literatura................................................................................................... 14
Technika cyfrowa – Laboratorium nr 7
1. W Y M A GAN 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 liczników synchronicznych zliczających w założonym
zakresie liczenia, w różnych kierunkach (w przód, w tył, rewersyjnie) z wykorzystaniem różnych
sposobów kodów i różnych przerzutników,
• 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. PRZEBI EG ĆW I CZEN I A
Projektowanie liczników synchronicznych 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 różnorodnych liczników
synchronicznych. W ramach wstępu do praktycznych ćwiczeń zaprezentowany zostanie przykład
projektowy wybranego licznika synchronicznego.
Liczniki synchroniczne stanowią pewien podzbiór synchronicznych układów sekwencyjnych.
Jednak w stosunku do ogólnych metod projektowania układów sekwencyjnych projektowanie
liczników charakteryzuje się szeregiem uproszczeń. Licznik, o którym mowa w przykładzie jest
układem, który nie posiada wejścia. W tym sensie stanowi więc układ autonomiczny. W omawianym
przypadku redukcji ulega także funkcja wyjścia, bowiem wyjściem układu jest wektor stanów
wewnętrznych, reprezentujący kolejne wartości „zliczanych” impulsów zegarowych. Z punktu
widzenia teorii automatów, wejście zegarowe nie może być traktowane jako wejście układu.
W znaczeniu praktycznym sygnał zegarowy jest właśnie tym wejściem, którego zmiany będą
rejestrowane przez układ licznika.
2.1. PRZYKŁAD PROJEKTOWY
Zadanie
Zaprojektuj synchroniczny licznik binarny trzybitowy (modulo 8) oparty na przerzutnikach
typu JK zliczający wstecz.
Ze względu na brak wejść, opis za pomocą grafu nie jest zbyt przydatny i dlatego też
zastosowany zostanie opis w postaci tabeli stanów. W przypadku licznika nie występuje także proces
kodowania stanów, a w konkretnym omawianym przykładzie nie będą realizowane także funkcje
wyjścia. W celu wypełnienia tablic Karnaugh konieczne będzie posłużenie się tablicą wzbudzeń
przerzutnika JK, znaną np. z wykonanych wcześniej ćwiczeń laboratoryjnych.
Wszystkie założenia projektowe zawarte są w treści zadania. Licznik binarny trzybitowy
determinuje konieczność użycia trzech przerzutników, których rodzaj jest również określony w treści
zadania. W procesie projektowym znany jest także arbitralnie przyjęty model ogólnej struktury
układu przedstawiony na rys. 1, w którym zespół przerzutników taktowany jest wspólnym sygnałem
zegarowym. Na wyjścia licznika składają się wyjścia poszczególnych przerzutników. Projektowanie
licznika w praktyce sprowadza się zatem do wyznaczenia zbioru funkcji logicznych nazywanych
funkcjami przejść δi.
Strona 3 z 14
Technika cyfrowa – Laboratorium nr 7
Rys. 1.
Ogólna struktura układu licznika synchronicznego opartego na przerzutnikach JK
W szczególnym przypadku funkcje dla poszczególnych wejść kolejnych przerzutników mogą być
funkcjami tożsamościowymi lub stałymi, co oznacza np. dołączenie wybranego wyjścia przerzutnika
(w postaci prostej lub zanegowanej) lub logicznego „0”, lub „1” do wejścia J lub K innego
przerzutnika.
Projektowanie licznika o parametrach określonych w zadaniu należy rozpocząć od
skonstruowania tablicy przejść.
Tabela 1: Tablica przejść ilustrująca działanie licznika
Qn
Qn+1
q3q2q1 q3’q2’q1’
0
000
111
1
001
000
2
010
001
3
011
010
4
100
011
5
101
100
6
110
101
7
111
110
W kolumnie Qn podano stan bieżący układu, na który to stan składają się wyjścia
poszczególnych przerzutników, zaś kolumna Qn+1 zawiera stan następny układu, który jest
konsekwencją pojawienia się impulsu taktującego na wejściu zegarowym układu. Licznik zliczający
wstecz działa w ten sposób, że jeśli na jego wyjściach pojawia się kombinacja binarna odpowiadająca
liczbie n, to w kolejnym takcie zegara na wyjściu powinna pojawić się liczba n-1. Licznik powinien
działać bez zatrzymania, czyli po osiągnięciu wartości minimalnej powinien rozpocząć zliczanie od
wartości maksymalnej w dół. Przy czym należy zauważyć, że powyższą tablicę przejść trzeba czytać
wierszami, obserwując zmiany stanu z bieżącego na następny. Wobec jeśli na wyjściu licznika w
stanie bieżącym występuje kombinacja „000”, to w stanie następnym powinna się pojawić
kombinacja „111”.
W kolejnym kroku wykorzystana zostanie tablica wzbudzeń przerzutnika JK (tablica 2). Dzięki
niej możliwe będzie określenie wartości logicznych koniecznych do dostarczenia na wejścia J oraz K
poszczególnych przerzutników tak, aby uzyskać wymaganą zmianę stanów ich wyjść zgodnie z tablicą
przejść licznika.
Strona 4 z 14
Technika cyfrowa – Laboratorium nr 7
Następny etap projektowania licznika polega na wyznaczeniu funkcji przejść. W omawianym
przykładzie należy wyznaczyć po jednej funkcji na każde wejście wszystkich przerzutników. Trzy bity
licznika wymagają trzech przerzutników, z których każdy posiada dwa wejścia (J, K). Łacznie
potrzebne będzie wyznaczenie sześciu funkcji przejść za pomocą sześciu tablic Karnaugh.
Tabela 2: Tablica wzbudzeń przerzutnika JK
Qn→Qn+1
J
K
0→0
0
X
0→1
1
X
1→0
X
1
1→1
X
0
Sposób wyznaczania wartości dla poszczególnych funkcji przejść podano na rys. 2.
Przedstawiono tam schemat wraz z objaśnieniami wypełniania dwóch tablic Karnaugh jednocześnie
dla przerzutnika nr 3. Strzałkami zaznaczono mechanizm wypełniania pierwszej kratki obu tablic
Karnaugh dla argumentów q3=0, q2=0, q3=0. Pozostałe pola wypełniane są w sposób analogiczny, tzn.
po przejściu do kolejnego wiersza należy sprawdzić zmianę wartości dla kolumn odpowiednio q3 oraz
q3’. Po wypełnieniu tablic dla wejść J i K przerzutnika Q3 procedura ulega powtórzeniu, przy czym
obserwuje się zmienność wartości dla kolumn q2 oraz q2’, a następnie q1 oraz q1’.
Qn
Qn+1
q3q2q1 q3’q2’q1’
0
000
111
1
001
000
2
010
001
3
011
010
Qn→Qn+1
J
K
4
100
011
0→0
0
X
5
101
100
0→1
1
X
1→0
X
1
1→1
X
0
6
110
101
7
111
110
δ 3K
δ 3J
q2q1
q2q1
00
01
11
10
0
0
X
X
X
X
X
1
1
0
0
0
00
01
11
10
0
1
0
0
1
X
X
X
q3
Rys. 2.
q3
Schemat wyznaczania wartości funkcji przejść
Po utworzeniu zestawu tablic Karnaugh dokonujemy minimalizacji wszystkich funkcji
logicznych. W poniższym zestawie tablic (Tabele od 3 do 5) pod odpowiednimi tablicami
zamieszczono wyznaczone funkcje przejść. Funkcje te następnie należy zaimplementować wewnątrz
odpowiednich bloków funkcji logicznych z rysunku 1.
Strona 5 z 14
Technika cyfrowa – Laboratorium nr 7
Tabela 3: Tablice Karnaugh dla funkcji
q2q1
oraz
00
01
11
10
0
0
X
X
X
X
X
1
1
0
0
0
01
11
10
0
1
0
0
1
X
X
X
q3
δ 3J = q 2 q1
δ 3K = q 2 q1
Tabela 4: Tablice Karnaugh dla funkcji
q2q1
δ 2J
oraz
δ 2K
q2q1
00
01
11
10
X
0
X
X
0
1
X
1
X
X
0
1
00
01
11
10
0
1
0
X
1
1
0
X
q3
δ 3K
q2q1
00
q3
δ 3J
q3
δ 2J = q1
δ 2K = q1
Tabela 5: Tablice Karnaugh dla funkcji
q2q1
oraz
δ1K
q2q1
00
01
11
10
1
0
X
1
1
X
1
1
X
1
1
X
00
01
11
10
0
1
X
X
1
1
X
X
q3
δ1J
q3
δ 1J = 1
δ 1K = 1
Po wyznaczeniu wszystkich funkcji przejść możliwe jest skonstruowanie licznika wg znanej
struktury. Dzięki relatywnie nieskomplikowanym funkcjom logicznym układ licznika trzybitowego
liczącego wstecz przyjmie postać jak na rys. 3
Rys. 3.
Schemat zaprojektowanego licznika binarnego trzybitowego (modulo 8) zliczającego wstecz
Układ ten może zostać następnie wprowadzony do środowiska projektowego Xilinx ISE w
postaci schematu oraz sprawdzony pod względem funkcjonalnym w sposób analogiczny do
poprzednich zajęć laboratoryjnych.
Strona 6 z 14
Technika cyfrowa – Laboratorium nr 7
2.2. WERYFIKACJA PROJEKTU W ŚRODOWISKU XILINX ISE
UWAGA:
Przed rozpoczęciem pracy z komputerem należy bezwzględnie wykonać proces
mapowania dysku sieciowego zgodnie z dodatkową instrukcją znajdującą się na
stanowisku laboratoryjnym.
1. Uruchom skrót Xilinx ISE Design Suite. znajdujący się na pulpicie. Jeśli brak odpowiedniego
skrótu, uruchom Start → Programy → Xilinx ISE Design Suite 13.2 → ISE Design Tools →
Project Navigator. Jeśli po uruchomieniu środowiska automatycznie otwarty zostanie
projekt, zamknij go za pomocą opcji menu FIle | Close Project.
2. Utwórz nowy projekt za pomocą opcji File | New Project. W oknie dialogowym wpisz
nazwę projektu, zwracając uwagę na lokalizację nowego projektu na zmapowanym dysku
sieciowym użytkownika oraz wybierz Schematic jako typ źródła najwyższego poziomu (Toplevel source type)
Rys. 4.
Okno kreatora nowego projektu
3. W kolejnym oknie dialogowym ustaw opcje zgodnie z rys. 5. Zwróć uwagę, aby ustawić
opcje dotyczące platformy sprzętowej w celu uniknięcia ew. komplikacji w późniejszej fazie
projektu.
Strona 7 z 14
Technika cyfrowa – Laboratorium nr 7
Rys. 5.
Okno ustawień projektu
4. Następnie zostanie wyświetlone okno podsumowania kreatora projektu (rys. 6). Zatwierdź
je przyciskiem Finish.
Rys. 6.
Okno podsumowania kreatora projektu
Strona 8 z 14
Technika cyfrowa – Laboratorium nr 7
5. W oknie Design kliknij prawym klawiszem myszy na pozycji oznaczającej platformę
sprzętową (xc2c256) i wybierz opcję New Source... (rys. 7)
Rys. 7.
Operacja dodawania nowego źródła do projektu
6. W oknie z rys. 8 określ typ źródła jako Schematic, nadaj mu dowolną nazwę i wciśnij
przycisk Next, a następnie zatwierdź okno podsumowania pliku źródłowego za pomocą
przycisku Finish.
Rys. 8.
Utworzenie nowego źródła w postaci schematu
7. Utwórz schemat korzystając z elementów FJKC (przerzutnik JK) oraz odpowiednich bramek,
korzystając z panelu Symbols (rys. 9).
Strona 9 z 14
Technika cyfrowa – Laboratorium nr 7
Rys. 9.
Panel Symbols
8. Następnie połącz elementy umieszczone na schemacie korzystając z narzędzia Add Wire
oraz dodaj porty We/Wy przy pomocy Add I/O Marker i zmień nazwy portów klikając
prawym klawiszem myszy na wybranym porcie i wybierając z menu podręcznego opcję
Rename Port (rys. 10)
Rys. 10. Przybornik narzędziowy w oknie schematu
9. Przykładowy widok ukończonego schematu przedstawiono na rys. 11
Strona 10 z 14
Technika cyfrowa – Laboratorium nr 7
Rys. 11. Schemat licznika utworzony w oknie schematu
10. Następnie przełącz tryb widoku w panelu Design na Simulation i dodaj nowe źródło w
postaci jednostki testowej (Test Bench) do projektu (rys. 12).
Rys. 12. Dodawanie nowej jednostki testowej do projektu
11. Określ typ dodawanego źródła jako VHDL Test Bench i nadaj nazwę plikowi zawierającemu
jednostkę testową oraz kliknij przycisk Next (rys. 13). W kolejnym oknie dialogowym
zatwierdź powiązanie nowej jednostki testowej z układem licznika wprowadzonym
uprzednio w postaci schematu. Przyciskiem Next przejdź do kolejnego kroku i zatwierdź
okno podsumowania za pomocą przycisku Finish.
Strona 11 z 14
Technika cyfrowa – Laboratorium nr 7
Rys. 13. Utworzenie nowego źródła w postaci jednostki testowej
12. Po utworzeniu jednostki testowej w edytorze automatycznie powinien ukazać się kod
VHDL jednostki testowej w postaci podobnej jak na wydruku 1.
ARCHITECTURE behavioral OF counter_1_counter_1_sch_tb IS
COMPONENT counter_1
PORT( X1
:
OUT
X2 :
OUT
CLK :
IN
X3 :
OUT
END COMPONENT;
SIGNAL
SIGNAL
SIGNAL
SIGNAL
X1
X2
CLK
X3
:
:
:
:
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC);
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
STD_LOGIC;
BEGIN
UUT: counter_1 PORT MAP(
X1 => X1,
X2 => X2,
CLK => CLK,
X3 => X3
);
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
WAIT; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
END;
Wydruk 1: Fragment kodu automatycznie utworzonej jednostki testowej
Strona 12 z 14
Technika cyfrowa – Laboratorium nr 7
13. Pomiędzy słowami kluczowymi BEGIN oraz END PROCESS wyróżnionymi na powyższym
wydruku czcionką pogrubioną umieść fragment kodu przedstawiony na wydruku 2,
pamiętając o zapisaniu pliku.
-- *** Test Bench - User Defined Section ***
tb : PROCESS
BEGIN
for i in 0 to 20 loop
clk <= '0';
WAIT for 1 ns;
clk <= '1';
WAIT for 1 ns;
end loop;
--WAIT; -- will wait forever
END PROCESS;
-- *** End Test Bench - User Defined Section ***
Wydruk 2: Kod jednostki testującej uzupełniony o kod umożliwiający weryfikację funkcjonalną zaprojektowanego licznika
14. Następnie w panelu Design w bloku Hierarchy podświetl plik z jednostką projektową i w
bloku Processes kliknij dwukrotnie opcję Simulate Behavioral Model (rys. 14).
Rys. 14. Panel Design umożliwiający uruchomienie procesu symulacji układu licznika
Jeśli proces uruchomienia symulacji przebiegnie bez błędów, powinno automatycznie ukazać
okno programu ISim (rys. 15). Przeskaluj widok przebiegów czasowych na ekranie tak, aby możliwa
była obserwacja wszystkich przebiegów czasowych licznika wyznaczonych przez jednostkę
projektową. Przeanalizuj poprawność działania licznika na podstawie otrzymanych wykresów
czasowych.
Rys. 15. Fragment okna programu ISim z widocznymi przebiegami czasowymi testowanego licznika
Strona 13 z 14
Technika cyfrowa – Laboratorium nr 7
3. ZA D A N IA
Zadanie 1
Zaprojektuj dwubitowy licznik synchroniczny, zliczający w przód w kodzie binarnym oparty na
przerzutnikach typu JK. Przedstaw odpowiednie tablice ilustrujące proces projektowania, wyznacz
funkcje przejść układu oraz wykonaj weryfikację poprawności działania układu przy pomocy narzędzia
Xilinx ISE.
Zadanie 2
Zaprojektuj trzybitowy licznik synchroniczny zliczający wstecz w kodzie binarnym oparty na
przerzutnikach typu D. Przedstaw odpowiednie tablice ilustrujące proces projektowania, wyznacz
funkcje przejść układu oraz wykonaj weryfikację poprawności działania układu przy pomocy narzędzia
Xilinx ISE.
Zadanie 3
Zaprojektuj trzybitowy licznik synchroniczny rewersyjny (zliczający w przód lub wstecz) oparty
na przerzutnikach typu JK. Przedstaw odpowiednie tablice ilustrujące proces projektowania, wyznacz
funkcje przejść układu oraz wykonaj weryfikację poprawności działania układu przy pomocy narzędzia
Xilinx ISE.
WSKAZÓWKI:
1. Do zaprojektowania licznika rewersyjnego konieczne jest zastosowanie dodatkowego
wejścia, które określa kierunek zliczania. Można przyjąć, że stan niski na wejściu kierunku
oznacza zliczanie w przód, natomiast stan wysoki oznacza zliczanie wstecz.
2. Wejście określające kierunek zliczania powinno stanowić jeden z argumentów dla funkcji
przejść wraz ze stanem wewnętrznym układu reprezentowanym przez wyjścia
poszczególnych przerzutników.
4. PO D SUM O W A N IE
W wyniku przeprowadzonego ćwiczenia, a także ćwiczeń poprzednich student powinien nabyć
bądź utrwalić następujące umiejętności:
• projektowanie liczników synchronicznych opartych na przerzutnikach typu D oraz JK
zliczających w przód oraz wstecz,
• 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).
5. L I TERA TURA
[1]
[2]
[3]
[4]
Kalisz J.: Podstawy elektroniki cyfrowej, WNT, Warszawa 1999
Pieńkos J., Turczyński J.: Układy scalone TTL w systemach cyfrowych, WKŁ, Warszawa 1986
Wilkinson B.: Układy Cyfrowe, WKŁ, Warszawa 2000
Zwoliński M., Projektowanie układów cyfrowych z wykorzystaniem języka VHDL, WKŁ,
Warszawa 2002
Strona 14 z 14

Podobne dokumenty