Modelem układu sekwencyjnego jest AUTOMAT

Slides:



Advertisements
Podobne prezentacje
REALIZACJA REGULATORA PID W UKŁADZIE FPGA
Advertisements

Automaty asynchroniczne
Sumatory + Półsumator A B S C A B S (suma) C (przeniesienie)
Kod Hamminga Podstawy Telekomunikacji Autor: Paweł Zajdel
Układy sekwencyjne - pojęcie automatu
Architektura systemów komputerowych
Liczniki.
Michał Łasiński Paweł Witkowski
PRZERZUTNIKI W aktualnie produkowanych przerzutnikach scalonych TTL wyróżnia się dwa podstawowe rodzaje wejść informacyjnych: - wejścia asynchroniczne,
Instrukcje strukturalne
Systemy operacyjne Copyright, 2000 © Jerzy R. Nawrocki Wprowadzenie do informatyki.
Budowa komputera Wstęp do informatyki Wykład 15
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Od algebry Boole’a do komputera
Programowalne Układy Cyfrowe Ernest Jamro, Paweł Russek C3 p
Najczęściej popełniane błędy w VHDL’u
Minimalizacja funkcji boolowskich
Architektura komputerów
UKŁADY SZEREGOWO-RÓWNOLEGŁE
Automatyka Wykład 3 Modele matematyczne (opis matematyczny) liniowych jednowymiarowych (o jednym wejściu i jednym wyjściu) obiektów, elementów i układów.
Układy sekwencyjne pojęcia podstawowe.
minimalizacja automatów
Przerzutniki.
Układy kombinacyjne.
Układy sekwencyjne - pojęcie automatu
Synteza układów sekwencyjnych z (wbudowanymi) pamięciami ROM
Zmodyfikowana metoda ekspansji Komputerowe narzędzia syntezy logicznej
Synteza logiczna w projektowaniu układów cyfrowych
Licznik dwójkowy i dziesiętny Licznik dwójkowy i dziesiętny
Problem kodowania stanów w układach sekwencyjnych (automatach)
Problem kodowania stanów w układach sekwencyjnych (automatach)
Zadanie treningowe… …do wykładów ULOG cz. 6 i cz. 7 Rozwiązanie: E S 1
Problem kodowania x s 1 A B C D Wariant I A = 00 B = 01 C = 10 D = 11
Cyfrowe układy logiczne
Sekwencyjne bloki funkcjonalne
UKŁADY MIKROPROGRAMOWANE
Układy cyfrowe.
Minimalizacja funkcji boolowskich
Przykład syntezy strukturalnej
Minimalizacja funkcji boolowskich
Minimalizacja automatu
Minimalizacja automatu
Synteza logiczna w projektowaniu…
Problematyka wykładu Podział rejestrów i liczników
Metoda klasyczna ... to metoda tablicowa, graficzna, której podstawowe
Struktury układów logicznych
Sygnały cyfrowe i bramki logiczne
  Prof.. dr hab.. Janusz A. Dobrowolski Instytut Systemów Elektronicznych, Politechnika Warszawska.
Stało- i zmiennopozycyjna reprezentacja liczb binarnych
Prezentacja Multimedialna
Reprezentacja liczb w systemie binarnym ułamki i liczby ujemne
Pudełko Urządzenia Techniki Komputerowej
Podstawy Techniki Cyfrowej
Złożone układy kombinacyjne
Bramki logiczne i układy kombinatoryczne
Dekompozycja metodą rachunku podziałów c.d.
Działania w systemie binarnym
Układy asynchroniczne
Przerzutniki Przerzutniki.
Przerzutniki bistabilne
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
I T P W ZPT 1 Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b =  log 2 |S|  Problem kodowania w automatach Minimalna.
I T P W ZPT Konwerter BIN2BCD 1 LK „8” DEC LK = 0 LOAD1 R3R2R1  K S3 S2S1 A B „5” K  5 MUX 1 0 A R4 LOAD2 Y = LD B LB „3” US Układ wykonawczy Układ sterujący.
Układy logiczne – układy cyfrowe
ZPT Evatronix Kontroler Ethernet MAC (Media Access Control) 10/100Mbit spełniający rolę rolę podstawowej arterii wymiany danych pomiędzy urządzeniami sterującymi.
Układy logiczne – układy cyfrowe
Układy logiczne kombinacyjne sekwencyjne
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Układy asynchroniczne
Podstawy Automatyki Człowiek- najlepsza inwestycja
Zapis prezentacji:

Modelem układu sekwencyjnego jest AUTOMAT Układy sekwencyjne 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, ……. Modelem układu sekwencyjnego jest AUTOMAT

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, c) funkcji przejść (ozn. ), d) funkcji wyjść (ozn. ).

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

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

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

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 x1 xn y1 ym Q1 Qk q1 qk US Zakodowane litery wejściowe UK Zakodowane litery wyjściowe Zakodowane stany automatu BP wejście synchronizujące CLK W układach synchronicznych W układach asynchronicznych

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) Asynchroniczne (BP realizują opóźnienia lub przerzutniki asynchroniczne) Brak sygnału zegarowego

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, dwóch wyjściach (prostym i zanegowanym) oraz wejściu synchronizującym (zegarowym).

Przerzutniki 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ść, równaniem charakterystycznym, tablicą wzbudzeń.

Przerzutniki – tablice przejść Q 1 D Q 1 Q’ = D SR Q 00 01 11 10 – 1 JK Q 00 01 11 10 1 Równanie charakterystyczne: Q’ = f(I1,I2,Q)

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) J – wejście włączające K – wejście wyłączające

Przebiegi czasowe – przerzutnik typu D FF D Q CLK CLK D D Q 1 Q

Przebiegi czasowe – przerzutnik typu T FF T Q CLK CLK T T Q 1 Q

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

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) S1 S2 S3 v1 v2 v3 /Y2 /Y1 /Y3 CLK x Y minimalizacja v1 v2 S1 S2 y1 y2 S3 y3 kodowanie

Synteza kombinacyjna… Y = f(X,Q) (Mealy) Q’ Q X Przerzu tniki Y UK we UK wy Obliczanie funkcji sterujących wejściami przerzutników (funkcje wzbudzeń) Obliczanie funkcji wyjściowych CLK Y = f(Q) (Moore) Q’ = f(X,Q)

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 00 01 00 B 01 11 C 11 (–) 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…

Obliczanie funkcji wzbudzeń i wyjściowych X S Q1Q0 1 A 00 01 00 B 01 11 C 11 (–) 10 – – – QQ’ D 00 01 1 10 11 Y X Q1Q0 1 00 01 11 10 – D1=Q1’ D0=Q0’ Tworzymy tabelki dla funkcji wzbudzeń poszczególnych przerzutników

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

Jak pracuje automat x Y 1 1 1 CLK clk Q1 Q0 X S Q1Q0 1 A 00 01 00 B 01 x Y CLK X S Q1Q0 1 A 00 01 00 B 01 11 C 11 (–) 10 – – – 1 1 clk Q1 Q0 20

Przykład... Realizacja T Y – jak poprzednio QQ’ T 00 01 1 10 11 X Q1Q0 1 00 01 11 10 – X Q1Q0 1 00 01 11 10 – QQ’ T 00 01 1 10 11 Q1’ Q0’ X Q1Q0 1 00 01 11 10 – X Q1Q0 1 00 01 11 10 – 1 1 1 1 1 T1 T0 Y – jak poprzednio

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

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 –

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

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

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 Informację o tym jaka czynność (mikrooperacja) ma być wykonywana, wprowadzana jest do licznika sygnałami x1, x2.

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 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 Naturalny kod binarny NKB 27

Licznik ze sterowaniem… Wpisywanie w standardową tablicę Karnaugh’a x1x2 Q2Q1Q0 00 01 11 10 000 001 011 010 110 111 101 100 X Q2Q1Q0 00 01 11 10 000 001 100 010 011 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’

Przerzutniki D Dla przerzutników typu D: Q’ = D Q2 Q1 Q0 Q2’ Q0’ Q1’ 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 Dla przerzutników typu D: Q’ = D Q2 Q1 Q0 Q2’Q1’Q0’ Q2’ Q0’ Q1’ x1x2 Q2Q1Q0 00 01 11 10 000 1 001 011 010 110 – 111 101 100 = D2 = D1 = D0

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 =

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

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 J2 K2 Q2’ J2 = K2 = 1

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 Q1’ J1 = K1 = x1

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 Q0’ J0 = K0 = 1

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

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

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. tablica przejśc-wyjść 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; X S 00 01 10 Y S0 S1 S4 S2 S3 1 zapisany w języku AHDL…

…lub VHDL po wprowadzeniu… ……….. ********************* 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; po wprowadzeniu…

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

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;

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.