« poprzedni punkt 


3. Przykład projektowania automatu synchronicznego

Niech będą dane tablice przejść i wyjść jak na rysunku VIII.1, które określają dwuwejściowy i jedno wyjściowy układ sekwencyjny o pięciu stanach. Na takim przykładzie prześledźmy kolejne kroki projektowania prowadzące do jednej z możliwych realizacji.

Rysunek VIII.1. Przykładowa tablica przejść i wyjść

Krok 1

Zgodnie z podanym wyżej algorytmem w pierwszym kroku należy sprawdzić czy nie istnieje układ o mniejszej liczbie stanów i działający w identyczny sposób. Jeśli tablice przejść i wyjść zawierają dwa identyczne wiersze odpowiadające dwóm różnym stanom, to jeden z nich nie jest potrzebny i można go wyeliminować. Po wyeliminowaniu stanu układ będzie działał zgodnie z tablicą pierwotną. Identyczność wierszy oznacza przejścia do tych samych stanów pod wpływem tych samych wzbudzeń (identyczność wierszy w tablicy przejść) i generację tych samych sygnałów wyjściowych (identyczność wierszy w tablicy wyjść). Można stwierdzić, że w tablicy z rysunku VIII.1 nie istnieją dwa identyczne wiersze w sensie dosłownym. Jednak można spróbować doszukiwać się "ukrytej" identyczności. Ze względu na tablicę wyjść doszukiwać się jej można w dwóch grupach stanów. Pierwsza grupa to stany s0 i s4 (wyjście równe 0) i druga grupa to stany s1, s2 i s3 (wyjście równe 1). Stany s0 i s4 różnią się w drugiej, trzeciej i czwartej kolumnie tablicy przejść. Rozpatrzmy drugą grupę stanów. Stany s1 i s3 różnią się tylko w trzeciej kolumnie. Zwróćmy uwagę, że różnica ta jest pozorna gdyż dotyczy porównywanych stanów. Zastępując stany s1 i s3 jednym symbolem (oznaczmy go s5) otrzyma się identyczność wierszy i wtedy otrzyma się tablicę czterostanową jak na rysunku VIII.2.

Rysunek VIII.2. Uproszczona tablica przejść i wyjść

W otrzymanej czterostanowej tablicy z rysunku VIII.2 porównując wiersze s0 i s4 można stwierdzić ich identyczność, ponieważ różnice w trzeciej i czwartej kolumnie są pozorne. W kolumnach tych znajdują się porównywane stany s0 i s4. Zastępując stany s0 i s4 symbolem s6 wiersze s0 i s4 można uznać za identyczne.

Rysunek VIII.3. Zminimalizowana tablica przejść i wyjść

Otrzyma się wtedy trzystanową tablicę jak na rysunku VIII.3. Ponieważ w otrzymanej tablicy wiersze s2 i s5 są różne, to dalsza eliminacja stanów jest niemożliwa. W ten sposób otrzymaliśmy trzystanową tablicę przejść i wyjść opisującą układ działający identycznie jak układ opisany tablicą z rysunku VIII.1.

Krok 2

W drugim kroku algorytmu każdy stan z tablicy z rysunku VIII.3 należy zakodować odpowiednim ciągiem binarnym.

Rysunek VIII.4. Zakodowana tablica przejść i wyjść

Dla trzystanowego układu wystarczy przyjąć dwubitowy ciąg. Założymy, że stanowi s2 przypiszemy ciąg 00, stanowi s5 przypiszemy ciąg 01 i stanowi s6 przypiszemy ciąg 11. W rezultacie otrzymamy zakodowaną tablicę przejść i wyjść jak na rysunku VIII.4. Każdemu bitowi w zakodowanej tablicy przejść przyporządkowuje się przerzutnik. W narożniku zakodowanej tablicy przejść, gdzie poprzednio wpisane było oznaczenie zbioru stanów S, teraz wprowadza się litery Q z indeksami wskazującym na odpowiedni bit ciągu kodującego. W naszym przykładzie lewemu bitowi ciągu został przyporządkowany przerzutnik Q1, a prawemu bitowi przerzutnik Q0.

Krok 3

W tym kroku należy wybrać typ przerzutnika. Celem lepszego poznania sposobów projektowania układów synchronicznych wyznaczane będą kolejno funkcje wzbudzeń dla przerzutników D, T i na końcu JK. Pokazane zostaną 3 różne rozwiązania, każde zakładające inny typ obu przerzutników. Zaleca się porównanie otrzymanych rozwiązań ze względu na liczbę bramek w realizacjach funkcji wzbudzeń.

Krok 4

Rozpatrzmy proces projektowania funkcji wzbudzeń zakładając najpierw realizację na przerzutnikach typu D. Ponieważ tablica przejść jest tylko trzywierszowa, to w zakodowanej tablicy przejść nie występuje jedna kombinacja ciągu dwubitowego (w naszym przykładzie kombinacja 10). Dlatego na mapach Karnaugha dwóch funkcji wzbudzeń (oznaczonych tu jako D1 i D0) znajdą się miejsca nieokreślone.

Liczba argumentów funkcji wzbudzeń jest sumą liczby zmiennych wejściowych i liczby przerzutników. W naszym przykładzie funkcje będą czteroargumentowe. Na mapach Karnaugha tych funkcji w miejscach odpowiadających nie występującej kombinacji Q1 = 1 i Q0 = 0 znajdą się kreski oznaczające, że funkcje są nie w pełni określone. Na rysunku VIII.5 pokazano mapy Karnaugha dla funkcji wzbudzeń przerzutników typu D: na rysunku VIII.5.a dla przerzutnika Q1, a na rysunku VIII.5.b dla przerzutnika Q0.

a                                        b

Rysunek VIII.5. Mapy Karnaugha funkcji wzbudzeń przerzutników typu D dla przykładowego zadania: a. funkcja wzbudzeń przerzutnika Q1, b. funkcja wzbudzeń przerzutnika Q0

Rozpatrzmy sposób wypełniania map Karnaugha pokazanych na rysunku VIII.5.

1. W lewym górnym polu mapy z rysunku VIII.5.a należy wpisać wymaganą wartość wzbudzenia przerzutnika Q1 dla przypadku gdy Q1 = 0 i Q0 = 0 oraz x1 = 0 i x0 = 0. Z tabeli przejść z rysunku VIII.4 można odczytać, że przerzutnik Q1 zmienia swój stan z 0 na 1 (pierwszy wiersz i pierwsza kolumna tablicy przejść), co nakazuje podanie na wejście D tego przerzutnika (funkcja D1) wzbudzenia równego 1 (patrz tabelki wzbudzeń przerzutnika typu D z poprzedniego wykładu).

2. W pierwszym wierszu i drugiej kolumnie mapy Karnaugha z rysunku VIII.5.a należy wpisać wymaganą wartość wzbudzenia przerzutnika Q1 w przypadku gdy Q1 = 0 i Q0 = 0 oraz x1 = 0 i x0 = 1. Z tabeli przejść (pierwszy wiersz i druga kolumna) wynika, że przerzutnik Q1 nie zmienia swojego stanu i pozostaje w stanie 0. Stąd w odpowiadające temu przypadkowi pole mapy Karnaugha wpisuje się 0.

3. W analogiczny sposób należy wypełnić wszystkie 16 miejsc mapy Karnaugha dla funkcji D1, a następnie dla funkcji D0. W naszym przykładzie wypełnianie czwartego wiersza map Karnaugha jest trywialne gdyż wpisuje się tam kreski.

Zaleca się Czytelnikowi dalsze samodzielne wypełnienie obu map Karnaugha i porównanie ich z mapami z rysunku VIII.5.

W wyniku minimalizacji funkcji z rysunku VIII.5 otrzyma się następujące minimalne postacie sumacyjne funkcji wzbudzeń:

D1 = 00 + x10 + Q1x1 + 1Q01x0

D0 = 01 + Q0x0 + x10

Jaka jest liczba bramek potrzebna do zrealizowania powyższych funkcji? Zakładając dostępność zanegowanych sygnałów wejściowych (czyli pomijając negatory dla zmiennych x1 i x0) i wiedząc, że w przypadku przerzutników dostępne są sygnały na obu ich wyjściach otrzyma się dwa układy kombinacyjne składające się z 9 bramek (cztery bramki iloczynu i bramka sumy dla funkcji D1 i trzy bramki iloczynu i bramka sumy dla funkcji D0). Można jednak zauważyć, że jeden z iloczynów (x10) występuje w obu funkcjach. Dlatego bramkę realizującą ten iloczyn można wykorzystać w obu układach (dla funkcji D0 i funkcji D1) zmniejszając liczbę bramek do ośmiu.

Rozpatrzmy teraz proces projektowania funkcji wzbudzeń zakładając realizację układu na przerzutnikach typu T. Na rysunku VIII.6 pokazano mapy Karnaugha dla funkcji wzbudzeń T1 i T0 przerzutników typu T: na rysunku VIII.6.a dla przerzutnika Q1, a na rysunku VIII.6.b dla przerzutnika Q0.

a                                        b

Rysunek VIII.6. Mapy Karnaugha funkcji wzbudzeń przerzutników typu T dla przykładowego zadania: a. funkcja wzbudzeń przerzutnika Q1, b. funkcja wzbudzeń przerzutnika Q0

Podobnie jak dla przypadku przerzutnika typu D, tak i tu wypełnianie map odbywa się na podstawie tablicy przejść.

1. W lewym górnym polu mapy z rysunku VIII.6.a należy wpisać wymaganą wartość wzbudzenia przerzutnika Q1 w przypadku gdy Q1 = 0 i Q0 = 0 oraz x1 = 0 i x0 = 0. Z tabeli przejść z rysunku VIII.4 można odczytać, że przerzutnik Q1 zmienia swój stan z 0 na 1 (pierwszy wiersz i pierwsza kolumna tablicy przejść), co narzuca podanie na wejście T przerzutnika wzbudzenia równego 1 (patrz tabelki wzbudzeń przerzutnika typu T z poprzedniego wykładu).

2. W pierwszym wierszu i drugiej kolumnie mapy Karnaugha należy wpisać wymaganą wartość wzbudzenia przerzutnika Q1 w przypadku gdy Q1 = 0 i Q0 = 0 oraz x1 = 0 i x0 = 1. Z tabeli przejść (pierwszy wiersz i druga kolumna) wynika, że przerzutnik Q1 nie zmienia swojego stanu i pozostaje w stanie 0. Stąd w to pole mapy Karnaugha wpisuje się 0.

3. W analogiczny sposób należy wypełnić wszystkie 16 miejsc mapy Karnaugha dla funkcji T1, a następnie dla funkcji T0. W naszym przykładzie wypełnianie czwartego wiersza map Karnaugha jest trywialne gdyż wpisuje się tam kreski.

Zaleca się Czytelnikowi dalsze samodzielne wypełnienie obu map Karnaugha i porównanie ich z mapami z rysunku VIII.6.

W wyniku minimalizacji otrzyma się następujące postacie sumacyjne:

T1 = 00 + Q01x0 + Q11 + 1x10

T0 = 01 + 00 + 10

Do realizacji obu funkcji wzbudzeń trzeba 8 bramek (dlaczego?) czyli rozwiązanie to jest równoważne z rozwiązaniem na przerzutnikach typu D.

Na koniec rozpatrzmy proces wyznaczania funkcji wzbudzeń dla przerzutników typu JK. W tym przypadku są do wypełnienia 4 mapy, które pokazano na rysunku VIII.7. Na rysunku VIII.7.a pokazano mapy Karnaugha funkcji wzbudzeń dla przerzutnika Q1, a na rysunku VIII.7.b dla przerzutnika Q0.

Zgodnie z pokazaną wyżej regułą postępowania rozpatrzmy jednocześnie co należy wpisać w pierwszym wierszu i pierwszej kolumnie obu map: dla funkcji J1 i K1.

1. W lewym górnym polu mapy z rysunku VIII.7.a należy wpisać wymaganą wartość wzbudzenia przerzutnika Q1 w przypadku gdy Q1 = 0 i Q0 = 0 oraz x1 = 0 i x0 = 0. Z tabeli przejść z rysunku VIII.4 można odczytać, że przerzutnik Q1 zmienia swój stan z 0 na 1 (pierwszy wiersz i pierwsza kolumna tablicy przejść), co nakazuje podanie na wejście J przerzutnika wzbudzenia równego 1, a na wejście K wzbudzenia dowolnego (patrz tabelki wzbudzeń przerzutnika typu JK z poprzedniego wykładu).

2. W pierwszym wierszu i drugiej kolumnie mapy Karnaugha należy wpisać wymaganą wartość wzbudzenia przerzutnika Q1 w przypadku gdy Q1 = 0 i Q0 = 0 oraz x1 = 0 i x0 = 1. Z tabeli przejść (pierwszy wiersz i druga kolumna) wynika, że przerzutnik Q1 nie zmienia swojego stanu i pozostaje w stanie 0. Nakazuje to podanie na wejście J przerzutnika wzbudzenia równego 0, a na wejście K wzbudzenia dowolnego.

3. W analogiczny sposób należy wypełnić wszystkie 16 miejsc mapy Karnaugha dla funkcji J1, K1, J0 i K0. W naszym przykładzie wypełnianie czwartego wiersza map Karnaugha jest trywialne gdyż wpisuje się tam kreski.

Zaleca się Czytelnikowi dalsze samodzielne wypełnienie obu map Karnaugha i porównanie ich z mapami z rysunku VIII.7.

Rysunek VIII.7. Mapy Karnaugha funkcji wzbudzeń przerzutników typu JK dla przykładowego zadania: a. funkcje wzbudzeń przerzutnika Q1, b. funkcje wzbudzeń przerzutnika Q0

W wyniku otrzyma się następujące postacie sumacyjne:

J1 = 00 + Q01x0 + x10

K1 = 1

J0 = 0 + 1

K0 = 01

Do realizacji tych czterech funkcji potrzeba 6 bramek czyli rozwiązanie to można uznać za lepsze od rozwiązań otrzymanych na przerzutnikach D i T.

Krok 5.

Zgodnie z podanym algorytmem należy wyznaczyć funkcję wyjść (w naszym przykładzie jest jedna), która jest dwuargumentowa (są dwa przerzutniki). Funkcja ta jest określona tablicą na rysunku VIII.4, a jej mapa Karnaugha pokazana jest na rysunku VIII.8.

Rysunek VIII.8. Mapa Karnaugha funkcji wyjść przykładowego układu

Minimalna postać sumacyjną tej funkcji to y = 1.

Na rysunku VIII.9 pokazano układ sekwencyjny zadany tablicami przejść i wyjść z rysunku VIII.4 zaprojektowany na przerzutnikach typu JK.

Rysunek VIII.9. Układ sekwencyjny zadany tablicami przejść i wyjść z rysunku VIII.4

Krok 6.

Wykorzystując wejścia asynchroniczne R można łatwo zerować wszystkie przerzutniki wprowadzając układ sekwencyjny w stan początkowy 00.


« poprzedni punkt