Wykład nr 3 Techniki Mikroprocesorowe dr inż. Artur Cichowski
Automat skończony jest przetwornikiem ciągu symboli wejściowych na ciąg symboli wyjściowych. Zbiory symboli wejściowych x X i wyjściowych y Y są skończone. Pojawienie się określonych symboli na wyjściu zależy nie tylko od symboli wejściowych, ale również od stanu wewnętrznego automatu. Pojęcie stanu wewnętrznego automatu związane jest z istnieniem pamięci. Pamięć automatu jest tym większa, im więcej ma on różnych stanów wewnętrznych q Q. Tak zwana abstrakcyjna teoria automatów nie zajmuje się szczegółami dotyczącymi struktury czasowej działania automatu, poprzestając na wyróżnieniu stanu bieżącego i następnego. Stan następny uważa się za skutek działania stanu bieżącego i symboli wejściowych.
Automatem skończonym typu Moore a nazywamy uporządkowaną piątkę: M=<X, Y, Q,, > gdzie: X jest niepustym zbiorem symboli wejściowych, Y jest niepustym zbiorem symboli wyjściowych, Q jest niepustym zbiorem stanów wewnętrznych, : Q x X Q jest funkcją przejść, : Q Y jest funkcją wyjść, Oznaczając chwilę bieżącą przez t, zaś chwilę następną przez t+1, możemy funkcje przejść i wyjść zapisać w postaci: q t+1 = (q t,x t ) lub q = (q,x) y t = (q t ) lub y = (q)
Reprezentacje automatów 1. Listy równań określające funkcje przejść i wyjść: X = {x 1, x 2 } Y = {y 1, y 2 } Q = {q 1, q 2, q 3 } (q 1,x 1 ) = q 1 (q 1 ) = y 1 (q 1,x 2 ) = q 3 (q 2 ) = y 1 (q 2,x 1 ) = q 3 (q 3 ) = y 2 (q 2,x 2 ) = q 1 (q 3,x 1 ) = q 2 (q 3,x 2 ) = q 2
2. Tablice przejść i wyjść: X={x 1, x 2 } Y={y 1, y 2 } Q={q 1, q 2, q 3 } Q Q x 1 x 2 Y q 1 q 1 q 3 y 1 q 2 q 3 q 1 y 1 q 3 q 2 q 2 y 2 Uwaga: Jeżeli nie wszystkie przejścia w tabeli są określone, to automat jest niezupełny (częściowo określony). Jeżeli dla jakiejkolwiek pozycji możliwe są dwa lub więcej warianty, to automat jest niedeterministyczny.
3. Grafy
Projektowanie automatów Synteza abstrakcyjna obejmuje tablice przejść i wyjść. Synteza strukturalna to projekt układu logicznego sekwencyjnego. Obejmuje ona: Kodowanie Wybór elementarnych układów logicznych sekwencyjnych Projekt połączeń realizujących funkcje wzbudzeń i funkcje wyjść Trywializując nieco zagadnienie, można stwierdzić, że abstrakcyjna teoria automatów zajmuje się automatami do poziomu abstrakcji wyznaczonego przez tablicę przejść i wyjść. Do tego momentu używa się ogólnych symboli dla oznaczenia stanów, wejść i wyjść. Z kolei tak zwana strukturalna teoria automatów zajmuje się przejściem od abstrakcyjnej reprezentacji automatu do jego fizycznej realizacji jako układu logicznego.
Po sporządzeniu (i ewentualnie zminimalizowaniu) tablicy przejść i wyjść następuje strukturalna synteza automatu polegająca na kodowaniu stanów liter wejściowych i wyjściowych za pomocą wektorów binarnych, wyborze elementarnych układów logicznych dla realizacji automatu i zaprojektowaniu połączeń realizujących tak zwane funkcje wzbudzeń i wyjść. W wyniku tej procedury otrzymuje się projekt układu logicznego sekwencyjnego. Kodowanie automatu polega na określeniu funkcji: f X : X B n B={ 0, 1 } f Y : Y B m f Q : Q B k Innymi słowy, umowne symbole x, y, q stosowane na etapie abstrakcyjnym trzeba zastąpić wektorami binarnymi o odpowiedniej długości. Aby zakodować K symboli za pomocą k bitów, musi zachodzić: K 2 k Czyli: X 2 n, Y 2 m, Q 2 k
Dla omawianego przykładu w wyniku kodowania uzyskamy: Q: q 1 =00 X: x 1 =0 Y: y 1 =0 q 2 =01 x 2 =1 y 2 =1 q 3 =10 Przerzutniki: Syntezę układu sekwencyjnego można prowadzić od poziomu bramek logicznych, jednak zwykle przyjmuje się, że dane są elementarne układy sekwencyjne przerzutniki, z których buduje się bardziej złożone układy. W syntezie wykorzystującej przerzutniki należy wyznaczyć tak zwane funkcje wzbudzeń oraz funkcje wyjść. Ograniczymy się do funkcji wzbudzeń, ponieważ wyznaczenie funkcji wyjść sprowadza się do problemu syntezy funkcji boolowskiej, co już poznaliśmy. Przerzutnik to układ o dwu różnych stanach wewnętrznych: 0 i 1. Stan wewnętrzny przerzutnika jest tożsamy z wyjściem.
Przerzutnik D (data) D Q t Q t+1 wzb 0 0 0 m 0 0 1 0 r 1 0 1 s 1 1 1 m 1 Przerzutnik T (toggle) T Q t Q t+1 wzb 0 0 0 m 0 0 1 1 m 1 1 0 1 s 1 1 0 r
Przerzutnik JK J K Q t Q t+1 wzb 0 0 0 0 m 0 0 0 1 1 m 1 0 1 0 0 m 0 0 1 1 0 r 1 0 0 1 s 1 0 1 1 m 1 1 1 0 1 s 1 1 1 0 r
Tablice wzbudzeń D, T, JK Przykład syntezy Q Q' wzb D T JK 0 0 m 0 0 0 0x 0 1 s 1 1 1x 1 0 r 0 1 x1 1 1 m 1 1 0 x0 Q Q x 1 x 2 Y q 1 q 1 q 3 y 1 q 2 q 3 q 1 y 1 Kodowanie: Q: q 1 =00 X: x 1 =0 Y: y 1 =0 q 2 =01 x 2 =1 y 2 =1 q 3 =10 q 3 q 2 q 2 y 2
Przykład syntezy Q Q x 1 x 2 Y q 1 q 1 q 3 y 1 q 2 q 3 q 1 y 1 Kodowanie: Q: q 1 =00 X: x 1 =0 Y: y 1 =0 q 2 =01 x 2 =1 y 2 =1 q 3 =10 q 3 q 2 q 2 y 2 Q Q B Q A Q B Q A Y Q B Q A X=0 X=1 00 00 10 0 01 10 00 0 10 01 01 1 11 xx xx x Q X X=0 X=1 B A B A 00 m 0 m 0 s m 0 01 s r m 0 r 10 r s r s 11 x x x x
Przykład syntezy dla przerzutnika JK Q X X=0 X=1 B A B A 00 m 0 m 0 s m 0 01 s r m 0 r 10 r s r s 11 x x x x Q Q' wzb JK 0 0 m 0 0x 0 1 s 1x 1 0 r x1 1 1 m 1 x0 X X=0 X=1 Q B A B A 00 0x 0x 1x 0x 01 1x x1 0x x1 10 x1 1x x1 1x 11 xx xx xx xx
Przykład syntezy dla przerzutnika JK X X=0 X=1 Q B A B A 00 0x 0x 1x 0x 01 1x x1 0x x1 10 x1 1x x1 1x 11 xx xx xx xx A B X Q B Q A 00 01 11 10 X Q B Q A 00 01 11 10 0 0x x1 xx 1x 0 0x 1x xx x1 1 0x x1 xx 1x 1 1x 0x xx x1
A B X Q B Q A 00 01 11 10 X Q B Q A 00 01 11 10 0 0x x1 xx 1x 0 0x 1x xx x1 1 0x x1 xx 1x 1 1x 0x xx x1 Q B Q A Y 00 0 01 0 10 1 11 x J A = Q B J XQ X Q X Q K A = 1 K B = 1 Y=Q B B A A A
Literatura: Janusz Nieznański, niepublikowane materiały z wykładu Podstawy techniki cyfrowej i mikroprocesorowej