Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

I T P W ZPT 1 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ŁAD SEKWENCYJNY Wektor.

Podobne prezentacje


Prezentacja na temat: "I T P W ZPT 1 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ŁAD SEKWENCYJNY Wektor."— Zapis prezentacji:

1 I T P W ZPT 1 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ŁAD SEKWENCYJNY Wektor wyjściowy Y t w chwili t zależy od sekwencji wektorów wejściowych X t, X t-1, X t-2, …. w chwilach t, t-1, t-2, ……. XtXt YtYt UK X t, X t-1, X t-2, ….YtYt US Modelem układu sekwencyjnego jest AUTOMAT Historia wejść

2 I T P W ZPT 2 Układy sekwencyjne - pojęcie automatu Automat a) zbioru liter wejściowych V (X) b) zbioru stanów wewnętrznych S, c) funkcji przejść (ozn. ), d) funkcji wyjść (ozn. ). i wyjściowych Y, v Vy Y jest definiowany przez określenie: S1S1 S2S2 S3S3 v1v1 v2v2 v2v2 v2v2 v1v1 v1v1 v3v3 v3v3 v3v3 v2v2 Y2Y2 v1v1 Y1Y1 Y3Y3 v3v3 v1v1 /Y 2 /Y 1 /Y 3

3 I T P W ZPT 3 F unkcja przejść i wyjść Funkcja wyjść: : S Y (tzw. automat Moorea) Funkcja przejść: : S X S : S X Y (tzw. automat Mealyego) 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 I T P W ZPT 4 Specyfikacja automatu Mealyego Tablica przejść-wyjść automatu: Moorea v1v1 v2v2 v1v1 v2v2 S1S1 S2S2 S1S1 y1y1 y2y2 S2S2 S3S3 S2S2 y3y3 y1y1 S3S3 S2S2 S1S1 y2y2 y3y3 v1v1 v2v2 v3v3 y S1S1 S2S2 S1S1 S3S3 y2y2 S2S2 S3S3 S1S1 S2S2 y1y1 S3S3 S1S1 S3S3 S2S2 y3y3... i graf Mealyego: Moorea: stan/ wyjście wejście stan wejście/wyjście

5 I T P W ZPT 5 Specyfikacja automatu Mealyego Tablica przejść-wyjść automatu: Moorea v1v1 v2v2 v1v1 v2v2 S1S1 S2S2 S1S1 y1y1 y2y2 S2S2 S3S3 S2S2 y3y3 y1y1 S3S3 S2S2 S1S1 y2y2 y3y3 v1v1 v2v2 v3v3 y S1S1 S2S2 S1S1 S3S3 y2y2 S2S2 S3S3 S1S1 S2S2 y1y1 S3S3 S1S1 S3S3 S2S2 y3y3... i graf Mealyego Moorea /y 2

6 I T P W ZPT 6 x1xnx1xn y1ymy1ym Q1QkQ1Qk q1qkq1qk Układ sekwencyjny wejście synchronizujące UK BP CLK US Zakodowane litery wejściowe Zakodowane litery wyjściowe Zakodowane stany automatu 00 x 1 x 2 01 11 W układach synchronicznychW układach asynchronicznych Jak zrealizowa ć automat v1v1 v2v2 v3v3 Y S1S1 S1S1 S4S4 y2y2 S2S2 S5S5 S3S3 S1S1 y1y1 S3S3 S4S4 S5S5 y3y3 S4S4 S1S1 S2S2 S3S3 y2y2 S5S5 S4S4 S2S2 y4y4 01 00 11 10 01 000 001 010 Q1Q2Q1Q2 011 100

7 I T P W ZPT 7 x1xnx1xn y1ymy1ym Q1QkQ1Qk q1qkq1qk Klasyfikacja układów sekwencyjnych Układy sekwencyjne: Synchroniczne (BP zbudowany z przerzutników synchronicznych) wejście synchronizujące Asynchroniczne (BP realizują opóźnienia lub przerzutniki asynchroniczne) UK BP CLK Brak sygnału zegarowego

8 I T P W ZPT 8 x1xnx1xn y1ymy1ym Q1QkQ1Qk q1qkq1qk Synchroniczne układy sekwencyjne UK Przerzutniki CLK BP FF I1I1 I2I2 Q CLK Przerzutnik – to automat typu Moorea 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 I T P W ZPT 9 Przerzutniki W zależności od rodzaju wejść informacyjnych wyróżniamy przerzutniki typu: D, T, SR oraz JK. FF D Q CLK FF T Q CLK FF S R Q CLK FF J K Q CLK Przerzutnik jest określony: tablicą przejść, równaniem charakterystycznym, tablicą wzbudzeń.

10 I T P W ZPT 10 Przerzutniki – tablice przejść DQDQ 01 001 101 Q = D TQTQ 01 001 110 SR Q 00011110 000–1 110–1 JK Q 00011110 00011 11001 Równanie charakterystyczne: Q = f(I 1,I 2,Q)

11 I T P W ZPT 11 Przerzutniki – tablice wzbudzeń Q DTS RJ K 00000 – 01111 01 – 10010 1– 1 1110– 0 D – delayT – trigger 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

12 I T P W ZPT 12 Przebiegi czasowe – przerzutnik typu D D Q CLK FF D Q CLK DQDQ 01 001 101

13 I T P W ZPT 13 Przebiegi czasowe – przerzutnik typu T T Q CLK FF T Q CLK TQTQ 01 001 110

14 I T P W ZPT 14 Przebiegi czasowe - porównanie D (T) Q (D) Q (T) CLK

15 I T P W ZPT 15 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) S1S1 S2S2 S3S3 v1v1 v2v2 v2v2 v2v2 v1v1 v1v1 v3v3 v3v3 v3v3 /Y 2 /Y1/Y1 /Y 3 v1v1 v2v2 v1v1 v2v2 S1S1 S2S2 S1S1 y1y1 y2y2 S2S2 S3S3 S2S2 y3y3 y1y1 S3S3 S2S2 S1S1 y2y2 y3y3 CLK x Y

16 I T P W ZPT 16 Synteza kombinacyjna… UK we Prze rzu tniki UK wy X Y Obliczanie funkcji sterujących wejściami przerzutników (funkcje wzbudzeń) Obliczanie funkcji wyjściowych CLK QQ Q = f(X,Q) Y = f(Q) (Moore) Y = f(X,Q) (Mealy)

17 I T P W ZPT 17 Przykład syntezy (detektor sekwencji) X S 0101 A BA00 B CA00 C CA01 X Q1Q0 0101 A 00010000 B 01110000 C 11110001 (–) 10– –– Y Do zakodowania trzech symboli stanów potrzebne są dwie zmienne binarne Samo przyporządkowanie symbolom stanów słów binarnych jest zazwyczaj dowolne, gdyż staramy się spełnić wyłącznie warunek jednoznaczności kodowania, ale… czyli wystarczą dwa przerzutniki, oznaczamy je Q1, Q0

18 I T P W ZPT 18 Obliczanie funkcji wzbudzeń i wyjściowych X S Q1Q0 0101 A 00010000 B 01110000 C 11110001 (–) 10– –– X Q1Q0 01 X Q1Q0 01 0000 10 0110 10 1110 10 10–– –– D1=Q1D0=Q0 Y QQD 000 011 100 111 Tworzymy tabelki dla funkcji wzbudzeń poszczególnych przerzutników

19 I T P W ZPT 19 Schemat logiczny detektora sekwencji x Y CLK Schemat logiczny rysujemy na podstawie obliczonych funkcji wzbudzeń:

20 I T P W ZPT 20 Jak pracuje automat x Y CLK X S Q1Q0 0101 A 00010000 B 01110000 C 11110001 (–) 10– –– 0 0 0 Q1 Q0 clk 1 1 1 0 0

21 I T P W ZPT 21 Przykład... Realizacja T X Q1Q0 01 00 00 01 10 11 10 10 –– X Q1Q0 01 0010 0110 1110 10–– QQT 000 011 101 110 X Q1Q0 01 00 01 11 10 –– X Q1Q0 01 00 01 11 10–– Q1 Q0 T1T0 Y – jak poprzednio 00 0 0 1 1 0 0 0 1 1 1

22 I T P W ZPT 22 Schemat logiczny detektora (T) Y – jak poprzednio CLK x Y

23 I T P W ZPT 23 Przykład... Realizacja JK QQJ K 000 – 011 – 10– 1 11– 0 Q1Q001 01 00 01 11 10–– –– J1K1 Q1Q001 01 00 01 11 10–– –– J0K0 X Q1Q0 01 00 00 01 10 11 10 10 –– X Q1Q0 01 0010 0110 1110 10–– Q1 Q0 – 1 0–0 0 – 0 – – –0 0 – – 1 – 1 –– 0 1 – 1

24 I T P W ZPT 24 Schemat logiczny detektora (JK) CLK Y Y – jak poprzednio x

25 I T P W ZPT Porównanie realizacji 25 x Y CLK x Y Y x Realizacja DRealizacja T Realizacja JK

26 I T P W ZPT 26 a – up – liczenie do przodu b – down – liczenie do tyłu c – clear – zerowanie x1x2x1x2 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: (up, down, clear) y Licznik Informację o tym jaka czynność (mikrooperacja) ma być wykonywana, wprowadzana jest do licznika sygnałami x 1, x 2.

27 I T P W ZPT 27 Zadanie: licznik mod. 5 ze sterowaniem XSXS abcY X Q2Q1Q0 00011110 S0S1S4S00000001100000 S1S2S0 0001010000 S2S3S1S00010011001000 S3S4S2S00011100010000 S4S0S3S01100000011000 a – up – liczenie do przodub – down – liczenie do tyłuc – clear – zerowanie a – up – liczenie do przodu b – down – liczenie do tyłu c – clear – zerowanie Licznik (up, down, clear) x 1 x 2 clk y Naturalny kod binarny NKB

28 I T P W ZPT 28 Licznik ze sterowaniem… X Q2Q1Q0 00011110 000001100000 001010000 010011001000 011100010000 100000011000 x 1 x 2 Q2Q1Q0 00011110 000 001 011 010 110 111 101 100 001 100 000 000 010 000 000 000 100 010 000 000 011 001 000 000 000 011 000 000 --- --- --- --- Q2Q1Q0

29 I T P W ZPT 29 x 1 x 2 Q2Q1Q0 00011110 x 1 x 2 Q2Q1Q0 00011110 x 1 x 2 Q2Q1Q0 00011110 000000010000000000000000001000 001001000000100110000010010000 011011100001101101000110110000 010010000001001010000100101100 110110––––110110––––110110–––– 111111––––111111––––111111–––– 101101––––101101––––101101–––– 100100000010010001001001000100 x 1 x 2 Q2Q1Q0 00011110 000000001001100100000000000000 001001010010000000000000000000 011011100100010010000000000000 010010011011001001000000000000 110110------------------------ 111111------------------------ 101101------------------------ 100100000000011000000000 Q2Q1Q0 Q2 Q1 Q0 Dla przerzutników typu D: Q = D = D0 = D1= D2 Przerzutniki D Kolory wyróżniają stan bieżący i następny poszczególnych przerzutników Q2 Q1 Q0

30 I T P W ZPT 30 x 1 x 2 Q2Q1Q0 00011110 x 1 x 2 Q2Q1Q0 00011110 x 1 x 2 Q2Q1Q0 00011110 0000100 0000 1000 0010000 1000 0000 0111000 0100 0000 0100000 1000 1100 110–––– –––– –––– 111–––– –––– –––– 101–––– –––– –––– 1000000 0100 0100 D2D1D1D0 D2 = D1 = D0 = Licznik ze sterowaniem - przerzutniki D

31 I T P W ZPT 31 Licznik ze sterowaniem - przerzutniki JK

32 I T P W ZPT 32 Licznik ze sterowaniem - JK x 1 x 2 Q2Q1Q0 00011110 x 1 x 2 Q2Q1Q0 00011110 0000100 –––– 0010000 –––– 0111000 –––– 0100000 –––– 110–––– –––– 111–––– –––– 101–––– –––– 100–––– 1111 J2K2 J2 = K2 =1 x 1 x 2 Q2Q1Q0 00011110 0000100 0010000 0111000 0100000 110 –––– 111 –––– 101 –––– 1000000 Q2 QQJ K 000 – 011 – 10– 1 11– 0

33 I T P W ZPT 33 x 1 x 2 Q2Q1Q00 011110 x 1 x 2 Q2Q1Q0 00011110 0000000 –––– 0011000 –––– 011–––– 1011 010–––– 0111 110–––– –––– 111–––– –––– 101–––– –––– 1000100 –––– J1K1 J1 = K1 = x1x1 x 1 x 2 Q2Q1Q0 00011110 0000000 0011000 0110100 0101000 110 –––– 111 –––– 101 –––– 1000100 Q1 Licznik ze sterowaniem - JK QQJ K 000 – 011 – 10– 1 11– 0

34 I T P W ZPT 34 x 1 x 2 Q2Q1Q0 00011110 x 1 x 2 Q2Q1Q0 00011110 0001000 –––– 001–––– 1111 011–––– 1111 0101100 –––– 110–––– –––– 111–––– –––– 101–––– –––– 1000100 –––– J0K0 J0 =K0 =1 x 1 x 2 Q2Q1Q0 00011110 0001000 0010000 0110000 0101100 110 –––– 111 –––– 101 –––– 1000100 Q0 Licznik ze sterowaniem - JK QQJ K 000 – 011 – 10– 1 11– 0

35 I T P W ZPT 35 Nie martwmy się... trzeba przetwarzać ogromne tablice wypełnione zerami i jedynkami. Ale nie martwmy się! Proces ten – w systemach komputerowego projektowania – jest całkowicie zautomatyzowany. Synteza kombinacyjna układów sekwencyjnych może być (i zazwyczaj jest) procesem żmudnym,...i jeszcze zakreślać pętelki!!!

36 I T P W ZPT 36 Nie martwmy się... AHDL lub VHDL…dalej automatycznie …aż do zaprogramowania jedyną czynnością użytkownika jest...

37 I T P W ZPT 37 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

38 I T P W ZPT 38 Na przykład licznik ze sterowaniem... TABLE % current currentnext next % % stateinputstate 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; XSXS 000110Y S0S1S4S00 S1S2S0 0 S2S3S1S00 S3S4S2S00 S4S0S3S01 zapisany w języku AHDL…

39 I T P W ZPT …lub VHDL ********************* 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; 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; po wprowadzeniu…

40 I T P W ZPT 40 …specyfikacji do edytora tekstowego TABLE % current currentnext next % % stateinputstate 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 I T P W ZPT 41 i uruchomieniu kompilatora… 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; EPM7032...zostanie automatycznie zrealizowany bez udziału projektanta.

42 I T P W ZPT 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.


Pobierz ppt "I T P W ZPT 1 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ŁAD SEKWENCYJNY Wektor."

Podobne prezentacje


Reklamy Google