Automat skończony FSM Finite State Machine Projektowanie detektora sekwencji Laboratorium z Elektroniki Współczesnej A. Skoczeń, KOiDC, WFiIS, AGH, 2019 AGH, WFiIS, Elektronika Współczesna 1
Deterministyczny automat skończony Definicja formalna: Ψ X, Ψ S, Ψ Z, δ, λ, S 0 Ψ X zbiór wektorów wejściowych Ψ S zbiór wektorów stanu wewnętrznego Ψ Z zbiór wektorów wyjściowych X=[X 1, X 2,... X m ] wektor wejść Z=[Z 1, Z 2,... Z n ] wektor wyjść S n =[Q 1, Q 2,... Q k ] wektor stanu S n+1 =[Q 1+, Q 2+,... Q k+ ] wektor stanu następnego Z = λ(s n, X) funkcja wyjść S n+1 = δ(s n, X) funkcja stanu AGH, WFiIS, Elektronika Współczesna 2
Deterministyczny automat skończony Zbudowany jest z: Logika stanu następnego (wejścia: X, S n ; wyjście: S n+1 ) Rejestr stanu Logika wyjściowa (wejścia: X, S n ; wyjście: Z) Sprzężenie zwrotne X Logika stanu następnego S n+1 Rejestr stanu S n Logika wyjściowa Z clk rst Sprzężenie zwrotne AGH, WFiIS, Elektronika Współczesna 3
X 1 X 2 X m Z 1 Z 2 Z n Model automatu Mealy ego Q 1 + Q 1 Q 1 Układ kombinacyjny Q 2 + Q 2 X=[X 1, X 2,... X m ] wektor wejść Z=[Z 1, Z 2,... Z n ] wektor wyjść S=[Q 1, Q 2,... Q k ] wektor stanu S + =[Q 1+, Q 2+,... Q k+ ] wektor stanu następnego Q 2 Q k Q k + Q k Z = λ(s,x) S + = δ(s,x) funkcja wyjść funkcja stanu clk AGH, WFiIS, Elektronika Współczesna 4
Model automatumoore a Z = λ(s) Q 1 + Q 1 S + = δ(s,x) funkcja wyjść funkcja stanu X 1 X 2 X m Q 1 Układ Kombinacyjny stanu następnego Q (wejścia rejestru stanu) 2 Q 2 + Q 2 Układ kombinacyjny wyjść Z 1 Z 2 Z n Q k Q k + Q k clk AGH, WFiIS, Elektronika Współczesna 5
Projekt detektora sekwencji 101. Jest to układ, który analizuje ciąg zer i jedynek przychodzący na wejście X i generujący wyjście Z=1, gdy wykryta zostanie określona sekwencja. X clk rst US Specyfikacja: Sygnał wejściowy X może się zmieniać tylko pomiędzy aktywnymi zboczami zegara, Każda sekwencja 101 pojawiająca się w strumieniu bitowym X powoduje pojawienie się 1 na wyjściu Z w momencie ostatniej jedynki, Układ nie jest resetowany w momencie pojawienia się 1 na wyjściu. Przykładowwe działanie układu: X= 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 Z= 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 0 time 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Z 1 AGH, WFiIS, Elektronika Współczesna 6
Przykład ten zostanie zaprojektowany na dwa sposoby: 1. Jako automat Moore a (synchroniczny) slajdy od 6 do 13, 2. Jako automat Mealy ego (asynchroniczny) slajdy od 14 do 20. AGH, WFiIS, Elektronika Współczesna 7
Konstrukcja grafu stanów dla automatu Moore a. Zaczynamy od stanu resetu układu oznaczonego przez S 0. Jeśli w tym stanie strumień wejściowy X podaje: 0 to układ pozostaje w tym stanie gdyż nie rozpoczęła się poszukiwana sekwencja, 1 to stan układu musi ulec zmianie do S 1 aby zapamiętać, że pierwszy element poszukiwanej sekwencji został wykryty. X=0 S 0 X=1 S 1 AGH, WFiIS, Elektronika Współczesna 8
Analizujemy zachowanie układu w stanie S 1. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ pozostaje w tym stanie gdyż nowo otrzymana jedynka ponownie rozpoczyna poszukiwaną sekwencję, 0 to stan układu musi ulec zmianie do S 2 aby zapamiętać, że pierwsze dwa elementy poszukiwanej sekwencji zostały wykryte. 0 1 S 0 1 S 1 0 S 2 AGH, WFiIS, Elektronika Współczesna 9
Analizujemy zachowanie układu w stanie S 2. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ musi przejść do nowego stanu S 3 (nie może powrócić do S 1 ) gdyż nowo otrzymana jedynka kończy poszukiwaną sekwencję i sygnał wyjściowy musi ulec zmianie, 0 to układu wymaga wykasowania gdyż sekwencja 100 jest błędna. 0 1 S 0 1 S 1 0 0 S 3 Z=1 1 S 2 AGH, WFiIS, Elektronika Współczesna 10
Analizujemy zachowanie układu w stanie S 3. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ musi powrócić do S 1 gdyż nowo otrzymana jedynka rozpoczyna ponownie poszukiwaną sekwencję, 0 to układ powinien wrócić do S 2 gdyż sekwencja 1010 powinna znów dać Z=1 po kolejnej jedynce na wejściu. 0 1 S 0 1 S 1 1 0 S 3 Z=1 0 1 0 S 2 AGH, WFiIS, Elektronika Współczesna 11
0 1 S 0 1 S 1 1 0 Tabela stanów: Stan obecny S 3 Z=1 S 2 Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=1 Start S 0 S 0 S 1 0 Kończące 1 S 1 S 2 S 1 0 Kończące 10 S 2 S 0 S 3 0 Kończące 101 S 3 S 2 S 1 1 0 1 0 AGH, WFiIS, Elektronika Współczesna 12
Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=1 Start S 0 S 0 S 1 0 Kończące 1 S 1 S 2 S 1 0 Kończące 10 S 2 S 0 S 3 0 Kończące 101 S 3 S 2 S 1 1 Tabela przejść: Stan obecny Stany kodujemy za pomocą dwóch przerzutników A i B. Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=1 Start 00 00 01 0 Kończące 1 01 10 01 0 Kończące 10 10 00 11 0 Kończące 101 11 10 01 1 AGH, WFiIS, Elektronika Współczesna 13
Stan następny Obecne Stan obecny A n+1 B n+1 wyjście Z Nazwa A n B n X=0 X=1 X=1 Start 00 00 01 0 Kończące 1 01 10 01 0 Kończące 10 10 00 11 0 Kończące 101 11 10 01 1 AB X 0 1 00 0 0 AB X 0 1 00 0 1 A B 0 1 0 0 0 01 1 0 01 0 1 1 0 1 11 1 0 10 0 1 11 0 1 10 0 1 Z = AB A n+1 = ഥXB + XAഥB B n+1 = X AGH, WFiIS, Elektronika Współczesna 14
Na podstawie tabel Karnaugha - ręcznie Układ Moore a i przebiegi czasowe w nim Incisive, Cadence clk rst X Z state Wyjście zmienia się synchronicznie względem sygnału zegarowego AGH, WFiIS, Elektronika Współczesna 15
Konstrukcja grafu stanów dla automatu Mealy ego. Zaczynamy od stanu resetu układu oznaczonego przez S 0. Jeśli w tym stanie strumień wejściowy X podaje: 0 to układ pozostaje w tym stanie gdyż nie rozpoczęła się poszukiwana sekwencja, 1 to stan układu musi ulec zmianie do S 1 aby zapamiętać, że pierwszy element poszukiwanej sekwencji został wykryty. X=0/ S 0 X=1/ S 1 AGH, WFiIS, Elektronika Współczesna 16
Analizujemy zachowanie układu w stanie S 1. Jeśli w tym stanie strumień wejściowy X podaje: 1 to układ pozostaje w tym stanie gdyż nowo otrzymana jedynka ponownie rozpoczyna poszukiwaną sekwencja, 0 to stan układu musi ulec zmianie do S 2 aby zapamiętać, że pierwsze dwa elementy poszukiwanej sekwencji zostały wykryte. 0/0 S 0 1/0 S 1 1/0 S 2 0/0 AGH, WFiIS, Elektronika Współczesna 17
Analizujemy zachowanie układu w stanie S 2. Jeśli w tym stanie strumień wejściowy X podaje: 1 to poszukiwana sekwencja została ukończona i wyjściowa jedynka ma być wygenerowana. Jaki jednak jest stan następny? Nowy stan czy S 1 czy S 0? S 0 jest wykluczone, gdyż układ nie podlega resetowaniu po rozpoznaniu sekwencji. Oznacza to, że ostatnia jedynka w sekwencji jest równocześnie pierwszą w kolejnej sekwencji. Dlatego stanem następnym musi być S 1. 0 to stan układu powinien być wykasowany do S 0 gdyż jest to drugie zero i sekwencja 00 nie należy do poszukiwanej sekwencji. 0/0 S 0 1/0 0/0 1/1 S 1 1/0 S 2 0/0 AGH, WFiIS, Elektronika Współczesna 18
0/0 S 0 1/0 0/0 1/1 S 1 1/0 S 2 0/0 Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=0 X=1 Start S 0 S 0 S 1 0 0 Kończące 1 S 1 S 2 S 1 0 0 Kończące 10 S 2 S 0 S 1 0 1 AGH, WFiIS, Elektronika Współczesna 19
Tabela stanów: Stan obecny Stan następny Obecne wyjście Z Nazwa Symbol X=0 X=1 X=0 X=1 Start S 0 S 0 S 1 0 0 Kończące 1 S 1 S 2 S 1 0 0 Kończące 10 S 2 S 0 S 1 0 1 Stany kodujemy za pomocą dwóch przerzutników A i B. Tabela przejść: Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=0 X=1 Start 00 00 01 0 0 Kończące 1 01 10 01 0 0 Kończące 10 10 00 01 0 1 AGH, WFiIS, Elektronika Współczesna 20
Tabelę przejść rozpisujemy na tabele Karnougha: Stan obecny Stan następny A n+1 B n+1 Obecne wyjście Z Nazwa A n B n X=0 X=1 X=0 X=1 Start 00 00 01 0 0 Kończące 1 01 10 01 0 0 Kończące 10 10 00 01 0 1 Nie potrzebny 11 xx xx x x AB X 0 1 00 0 0 01 1 0 11 x x 10 0 0 AB X 0 1 00 0 1 01 0 1 11 x x 10 0 1 AB X 0 1 00 0 0 01 0 0 11 x x 10 0 1 A n+1 = ഥXB B n+1 = X Z = XB AGH, WFiIS, Elektronika Współczesna 21
Na podstawie tabel Karnaugha - ręcznie Układ Mealy ego i przebiegi czasowe w nim Incisive, Cadence clk rst X Z state Wyjście zmienia się asynchronicznie w stosunku do sygnału zegarowego AGH, WFiIS, Elektronika Współczesna 22
Układ Mealy ego Porównanie przebiegów czasowych Incisive, Cadence clk rst X Z state Układ Moore a clk rst X Z state Wyjście zmienia się asynchronicznie w stosunku do sygnału zegarowego Incisive, Cadence Wyjście zmienia sie synchronicznie względem sygnału zegarowego AGH, WFiIS, Elektronika Współczesna 23
Układ Mealy ego Porównanie wyników automatycznej syntezy za pomocą programu RTL Compiler Encounter RTL Compiler, Cadence Układ Moore a Encounter RTL Compiler, Cadence AGH, WFiIS, Elektronika Współczesna 24
Chociaż nie ma jednej konkretnej procedury, która mogłaby zostać wykorzystana do uzyskania grafów przejść lub tabel stanów automatu skończonego dla każdego problemu, pomocne powinny być następujące wytyczne: 1. Najpierw skonstruuj przykładowe sekwencje wejściowe i wyjściowe, aby upewnić się, że rozumiesz opis problemu. 2. Określ, w jakich warunkach obwód powinien zresetować się do stanu początkowego. 3. Jeśli tylko jedna lub dwie sekwencje prowadzą do niezerowego wyjścia, dobrym sposobem na rozpoczęcie jest skonstruowanie wykresu częściowego stanu dla tych sekwencji. 4. Innym sposobem rozpoczęcia jest określenie, które sekwencje lub grupy sekwencji muszą zostać zapamiętane przez obwód i odpowiednio skonfigurowane stany. 5. Za każdym razem, gdy dodajesz strzałkę do wykresu stanu, określ, czy może przejść do jednego z wcześniej zdefiniowanych stanów lub czy należy dodać nowy stan. 6. Sprawdź swój wykres, aby upewnić się, że istnieje jedna i tylko jedna ścieżka opuszczająca każdy stan dla każdej kombinacji wartości zmiennych wejściowych. 7. Po zakończeniu wykresu przetestuj go, stosując sekwencje wejściowe sformułowane w części 1 i upewniając się, że sekwencje wyjściowe są poprawne. AGH, WFiIS, Elektronika Współczesna 25