Podręcznik
1. Pojęcia podstawowe
W omawianych do tej pory układach kombinacyjnych wektor wyjściowy Yt w chwili t jest bezpośrednio zależny od wektora wejściowego Xt w chwili t. Zajmiemy się teraz układami sekwencyjnymi, dla których wektor wyjściowy Yt w chwili t zależy od sekwencji wektorów wejściowych Xt, Xt–1, Xt–2,…, w chwilach t, t –1, t – 2,… .
Modelem matematycznym układu sekwencyjnego jest automat. Automat jest definiowany przez określenie:
- zbioru liter wejściowych X (lub V) i wyjściowych Y,
- zbioru stanów wewnętrznych S,
- funkcji przejść (oznaczanej d),
- funkcji wyjść (oznaczanej l).
W formalnym zapisie automat A określa się jako piątkę áS, X, Y, d, lñ, gdzie funkcja przejść jest definiowana jako odwzorowanie d: S ´ X ® S, natomiast funkcja wyjść l jest odwzorowaniem l: S ´ X ® Y (tzw. automat Mealy’ego) lub jako l: S ® Y (tzw. automat Moore’a).
Ważnym pojęciem w układach cyfrowych jest pojęcie automatu zupełnego i niezupełnego. Automat, określony funkcjami przejść d i wyjść l nazywamy automatem zupełnym, jeśli dziedziny tych funkcji są równe zbiorom S ´ X oraz S (w przypadku funkcji wyjść automatu Moore’a). Jeśli natomiast dziedziną którejkolwiek funkcji jest podzbiór wymienionych zbiorów, to jest: Dd Ì S ´ X, Dl Ì S ´ X lub Dl Ì S, to taki automat nazywamy niezupełnym.
Funkcje przejść-wyjść jest najwygodniej przedstawiać za pomocą tablicy przejść-wyjść. Tablice przejść-wyjść przykładowych automatów podane w tabeli 4.1 reprezentują automat Moore’a (a) oraz automat Mealy’ego (b). Tablicom tym odpowiadają grafy automatów pokazane na rys. 4.1.
Tablica 4.1
Techniczną realizacją automatu jest układ sekwencyjny zbudowany z układu kombinacyjnego i pamięci (rys. 4.2). Układ kombinacyjny automatu jest układem wielowyjściowym, wytwarzającym sygnały wyjściowe automatu y1, …, ym oraz sygnały wzbudzające układ pamięciowy q1, …, qk. Wejściami układu kombinacyjnego są sygnały wejściowe automatu x1, …, xn oraz sygnały wyjściowe Q1, …, Qp układu pamięciowego.
Rys. 4.1. Graf automatu a) Moore’a, b) Mealy’ego
Rys. 4.2. Układ sekwencyjny
Układ kombinacyjny jest opisany tablicami wyjść i wzbudzeń (sposób tworzenia tablic wzbudzeń poznamy w dalszej części rozdziału). W układach synchronicznych pamięć automatu jest zbudowana z tzw. przerzutników – automatów elementarnych synchronizowanych specjalnym sygnałem zegarowym oznaczonym clk. W układach asynchronicznych pamięć jest realizowana bezpośrednio przez sprzężenia zwrotne z wyjść na wejścia układu kombinacyjnego.
Synteza układów sekwencyjnych jest złożonym i obszernym zadaniem składającym się z kilku etapów. Zwyczajowo wyróżnia się następujące etapy:
- synteza abstrakcyjna (utworzenie tablicy przejść-wyjść),
- redukcja (minimalizacja) liczby stanów,
- kodowanie stanów, liter wejściowych i wyjściowych,
- synteza kombinacyjna (obliczanie funkcji wzbudzeń przerzutników i funkcji wyjściowych).
Omawianie procesu syntezy układów sekwencyjnych rozpoczynamy od etapu syntezy abstrakcyjnej, której celem jest utworzenie tablicy przejść-wyjść. Tablicę taką najczęściej tworzy się za pośrednictwem grafu automatu. Jest to najważniejszy a zarazem najobszerniejszy etap całego procesu syntezy.
Tworzenie grafu automatu, a tym samym odpowiedniej tablicy przejść-wyjść, jest istotną czynnością w syntezie układów sekwencyjnych. Rozważmy tablicę przejść-wyjść układu sekwencyjnego spełniającego funkcję tzw. detektora sekwencji
Układ ma badać kolejne „trójki” symboli wejściowych. Sygnał wyjściowy pojawiający się podczas trzeciego skoku układu ma wynosić 1, gdy „trójka” ma postać 001, a 0, gdy „trójka” jest innej postaci – stąd nazwa „detektor sekwencji”. Graf tego automatu jest pokazany na rys. 4.3. Odpowiadająca mu tablica przejść-wyjść jest pokazana w tablicy 4.2.
Rys. 4.3. Graf detektora sekwencji
Tablica 4.2
Łatwo sprawdzić, że każda sekwencja 001 na wejściu układu spowoduje powstanie na jego wyjściu sygnału y = 1.
Równie prosta jest konstrukcja grafu automatu wykrywającego ciąg dokładnie trzech albo dokładnie czterech następujących bezpośrednio po sobie jedynek w dowolnie długim słowie wejściowym.
Graf stanów tego automatu pokazano na rys. 4.4. W stanie S1 (początkowym) sygnał 0 na wejściu powoduje pozostanie w tym stanie (nie może to być początek wejściowej sekwencji złożonej z trzech lub czterech jedynek). Pojawiające się na wejściu kolejne trzy jedynki powodują przejście przez stany S2, S3 do stanu S4, przy czym przy przejściu ze stanu S3 do S4 sygnalizowane jest wystąpienie trzech kolejnych jedynek sygnałem 1 na wyjściu. Pojawienie się w stanie S4 czwartej kolejnej jedynki powoduje przejście do stanu początkowego S1 i wygenerowanie na wyjściu sygnału 1. Pojawienie się na wejściu sygnału 0 powoduje przejście z każdego stanu do stanu początkowego S1.
Rys. 4.4. Graf stanów automatu wykrywającego trzy albo cztery jedynki
Na podstawie grafu stanów z rys. 4.4 utworzono tablicę przejść-wyjść automatu (tab. 4.3).
Tablica 4.3
x S |
0 |
1 |
0 |
1 |
1 |
1 |
2 |
0 |
0 |
2 |
1 |
3 |
0 |
0 |
3 |
1 |
4 |
0 |
1 |
4 |
1 |
1 |
0 |
1 |
Syntezę abstrakcyjną bardziej złożonego automatu omawiamy w przykładzie 4.2.
Zaprojektować układ wykrywający parzystą liczbę sekwencji 0011.
Konstrukcję grafu stanów automatu pokazano na rys. 4.5. W stanie S1 (początkowym) sygnał 1 na wejściu powoduje pozostanie w tym stanie (nie może to być początek wejściowej sekwencji 0011). Załóżmy dalej, że w stanie automat jest w stanie S1, a na wejściu pojawią się kolejno sygnały 0, 0, 1, 1, 0, 0, 1, 1, czyli dwie sekwencje 0011. Spowoduje to kolejne przejścia automatu przez stany: S2, S3, S4, S5, S6, S7, S8. Ze stanu S8 automat przejdzie do stan S1, przy czym dla sygnału wejściowego 1 na wyjściu zostanie wygenerowany sygnał 1 oznaczający wykrycie parzystej liczby sekwencji 0011. W stanie S3 pod wpływem sygnału wejściowego 0 układ pozostaje, oczekując na przyjście sygnału 1 podobna sytuacja ma miejsce dla stanu S7. W stanie S5 pod wpływem sygnału wejściowego 1 układ pozostaje, oczekując na przyjście sygnału 0. Ze stanów S2 i S6 pod wpływem sygnału wejściowego 1 sygnał wraca do stanu początkowego S1, analogicznie dla stanów S4 i S8 dla sygnału wejściowego. Na podstawie grafu stanów z rys. 4.5 utworzono tablicę przejść-wyjść automatu (tab. 4.4).
Rys. 4.5. Graf stanów automatu z przykładu 4.1
Tablica 4.4
x S |
0 |
1 |
0 |
1 |
1 |
2 |
1 |
0 |
0 |
2 |
3 |
1 |
0 |
0 |
3 |
3 |
4 |
0 |
0 |
4 |
1 |
5 |
0 |
0 |
5 |
6 |
5 |
0 |
0 |
6 |
7 |
1 |
0 |
0 |
7 |
7 |
8 |
0 |
0 |
8 |
1 |
1 |
0 |
1 |