1 / 42

Układy sekwencyjne

Układy sekwencyjne. UKŁAD KOMBINACYJNY Wektor wyjściowy Y t w chwili t zależy od wektora wejściowego X t w chwili t. UK. US. X t , X t-1 , X t-2 , …. X t. Y t. Y t. Historia wejść. UKŁAD SEKWENCYJNY Wektor wyjściowy Y t w chwili t

zoltin
Download Presentation

Układy sekwencyjne

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Układy sekwencyjne UKŁAD KOMBINACYJNY Wektor wyjściowy Yt w chwili t zależy od wektora wejściowego Xt w chwili t UK US Xt, Xt-1, Xt-2, …. Xt Yt Yt Historia wejść UKŁAD SEKWENCYJNY 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 układu sekwencyjnego jest AUTOMAT

  2. 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. ).

  3. Funkcja przejść i wyjść Funkcja przejść: : S XS Funkcja wyjść: : S XY (tzw. automat Mealy’ego) : S Y (tzw. automat Moore’a) Automat może być zupełny lub niezupełny. Automat jest niezupełny, jeżeli funkcja  nie jest określona dla całego zbioru S  X, lub funkcja  nie jest określona dla całego zbioru S  X lub zbioru S

  4. 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:

  5. /y2 Specyfikacja automatu Tablica przejść-wyjść automatu: Moore’a Mealy’ego ... i graf Moore’a Mealy’ego

  6. Jak zrealizować automat x1 xn y1 ym Q1 Qk q1 qk x1 x2 00 01 11 Układ sekwencyjny Q1Q2 01 000 00 001 10 010 01 011 11 100 US Zakodowane litery wejściowe Zakodowane litery wyjściowe UK Zakodowane stany automatu BP wejście synchronizujące CLK W układach synchronicznych W układach asynchronicznych

  7. x1 xn y1 ym Q1 Qk q1 qk Klasyfikacja układów sekwencyjnych UK BP CLK wejście synchronizujące Układy sekwencyjne: Synchroniczne (BP zbudowany z przerzutników synchronicznych) Asynchroniczne (BP realizują opóźnienia lub przerzutniki asynchroniczne) Brak sygnału zegarowego

  8. I1 Q FF I2 CLK Synchroniczne układy sekwencyjne x1 xn y1 ym UK Q1 Qk q1 qk BP Przerzutniki CLK 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).

  9. S J Q Q FF FF R K CLK CLK Q Q D T FF FF CLK CLK Przerzutniki W zależności od rodzaju wejść informacyjnych wyróżniamy przerzutniki typu: D, T, SR oraz JK. • Przerzutnik jest określony: • tablicą przejść, • równaniem charakterystycznym, • tablicą wzbudzeń.

  10. Q’ = D Przerzutniki – tablice przejść Równanie charakterystyczne: Q’ = f(I1,I2,Q)

  11. 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

  12. CLK D Q D FF CLK Przebiegi czasowe – przerzutnik typu D Q

  13. CLK T Q T FF CLK Przebiegi czasowe – przerzutnik typu T Q

  14. CLK D (T) Przebiegi czasowe - porównanie Q (D) Q (T)

  15. 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

  16. 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)

  17. Y Przykład syntezy (detektor sekwencji) Do zakodowania trzech symboli stanów potrzebne są dwie zmienne binarne czyli wystarczą dwa przerzutniki, oznaczamy je Q1, Q0 Kodowanie Samo przyporządkowanie symbolom stanów słów binarnych jest zazwyczaj dowolne, gdyż staramy się spełnić wyłącznie warunek jednoznaczności kodowania, ale…

  18. Y Obliczanie funkcji wzbudzeń i wyjściowych Tworzymy tabelki dla funkcji wzbudzeń poszczególnych przerzutników

  19. Schemat logiczny detektora sekwencji x Y CLK Schemat logiczny rysujemy na podstawie obliczonych funkcji wzbudzeń:

  20. Jak pracuje automat x 1 0 Y 0 0 1 0 1 0 CLK clk Q1 Q0 20

  21. Q0’ Q1’ 0 0 0 T1 T0 Przykład... Realizacja T 0 1 0 1 0 1 1 0 1 Y – jak poprzednio

  22. x Y CLK Schemat logiczny detektora (T) Y – jak poprzednio

  23. Q0’ Q1’ 0 1 0 0 – – – – – – – – 0 0 1 1 – – 0 1 – – 0 1 Przykład... Realizacja JK

  24. CLK Y x Schemat logiczny detektora (JK) Y – jak poprzednio

  25. x Y CLK Y x CLK Porównanie realizacji x Y Realizacja D Realizacja T CLK Realizacja JK

  26. Licznik y (up, down, clear) Zadanie nieco trudniejsze (Licznik mod. 5 ze sterowaniem) Licznik to układ cyfrowy (blok funkcjonalny), w którym zliczane są impulsy zegarowe. Pojawienie się impulsu zwiększa lub zmniejsza zawartość licznika o 1. Czyli jest to prosty układ sekwencyjny, który musi pamiętać poprzednią zawartość reprezentowaną stanem wewnętrznym. Zaprojektować licznik, który będzie wykonywał trzy czynności: a – up – liczenie do przodu x1 x2 b – down – liczenie do tyłu c – clear – zerowanie Informację o tym jaka czynność (mikrooperacja) ma być wykonywana, wprowadzana jest do licznika sygnałami x1, x2.

  27. Zadanie: licznik mod. 5 ze sterowaniem a – up – liczenie do przodu x1 x2 clk Licznik (up, down, clear) y b – down – liczenie do tyłu c – clear – zerowanie a – up – liczenie do przodu b – down – liczenie do tyłu c – clear – zerowanie KODOWANIE Naturalny kod binarny NKB 27

  28. Licznik ze sterowaniem… Wpisywanie w standardową tablicę Karnaugh’a 001 100 000 000 010 000 000 000 100 010 000 000 011 001 000 000 --- --- --- --- --- --- --- --- --- --- --- --- 000 011 000 000 Q2’Q1’Q0’ Q2’Q1’Q0’

  29. Q2’ Q1’ Q0’ Przerzutniki D Kolory wyróżniają stan bieżący i następny poszczególnych przerzutników Dla przerzutników typu D: Q’ = D Q2 Q1 Q0 Q2’Q1’Q0’ = D0 = D2 = D1

  30. Licznik ze sterowaniem - przerzutniki D D2 = D1 = D0 =

  31. Tablica funkcji J Tablica funkcji K Licznik ze sterowaniem - przerzutniki JK Tablica funkcji Q'

  32. Licznik ze sterowaniem - JK QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 Q2’ J2 = K2 = 1

  33. Licznik ze sterowaniem - JK QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 Q1’ x1 J1 = K1 =

  34. Licznik ze sterowaniem - JK QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 Q0’ J0 = K0 = 1

  35. 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. ...i jeszcze zakreślać pętelki!!! Ale nie martwmy się! Proces ten – w systemach komputerowego projektowania – jest całkowicie zautomatyzowany.

  36. AHDL lub VHDL …dalej automatycznie …aż do zaprogramowania Nie martwmy się ... jedyną czynnością użytkownika jest ... zapisanie tablicy p-w w języku

  37. tablica przejśc-wyjść Specyfikacja automatu Nie wnikając w szczegóły takiego zapisu (będą one omawiane na wykładzie z Układów cyfrowych) trzeba podkreślić, że jest to wierne odwzorowanie tablicy przejść wyjść automatu. AHDL VHDL Odwzorowanie

  38. 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; zapisany w języku AHDL…

  39. …lub VHDL PROCESS(X, state_reg) BEGIN CASE state_reg IS WHEN S0 => CASE X IS WHEN a => state_next <= S1; WHEN b => state_next <= S4; WHEN c => state_next <= S0; WHEN OTHERS => state_next <= S0; END CASE; ……….. WHEN S4 => CASE X IS WHEN a => state_next <= S0; WHEN b => state_next <= S3; WHEN c => state_next <= S0; WHEN OTHERS => state_next <= S0; END CASE; WHEN OTHERS => state_next <= S0; END CASE; END PROCESS; -- funkcja wyjscia Y <= '1' WHEN state_reg = S4 ELSE '0'; END funkcja_przejsc; ********************* Plik VHDL automat.vhd ********************* LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY automat IS PORT(zegar, reset : IN STD_LOGIC; X: IN STD_LOGIC_VECTOR(1 DOWNTO 0); Y : OUT STD_LOGIC); END automat; ARCHITECTURE funkcja_przejsc OF automat IS CONSTANT a : STD_LOGIC_VECTOR(1 DOWNTO 0) := "00"; CONSTANT b : STD_LOGIC_VECTOR(1 DOWNTO 0) := "01"; CONSTANT c : STD_LOGIC_VECTOR(1 DOWNTO 0) := "11"; CONSTANT S0 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "000"; CONSTANT S1 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "001"; CONSTANT S2 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "010"; CONSTANT S3 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "011"; CONSTANT S4 : STD_LOGIC_VECTOR(2 DOWNTO 0) := "100"; SIGNAL state_reg, state_next : STD_LOGIC_VECTOR(2 DOWNTO 0); BEGIN PROCESS(reset, zegar) BEGIN IF reset = '1' THEN state_reg <= S0; ELSIF(zegar'EVENT AND zegar = '1') THEN state_reg <= state_next; END IF; END PROCESS; po wprowadzeniu…

  40. …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;

  41. 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;

  42. 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.

More Related