Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Układy logiczne kombinacyjne sekwencyjne

Podobne prezentacje


Prezentacja na temat: "Układy logiczne kombinacyjne sekwencyjne"— Zapis prezentacji:

1 Układy logiczne kombinacyjne sekwencyjne
Układy logiczne to dział techniki cyfrowej, w której układy cyfrowe konstruowane są na poziomie bramek logicznych i przerzutników. kombinacyjne sekwencyjne Clk FF D Tadeusz Łuba ZCB

2 Układ sekwencyjny vs kombinacyjny
UKŁAD KOMBINACYJNY Wektor wyjściowy Yt w chwili t zależy od wektora wejściowego Xt w chwili t US UK 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, ……. Tadeusz Łuba ZCB Modelem układu sekwencyjnego jest AUTOMAT

3 Układy sekwencyjne - pojęcie automatu
v2 v1 v  V y  Y v3 S2 /Y1 S1 /Y2 v2 v1 v3 v1 v2 v3 Y3 Y1 Y2 v1 v3 v1 S3 /Y3 v2 jest definiowany przez określenie:  a) zbioru liter wejściowych V (X) i wyjściowych Y, b) zbioru stanów wewnętrznych S, Tadeusz Łuba ZCB c) funkcji przejść (ozn. ), d) funkcji wyjść (ozn. ).

4 Funkcja przejść i wyjść
Funkcja przejść: : S  V  S Funkcja wyjść: : S  V  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  V, lub funkcja  nie jest określona dla całego zbioru S  V lub zbioru S Tadeusz Łuba ZCB

5 Specyfikacja automatu
Tablica przejść-wyjść automatu: Moore’a Mealy’ego v1 v2 v3 y S1 S2 S3 y2 y1 y3 v1 v2 S1 S2 y1 y2 S3 y3 ... i graf Mealy’ego: Moore’a: stan wejście/wyjście stan/ wyjście wejście Tadeusz Łuba ZCB

6 Specyfikacja automatu
Tablica przejść-wyjść automatu: Moore’a Mealy’ego v1 v2 v3 y S1 S2 S3 y2 y1 y3 v1 v2 S1 S2 y1 y2 S3 y3 ... i graf /y2 Moore’a Mealy’ego Tadeusz Łuba ZCB

7 Przykład automatu… …Detektor sekwencji
X Y X S 1 A B C 0/0 A B C 1/0 1/1 Y Tadeusz Łuba ZCB

8 US Układ sekwencyjny UK BP Jak zrealizować automat 01 00 11 10 x1 xn
000 001 010 Q1Q2 011 100 v1 v2 v3 Y S1 S4 y2 S2 S5 S3 y1 y3 y4 01 00 11 10 W US litery są zastępowane sygnałami x1 xn y1 ym Q1 Qk q1 qk US Zakodowane litery wejściowe Zakodowane litery wyjściowe UK Zakodowane stany automatu BP Tadeusz Łuba ZCB wejście synchronizujące CLK Rzadziej są stosowane układy asynchroniczne: bez zegara układy sekwencyjne synchroniczne

9 Klasyfikacja układów sekwencyjnych
x1 xn y1 ym Q1 Qk q1 qk UK BP CLK wejście synchronizujące Układy sekwencyjne: Synchroniczne (BP zbudowany z przerzutników synchronicznych) Tadeusz Łuba ZCB Asynchroniczne (rolę bloku pamięci spełniają opóźnienia lub przerzutniki asynchroniczne) Brak sygnału zegarowego

10 Synchroniczne układy sekwencyjne
x1 xn y1 ym UK Q1 Qk q1 qk BP Przerzutniki CLK FF I1 I2 Q CLK Przerzutnik – to automat typu Moore’a o dwóch stanach wewnętrznych, jednym lub dwóch wejściach informacyjnych, Tadeusz Łuba ZCB dwóch wyjściach (prostym i zanegowanym) oraz wejściu synchronizującym (zegarowym).

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

12 Przerzutniki – tablice przejść
D Q 1 Wewnątrz tablicy zapisany jest stan następny Q’ T Q 1 F D Q CLK Q’ = D Równanie charakterystyczne SR Q 00 01 11 10 1 JK Q 00 01 11 10 1 Tadeusz Łuba ZCB Stan następny Q’ można przedstawić jako funkcję stanu bieżącego Q oraz wejść przerzutnika Q’ = f(I1,I2,Q)

13 Przerzutniki – tablice wzbudzeń
Q Q’ D T S R J K 00 0 – 01 1 1 0 1 – 10 0 1 – 1 11 – 0 D – delay T – trigger S – Set (wejście włączające) R – Reset (wejście wyłączające) Tadeusz Łuba ZCB J – wejście włączające K – wejście wyłączające

14 Przebiegi czasowe – przerzutnik typu D
FF D Q CLK Narastające zbocze wyznacza moment zmiany CLK D D Q 1 Q Przerzutnik nie zmienia swego stanu w momencie zmiany sygnału wejściowego (tak jak by to zrobił UK). On tylko zauważa tę zmianę, a samą zmianę podejmuje w momencie wyznaczonym przez zegar. Tadeusz Łuba ZCB

15 Przebiegi czasowe – przerzutnik typu T
FF T Q CLK CLK T T Q 1 Q Tadeusz Łuba ZCB

16 Przebiegi czasowe - porównanie
CLK D (T) Q (D) Q (T) Tadeusz Łuba ZCB

17 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) Schemat logiczny CLK x Y minimalizacja v1 v2 S1 S2 y1 y2 S3 y3 kodowanie Tadeusz Łuba ZCB

18 Synteza kombinacyjna…
Q’ Q funkcji sterujących wejściami przerzutników (funkcje wzbudzeń) X Przerzu tniki Y UK we UK wy oraz funkcji wyjściowych CLK …polega na obliczaniu… Tadeusz Łuba ZCB Moore: Mealy: Y = f(Q) Q’ = f(X,Q) Y = f(X,Q)

19 Przykład syntezy (detektor sekwencji)
Do zakodowania trzech symboli stanów potrzebne są dwie zmienne binarne czyli wystarczą dwa przerzutniki, oznaczamy je Q1, Q0 X Q1Q0 1 A 01 00 B 11 C (–) 10 – – X S 1 A B C Kodowanie Y Samo przyporządkowanie symbolom stanów słów binarnych jest zazwyczaj dowolne, gdyż staramy się spełnić wyłącznie warunek jednoznaczności kodowania, ale… Tadeusz Łuba ZCB

20 Obliczanie funkcji wzbudzeń i wyjściowych
X S Q1Q0 1 A 01 00 B 11 C (–) 10 – – QQ’ D 00 01 1 10 11 Y X Q1Q0 1 00 01 11 10 D1=Q1’ D0=Q0’ Tworzymy tabelki do obliczenia funkcji wzbudzeń poszczególnych przerzutników Tadeusz Łuba ZCB Tabelki są w postaci tabelek Karnaugha

21 Schemat logiczny detektora sekwencji
x Y CLK Tadeusz Łuba ZCB Schemat logiczny rysujemy na podstawie obliczonych funkcji wzbudzeń:

22 Jak pracuje automat x Y Zmienił się sygnał wejściowy 1 1 1 CLK
x Y CLK X S Q1Q0 1 A 01 00 B 11 C (–) 10 – – 1 1 Początkowo automat znajduje się w stanie A = 00, a na jego wejściu x jest sygnał 0. clk Tadeusz Łuba ZCB Q1 Co się dzieje dalej? Q0 22

23 Przykład... Realizacja T Y – jak poprzednio QQ’ T 00 01 1 10 11 X Q1Q0
01 1 10 11 X Q1Q0 1 00 01 11 10 X Q1Q0 1 00 01 11 10 Stosujemy te same tabelki stanu następnego, ale przekształcamy je do tabelek wzbudzeń Q1’ Q0’ X Q1Q0 1 00 01 11 10 X Q1Q0 1 00 01 11 10 1 1 1 1 1 T1 T0 Tadeusz Łuba ZCB Y – jak poprzednio

24 Schemat logiczny detektora (T)
x Y CLK Tadeusz Łuba ZCB Y – jak poprzednio Co zauważamy: funkcje wzbudzeń dla T są bardziej skomplikowane!

25 Przykład... Realizacja JK
X Q1Q0 1 00 01 11 10 X Q1Q0 1 00 01 11 10 QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 Q1’ Q0’ Q1Q0 1 00 01 11 10 J1 K1 Q1Q0 1 00 01 11 10 J0 K0 1 1 1 Tadeusz Łuba ZCB

26 Schemat logiczny detektora (JK)
CLK Y x Tadeusz Łuba ZCB Y – jak poprzednio

27 Porównanie realizacji
x Y CLK CLK x Y Realizacja D Realizacja T Najbardziej skomplikowana jest realizacja T Ale nie zawsze tak jest!!! CLK Y x Tadeusz Łuba ZCB Realizacja JK

28 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 (up, down, clear) y Licznik x1 x2 b – down – liczenie do tyłu c – clear – zerowanie Tadeusz Łuba ZCB Informację o tym jaka czynność (mikrooperacja) ma być wykonywana, wprowadzana jest do licznika sygnałami x1, x2.

29 Zadanie: licznik mod. 5 ze sterowaniem
(up, down, clear) x1 x2 clk y a – up – liczenie do przodu b – down – liczenie do tyłu c – clear – zerowanie Etap syntezy abstrakcyjnej: tablica p-w a – up – liczenie do przodu b – down – liczenie do tyłu c – clear – zerowanie X S a b c Y Q2Q1Q0 00 01 11 10 S0 S1 S4 000 001 100 S2 010 S3 011 1 KODOWANIE Tadeusz Łuba ZCB Naturalny kod binarny NKB 29

30 Licznik ze sterowaniem…
Etap syntezy kombinacyjnej: obliczanie funkcji wzbudzeń Skomasowana tablica Karnaugha Zakodowana tablica przejść x1x2 Q2Q1Q0 00 01 11 10 000 001 011 010 110 111 101 100 Wpisywanie w standardową tablicę Karnaugh’a X Q2Q1Q0 00 01 11 10 000 001 100 010 011 Q2’Q1’Q0’ Tadeusz Łuba ZCB Q2’Q1’Q0’

31 Przerzutniki D Należy tę tablicę rozpisać na poszczególne
x1x2 Q2Q1Q0 00 01 11 10 000 001 100 010 011 110 --- 111 101 Przerzutniki D Kolory wyróżniają stan bieżący i następny poszczególnych przerzutników Należy tę tablicę rozpisać na poszczególne funkcje wzbudzeń Q2 Q1 Q0 Dla przerzutników typu D: Q’ = D Q2’Q1’Q0’ Q2’ Q0’ Q1’ x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 111 101 100 Tadeusz Łuba ZCB = D2 = D1 = D0

32 Licznik ze sterowaniem - przerzutniki D
x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 111 101 100 D2 D1 D0 D2 = D1 = D0 = Tadeusz Łuba ZCB

33 Licznik ze sterowaniem - przerzutniki JK
Tablica funkcji Q' Tablica funkcji J funkcji K Tadeusz Łuba ZCB

34 Licznik ze sterowaniem - JK
QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 Należy skorzystać z tabelki wzbudzeń JK x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 111 101 100 x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 111 101 100 J2 K2 Tadeusz Łuba ZCB Q2’ J2 = K2 = 1

35 Licznik ze sterowaniem - JK
QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 x1x2 Q2Q1Q0 00 01 11 10 000 001 1 011 010 110 111 101 100 x1x2 Q2Q1Q0 00 01 11 10 000 001 1 011 010 110 111 101 100 J1 K1 Tadeusz Łuba ZCB Q1’ J1 = K1 = x1

36 Licznik ze sterowaniem - JK
QQ’ J K 00 0 – 01 1 – 10 – 1 11 – 0 x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 111 101 100 x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 111 101 100 J0 K0 Tadeusz Łuba ZCB Q0’ J0 = K0 = 1

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

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

39 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… …na zapis w języku tablica przejśc-wyjść AHDL VHDL Odwzorowanie Tadeusz Łuba ZCB

40 Na przykład licznik ze sterowaniem...
TABLE % current current next next % % state input state output % s, v[] => s, y; s0, B"00„ => s1, ; s0, B"01„ => s4, ; s0, B"1X„ => s0, ; s1, B"00„ => s2, ; s1, B"01„ => s0, ; s1, B"1X„ => s0, ; s2, B"00„ => s3, ; s2, B"01„ => s1, ; s2, B"1X„ => s0, ; s3, B"00„ => s4, ; s3, B"01„ => s2, ; s3, B"1X„ => s0, ; s4, B"00„ => s0, ; s4, B"01„ => s3, ; s4, B"1X„ => s0, ; END TABLE; X S 00 01 10 Y S0 S1 S4 S2 S3 1 Tadeusz Łuba ZCB zapisany w języku AHDL…

41 …lub VHDL po wprowadzeniu… ……….. Tadeusz Łuba ZCB
********************* 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) 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 => END CASE; ……….. WHEN S4 => state_next <= S3; END PROCESS; -- funkcja wyjscia Y <= '1' WHEN state_reg = S4 ELSE '0'; END funkcja_przejsc; Tadeusz Łuba ZCB po wprowadzeniu…

42 …specyfikacji do edytora tekstowego
TABLE % current current next next % % state input state output % s, v[] => s, y; s0, B"00„ => s1, ; s0, B"01„ => s4, ; s0, B"1X„ => s0, ; s1, B"00„ => s2, ; s1, B"01„ => s0, ; s1, B"1X„ => s0, ; s2, B"00„ => s3, ; s2, B"01„ => s1, ; s2, B"1X„ => s0, ; s3, B"00„ => s4, ; s3, B"01„ => s2, ; s3, B"1X„ => s0, ; s4, B"00„ => s0, ; s4, B"01„ => s3, ; s4, B"1X„ => s0, ; END TABLE; Tadeusz Łuba ZCB

43 i uruchomieniu kompilatora…
...zostanie automatycznie zrealizowany bez udziału projektanta. EPM7032 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; Tadeusz Łuba ZCB

44 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. Tadeusz Łuba ZCB


Pobierz ppt "Układy logiczne kombinacyjne sekwencyjne"

Podobne prezentacje


Reklamy Google