• Nie Znaleziono Wyników

Proces projekowania automatu synchronicznego

7. Projektowanie synchronicznego układu sekwencyjnego – Wojciech Śleszyński

7.3. Proces projekowania automatu synchronicznego

Proces projektowania automatu synchronicznego zostanie przedstawiony na przykładzie rozwiązania zadania detekcji ciągu (sekwencji) bitów 0110. Układ ma generować na wyjściu oznaczonym jako „wy” stan wysoki po wystąpieniu na wejściu „we” sekwencji 0110. Zostaną zaprojektowane trzy układy sekwencyjne, każdy z wykorzystaniem innego przerzutnika syn-chronicznego, kolejno D, JK oraz T. Projektowanie automatu synchronicznego zaczyna się od analizy opisu słownego. Narysowano graf automatu (rys. 7.1), na podstawie którego można w prosty sposób wyznaczyć tablicę przejść i wyjść.

Rys. 7.1. Graf układu detekcji ciągu bitów

Znaczenie poszczególnych stanów jest następujące:

⎯ s0 – pierwszy element sekwencji nie został podany na wejście, wartość wyjścia wy = 0;

⎯ s1 – wykryty pierwszy element sekwencji, wy = 0;

⎯ s2 – wykryte dwa pierwsze elementy sekwencji, wy = 0;

⎯ s3 – wykryte trzy pierwsze elementy sekwencji, wy = 0;

⎯ s4 – wykryta cała sekwencja, wy = 1.

Na podstawie grafu automatu przedstawionego na rys. 7.1 sporządzono tablicę przejść i wyjść automatu Moore’a ( tab. 7.1), a następnie, posługując się naturalnym kodem binarnym (NKB), zakodowano ją (tab. 7.2) w taki sposób, że stanowi s0 przyporządkowano ciąg 000, a kolejnym stanom przypisano kolejne wartości NKB. Oprócz NKB mogą być stosowane także inne kody np. kod Graya.

Tabela 7.1 Tablica przejść i wyjść

s \ we 0 1 wy s0 s1 s0 0 s1 s1 s2 0 s2 s1 s3 0 s3 s4 s0 0 s4 s1 s0 1

Tabela 7.2 Zakodowana tablica przejść i wyjść

s \ we we = 0 we =1 Q2Q1Q0 Q2Q1Q0 Q2Q1Q0

wy

000 001 000 0

001 001 010 0

010 001 011 0

011 100 000 0

100 001 000 1

101 xxx xxx x

110 xxx xxx x

Minimalna długość ciągu binarnego zależy od liczby stanów automatu. W przypadku tego zada-nia mamy pięć stanów, musimy więc przyjąć ciąg trzybitowy. Minimalna liczba przerzutników wystarczająca do realizacji automatu jest tym samym równa trzy. W zakodowanej tablicy przejść i wyjść stany (a zarazem wyjścia) przerzutników oznaczono literami Q z odpowiednim indeksem dolnym. Bardziej znaczącemu bitowi (pierwszy z lewej) przypisano przerzutnik Q2, a mniej zna-czącemu (pierwszy z prawej) przerzutnik Q0. Przy użyciu trzech przerzutników można zakodo-wać osiem stanów, zakodowaną tablicę przejść rozszerzono uwzględniając pozostałe stany, któ-rym przypisano dowolne przejścia i wyjścia. Ułatwi to projektowanie funkcji wzbudzeń przerzut-ników metodą minimalizacji wykorzystującej tablice Karnaugha.

Następnie należy wybrać typ stosowanego przerzutnika, decydującym czynnikiem odno-śnie wyboru typu przerzutnika jest najczęściej najprostsza postać zaprojektowanego automa-tu. Aby wybrać najprostsze rozwiązanie, warto jest zaprojektować układy realizujące ten sam problem z wykorzystaniem różnych przerzutników, a następnie je porównać.

Kolejnym krokiem projektowania automatu jest synteza wzbudzeń, czyli wyznaczenie funkcji boolowskich do sterowania wejściami przerzutników w taki sposób, aby stany prze-rzutników zmieniały się zgodnie z zakodowaną tabelą przejść. Argumentami funkcji boolow-skich są zmienne wejściowe i wyjścia przerzutników. Do wyznaczania funkcji wzbudzeń przerzutników wykorzystuje się ich tablice wzbudzeń, które zamieszczono (łącznie) poniżej (tab. 7.3). W tablicy użyto skrótów literowych: m0, s, r oraz m1 na oznaczenie poszczegól-nych typów wzbudzeń przerzutników.

Tabela 7.3 Tablice wzbudzeń przerzutników D, T, JK

Q Q’ wzb. D T JK 0 0 m0 0 0 0x 0 1 s 1 1 1x 1 0 r 0 1 x1 1 → 1 m1 1 0 x0

Dla wybranego tybu przerzutnika tworzy się tablicę wzbudzeń automatu na podstawie zako-dowanej tablicy przejść. W prezentowanym rozwiązaniu utworzono tablicę wzbudzeń auto-matu, którą wypełniono oznaczeniami poszczególnych typów wzbudzeń (tab. 7.4). Na jej podstawie utworzono następnie tablice wzbudzeń układów wykorzystujących określone prze-rzutniki.

Tabela 7.4 Tablica wzbudzeń układu wypełniona ogólnymi

typami wzbudzeń

W analizowanym przykładzie tablice wzbudzeń automatów składają się z czterech głównych kolumn (obramowanych grubą linią). W pierwszej kolumnie umieszone są zakodowane stany układu (identycznie jak w tablicy przejść). W następnych kolumnach podane są typy wzbu-dzeń kolejnych przerzutników dla wszystkich kombinacji sygnałów wejściowych (w tym przypadku tylko dwóch: 0 i 1). Wyznaczanie typów wzbudzeń zostanie wytłumaczone na przykładzie. Z tabeli przejść i wyjść odczytujemy, że dla stanu „000”, przy pobudzeniu we = 0 następnym stanem ma być „001”, czyli w przypadku przerzutnika 2 – ma on nie zmie-nić swego stanu – należy podać na jego wejścia stany określone przez typ wzbudznia „m0” (0 na wejście D przerzutnika D, 0 na wejście T przerzutnika T, 0 na wejście J oraz x na wejście K przerzutnika JK); w przypadku przerzutnika 1 również „m0”, a dla przerzutnika 0 – „s”

(1 na wejście D przerzutnika D, 1 na wejście T przerzutnika T, 1 na wejście J oraz x na wej-ście K przerzutnika JK), ponieważ ma zmienić stan z 0 na 1.

Tabela 7.6 Tablica wzbudzeń układu z przerzutnikami JK

JK2 JK1 JK0 Tablica wzbudzeń układu z przerzutnikami T

T2 T1 T0

Następnie na podstawie tablic wzbudzeń układu należy wyznaczyć funkcje boolowskie steru-jące wejściami przerzutników, można wykorzystać w tym celu tablice Karnaugha.

Po określeniu funkcji wzbudzeń należy wyznaczyć funkcję wyjść na podstawie tablicy wyjść, korzystając np. z tablic Karnaugha. W rozważanym przykładzie funkcję wyjść można uzależnić tylko od stanu przerzutnika 2:

wy=Q2 (7.1)

7.3.1. Wyznaczenie funkcji wzbudzeń przerzutników D

Na rysunku 7.2 zamieszczono tablice Karnaugh’a w celu wyznaczenia funkcji wzbudzeń przerzutników typu D.

Rys. 7.2. Tablice Karnaugh’a funkcji wzbudzeń przerzutników typu D

Szukane funkcje wzbudzeń to:

2 1 0

D =Q Q we (7.2)

1 1 0 1 0

D =Q Q we Q Q we+ (7.3)

( )( )

0 1 1 0

D = Q +we Q +Q (7.4)

Na rys. 7.3 przedstawiono schemat układu detekcji sekwencji 0110 z wykorzystaniem prze-rzutników typu D.

Rys. 7.3. Detektor ciągu bitów 0110 zrealizowany z wykorzystaniem przerzutników typu D

7.3.2. Wyznaczenie funkcji wzbudzeń przerzutników JK

Na rysunku 7.4 zamieszczono tablice Karnaugh’a w celu wyznaczenia funkcji wzbudzeń przerzutników typu JK.

Funkcje wzbudzeń są następujące:

2 1 0

J =Q Q we (7.5)

2 1

K = (7.6)

1 0

J =Q we (7.7)

1 0

K =Q +we (7.8)

0 1

J =Q +we (7.9)

0 1

K =Q +we (7.10)

Rys. 7.4. Tablice Karnaugh’a funkcji wzbudzeń przerzutników typu JK

Na rysunku 7.5 przedstawiono rozwiązanie układu detekcji sekwencji 0110 z wykorzystaniem przerzutników typu JK.

Rys. 7.5. Detektor ciągu bitów 0110 zrealizowany z wykorzystaniem przerzutników typu JK

7.3.3. Wyznaczenie funkcji wzbudzeń przerzutników T

Tablice Karnaugh’a funkcji wzbudzeń przerzutników T przedstawiono na rys. 7.6.

Rys. 7.6. Tablice Karnaugh’a funkcji wzbudzeń przerzutników typu T

Funkcje wzbudzeń są następujące:

2 2 1 0

T =Q +Q Q we (7.11)

1 1 0

T =Q we+Q we (7.12)

0 0 0 1

T =Q we Q we Q+ + (7.13)

Na rysunku 7.7 przedstawiono rozwiązanie układu detekcji sekwencji 0110 z wykorzystaniem przerzutników typu T.

Rys. 7.7. Detektor ciągu bitów 0110 zrealizowany na przerzutnikach typu T