330 likes | 787 Views
Układy sekwencyjne - pojęcie automatu. Automa t. v 2. v 1. v V. y Y. v 3. S 2. /Y 1. S 1. /Y 2. v 2. v 1. v 3. v 1. v 2. v 3. Y 3. Y 1. Y 2. v 1. v 3. v 1. /Y 3. S 3. v 2. jest definiowany przez określenie: . a) zbioru liter wejściowych V ( X ).
E N D
Układy sekwencyjne - pojęcie automatu Automat v2 v1 v V y Y v3 S2 /Y1 S1 /Y2 v2 v1 v3 v1 v2 v3 Y3 Y1 Y2 v1 v3 v1 /Y3 S3 v2 jest definiowany przez określenie: a) zbioru liter wejściowych V (X) i wyjściowych Y, b) zbioru stanów wewnętrznych S, c) funkcji przejść (ozn. ), d) funkcji wyjść (ozn. ).
Funkcja przejść i wyjść Funkcja przejść: : S XS Funkcja wyjść: : S XY (tzw. automat Mealy’ego) : S Y (tzw. automat Moore’a) Automat może być zupełny lub niezupełny
wejście/wyjście wejście stan/ wyjście stan Specyfikacja automatu Tablica przejść-wyjść automatu: Moore’a Mealy’ego ... i graf Mealy’ego: Moore’a:
/y2 Specyfikacja automatu Tablica przejść-wyjść automatu: Moore’a Mealy’ego ... i graf Moore’a Mealy’ego
x1 xn y1 ym Q1 Qk q1 qk Układ sekwencyjny Zakodowane litery wejściowe Zakodowane litery wyjściowe US UK układ kombinacyjny BP blok pamięci Zakodowane stany automatu CLK wejście synchronizujące Układy sekwencyjne: Synchroniczne (BP zbudowany z przerzutników synchronicznych) Asynchroniczne (BP realizują opóźnienia lub przerzutniki asynchroniczne)
Synchroniczne układy sekwencyjne x1 xn y1 ym UK Q1 Qk q1 qk BP Przerzutniki CLK
S I1 J Q Q Q FF FF FF R K I2 CLK CLK CLK Q Q D T FF FF CLK CLK Przerzutniki Przerzutnik – to automat typu Moore’a o dwóch stanach wewnętrznych,jednym lub dwóch wejściach informacyjnych, dwóch wyjściach (prostym i zanegowanym) oraz wejściu synchronizującym (zegarowym). W zależności od rodzaju wejść informacyjnych wyróżniamy przerzutniki typu: D, T, SR oraz JK.
I1 Q FF I2 CLK Przerzutniki • Przerzutnik jest określony: • tablicą przejść, • równaniem charakterystycznym, • tablicą wzbudzeń.
Q’ = D Przerzutniki – tablice przejść Równanie charakterystyczne: Q’ = f(I1,I2,Q)
S – Set (wejście włączające) R – Reset (wejście wyłączające) J – wejście włączające K – wejście wyłączające Przerzutniki – tablice wzbudzeń D – delay T– trigger
CLK D Q D FF CLK Przebiegi czasowe – przerzutnik typu D Q
CLK T Q T FF CLK Przebiegi czasowe – przerzutnik typu T Q
CLK D (T) Przebiegi czasowe - porównanie Q (D) Q (T)
v2 v1 v3 /Y1 S2 S1 /Y2 v2 v3 v1 v3 v1 S3 /Y3 v2 x Y CLK Synteza układów sekwencyjnych Etapy syntezy: 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) minimalizacja kodowanie
Obliczanie funkcji wyjściowych Obliczanie funkcji sterujących wejściami przerzutników (funkcje wzbudzeń) Y = f(X,Q) (Mealy) Synteza kombinacyjna… Q’ Q X Przerzu tniki Y UK we UK wy CLK Y = f(Q) (Moore) Q’ = f(X,Q)
Y Przykład syntezy (detektor sekwencji) Wystarczą dwa przerzutniki Kodowanie Na razie staramy się spełnić wyłącznie warunek jednoznaczności kodowania
Y Obliczanie funkcji wzbudzeń i wyjściowych
Q0’ Q1’ 0 0 0 T1 T0 Przykład... Realizacja T 0 1 0 1 0 1 1 0 1 Y – jak poprzednio
x Y CLK Schemat logiczny detektora (T) Y – jak poprzednio
CLK Y x Schemat logiczny detektora (JK) Y – jak poprzednio
CAD Nie martwmy się ... Synteza kombinacyjna układów sekwencyjnych może być (i zazwyczaj jest) procesem żmudnym, trzeba przetwarzać ogromne tablice wypełnione zerami i jedynkami. Ale nie martwmy się! Proces ten – w systemach komputerowego projektowania – jest całkowicie zautomatyzowany.
AHDL lub VHDL …dalej automatycznie …aż do zaprogramowania Nie martwmy się ... jedyną czynnością użytkownika jest ... zapisanie tablicy p-w w języku
tablica przejśc-wyjść Specyfikacja automatu Nie wnikając w szczegóły takiego zapisu (będą one omawiane na innych wykładach) trzeba podkreślić, że jest to wierne odwzorowanie tablicy przejść wyjść automatu. AHDL VHDL Odwzorowanie
Na przykład licznik ze sterowaniem... • TABLE • % current current next next % • % state input state output % • s, v[] => s, y; • s0, B"00„ => s1, 0; • s0, B"01„ => s4, 0; • s0, B"1X„ => s0, 0; • s1, B"00„ => s2, 0; • s1, B"01„ => s0, 0; • s1, B"1X„ => s0, 0; • s2, B"00„ => s3, 0; • s2, B"01„ => s1, 0; • s2, B"1X„ => s0, 0; • s3, B"00„ => s4, 0; • s3, B"01„ => s2, 0; • s3, B"1X„ => s0, 0; • s4, B"00„ => s0, 1; • s4, B"01„ => s3, 1; • s4, B"1X„ => s0, 1; • END TABLE; po wprowadzeniu... zapisany w języku AHDL,
…specyfikacji do edytora tekstowego • TABLE • % current current next next % • % state input state output % • s, v[] => s, y; • s0, B"00„ => s1, 0; • s0, B"01„ => s4, 0; • s0, B"1X„ => s0, 0; • s1, B"00„ => s2, 0; • s1, B"01„ => s0, 0; • s1, B"1X„ => s0, 0; • s2, B"00„ => s3, 0; • s2, B"01„ => s1, 0; • s2, B"1X„ => s0, 0; • s3, B"00„ => s4, 0; • s3, B"01„ => s2, 0; • s3, B"1X„ => s0, 0; • s4, B"00„ => s0, 1; • s4, B"01„ => s3, 1; • s4, B"1X„ => s0, 1; • END TABLE;
EPM7032 i uruchomieniu kompilatora… ...zostanie automatycznie zrealizowany bez udziału projektanta. q0 _EQ001 = !q0 & q1 & !X1 & X2 # q2 & !X1 & X2 # !q0 & !q2 & !X1 & !X2; q1 _EQ002 = q2 & !X1 & X2 # q0 & q1 & !X1 & X2 # !q0 & q1 & !q2 & !X1 & !X2 # q0 & !q1 & !q2 & !X1 & !X2; q2 _EQ003 = !q0 & !q1 & !q2 & !X1 & X2 # q0 & q1 & !q2 & !X1 & !X2;
Wniosek Skoro kompilator oblicza funkcje wzbudzeń automatycznie, to umiejętność ta nie jest w dzisiejszych czasach sprawą najważniejszą. Lepiej skoncentrować się na tych metodach i procedurach syntezy logicznej, które nie są jeszcze wbudowane do systemów komercyjnych.