La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-1 Capitolo 8: Progetto di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz.

Presentazioni simili


Presentazione sul tema: "Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-1 Capitolo 8: Progetto di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz."— Transcript della presentazione:

1 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-1 Capitolo 8: Progetto di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May 1993 Trasparenze tradotte da: Luciano Lavagno Universita di Udine Settembre 1998

2 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-2 Motivazioni Contatori: reti logiche sequenziali in cui stato = uscita Generalizzazione a Mcchine a Stati Finiti (FSM): Le uscite sono funzione degli stati (e degli ingressi) Stati futuri sono funzione degli stati e degli ingressi Usate per realizzare circuiti che controllano altri circuiti Logica che prende le decisioni Applicazione di tecniche di progetto logico sequenziale: Specifiche informali (a parole) Trasformazione in specifiche formali di FSM Esempi di progetti

3 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-3 Riassunto del capitolo Concetto di macchina a stati Suddivisione tra unita operativa (data path) e di controllo (control unit) Campionamento degli ingressi ed aggiornamento delle uscite Metodo base di progetto Sei passi di progetto Diverse rappresentazioni di Macchine a Stati Finiti Diagramma degli stati, ASM, VHDL, ABEL Description Language Macchine di Moore e di Mealy Definizione, esempi di realizzazione Problemi informali Esempi di progetto

4 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-4 Concetto di Macchina a Stati Hardware = Unita Operativa (UO) + Unita di Controllo (UC) Registri Unita funzionali combinatorie (p.es. ALU) Bus FSM che genera sequenze di segnali di controllo Informa lUO su che cosa fare al prossimo passo Burattino" Burattinaio che tira i fili" Bit risultato Bit controllo Unita di controllo Unita operativa Stato Controlli ed uscite Risultati ed ingressi

5 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-5 Concetto di Macchina a Stati Esempio: controllore di parita dispari Pari [0] Disp. [1] Reset Mette ad 1 luscita ogni volta che lingresso ha un numero dispari di 1 Diagramma degli stati St. presente Pari Disp. Ingresso St. futuro Pari Disp. Pari Uscita Tabella di transizione simbolica Uscita St. futuro Ingresso St. presente Tabella di transizione codificata

6 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-6 Concetto di Macchina a Stati Esempio: controllore di parita dispari Funzioni di stato futuro e di uscita NS = PS xor PI; OUT = PS Realizzazione con FF D Realizzazione con FF T Comportamento nel tempo con ingresso

7 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-7 Concetto di Macchina a Stati Temporizzazione: Quando vengono campionati gli ingressi, calcolato lo stato futuro, aggiornate le uscite? Durata di uno stato: intervallo tra eventi del clock Evento di clock fa cambiare uscite e stato in base agli ingressi Necessario soddisfare tempi di setup/hold: Ingressi devono essere stabili prima dellevento di clock Dopo il tempo di propagazione, si passa allo stato futuro e si stabilizzano le uscite NOTA: segnali asincroni hanno effetto subito, segnali sincroni hanno effetto al prossimo evento di clock P.es., abilitazione tri-state: attivo immediatamente azzeramento sincrono contatore: attivo al prossimo evento di clock

8 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-8 Concetto di Macchina a Stati Esempio: sistema sincrono attivo sul fronte di salita Sul fronte di salita vengono campionati gli ingressi e calcolati le uscite e lo stato futuro Dopo un ritardo di propagazione, le uscite e lo stato futuro sono stabili Uscite imediate: hanno effetto subito sullUO possono far cambiare i risultati dellUO Uscite ritardate: hanno effetto al prossimo evento di clock ritardi di propagazione devono essere maggiori del tempo di hold Uscite Durata stato Clock Ingressi

9 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-9 Concetto di Macchina a Stati Macchine a stati comunicanti Le due macchine avanzano insieme (al passo) Ingressi/uscite iniziali: X = 0, Y = 0 Luscita di una macchina e lingresso di unaltra e viceversa

10 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-10 Metodo base di progetto Processo a sei passi 1. Capire la specifica 2. Derivare una specifica astratta dellFSM 3. Minimizzare gli stati 4. Assegnare gli stati 5. Scegliere i tipi di FF per realizzare il registro di stato 6. Realizzare lFSM 1, 2 descritti adesso; 3, 4, 5 descritti piu avanti; 4, 5 casi generali del metodo di progetto visto per il contatore

11 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-11 Metodo base di progetto Esempio: FSM che controlla distributore automatico Definizione informale e generica fornire gomma da masticare dopo aver ricevuto 150 lire unica fessura per 50 e 100 lire non da resto Schema a blocchi Passo 1. Capire il problema: FSM distributore automatico Reset Clk Open Sensore monete Meccanismo distribuzione gomma Disegnare una figura!

12 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-12 Esempio distributore automatico Tabulare sequenze di ingresso tipiche 3 da 50 lire 1 da 50 lire, 1 da 100 lire 1 da 100 lire, 1 da 50 lire 2 da 100 lire 2 da 50 lire, 100 lire Disegnare il diagramma degli stati: Ingressi: 50, 100, reset Uscita: apri Passo 2. Trasformare in una specifica formale piu adatta Reset [apri] S0 S1S2 S3 S4 S5 S6 S8 [apri] S7 100

13 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-13 Esempio distributore automatico Passo 3: Minimizzazione degli stati Reset 50 50, 100 [open] Riutilizzare gli stati quando e possibile Tabella degli stati simbolica Stato Presente X X IngressiStato Futuro X X X Uscita Apri X X X 1

14 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-14 Esempio distributore automatico Passo 4: Codifica degli stati Stato futuro D 1 D X X X X 1 X Stato presente Q 1 Q IngressiUscita Apri X X X X Tabella degli stati codificata

15 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-15 Esempio distributore automatico Passo 5. Scegliere i FF per la realizzazione FF D sono i piu facili da usare D1 = Q Q0 50 D0 = 50 Q0 + Q Q Q1 100 OPEN = Q1 Q0 8 porte Mappa per Apri Mappa per D0Mappa per D1 Q1 Q Q1 Q0 100 Q1 Q Q1 Q0 100 Q1 Q Q1 Q

16 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-16 Esempio distributore automatico Passo 5. Scegliere i FF per la realizzazione FF J-K Tabella di transizione codificata trasformata Stato futuro D 1 D X X X 1 X Stato presente Q 1 Q D N Ingressi K 1 X X X X X X X X X X K 0 X X X X X X X X X X J X X X X X X X X X X J X X X X X X X X X X

17 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-17 Esempio distributore automatico Realizzazione: J1 = Q0 50 K1 = 0 J0 = Q Q1 100 K0 = Q porte

18 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-18 Rappresentazioni alternative per FSM Perche i diagrammi degli stati non bastano Non abbastanza flessibili per grandi FSM Non adatti per sviluppo graduale della FSM Non descrivono in modo ovvio un algoritmo: cioe una ben specifica sequenza di operazioni basate sui dati di ingresso algoritmo = sequenza + operazioni sui dati separazione fra controllo e dati Spostamento graduale verso rappresentazioni simili ad un programma: Rappresentazione ad Algorithmic State Machine (ASM) Linguaggi di descrizione dellhardware (Hardware Description Languages, HDL) p.es. VHDL, ABEL

19 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-19 Rappresentazioni alternative per FSM Rappresentazione ad Algorithmic State Machine (ASM) Tre elementi base: Stato Decisione Uscita FSM e esattamente in uno stato alla volta Singolo ingresso in uno stato Unico cammino di uscita da uno stato per ogni combinazione degli ingressi Uscite attive alte (.H) o basse (.L) immediate (I) o ritardate (fino al clock successivo) Cammino di ingresso nello stato Nome dello stato Codice dello stato Stato Blocco ASM Lista uscite assoc. allo stato Condizione Lista uscite condizionali Output Box Uscite ad altri blocchi ASM Condizione * *** TF

20 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-20 Rappresentazioni alternative per FSM Rappresentazione ad ASM Condizioni: lordine non ha effetto sul risultato finale Blocchi ASM equivalenti: A passa a B se (I0 I1) altrimenti passa a C

21 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-21 Rappresentazioni alternative per FSM Esempio: controllo di parita Lista di uscita vuota implica Z inattivo Z attivo nello stato Dispari Ingresso X, uscita Z Ingr. F T F T Stato presente Pari Disp. Stato futuro Pari Disp. Pari Uscita A Tabella degli stati simbolica Ingr Stato presente 0 1 Stato futuro Uscita 0 1 Tabella degli stati codificata Seguire i cammini per derivare le tabelle di transizione degli stati Seguire i cammini per derivare le tabelle di transizione degli stati Pari Dispari H.Z X X 0 1 F T TF

22 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-22 Rappresentazioni alternative per FSM ASM per distributore automatico H.Apri 100 Reset T T F 50 F T F T 50 F T F T 50 FT F 0

23 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-23 Rappresentazioni alternative per FSM Linguaggi di descrizione dellhardware: VHDL ENTITY parity_checker IS PORT ( x, clk: IN BIT; z: OUT BIT); END parity_checker; ARCHITECTURE behavioral OF parity_checker IS BEGIN main: BLOCK (clk = 1 and not clkSTABLE) TYPE state IS (Even, Odd); SIGNAL state_register: state := Even; BEGIN state_even: BLOCK ((state_register = Even) AND GUARD) BEGIN state_register <= Odd WHEN x = 1 ELSE Even END BLOCK state_even; BEGIN state_odd: BLOCK ((state_register = Odd) AND GUARD) BEGIN state_register <= Even WHEN x = 1 ELSE Odd; END BLOCK state_odd; z <= 0 WHEN state_register = Even ELSE 1 WHEN state_register = Odd; END BLOCK main; END behavioral; Descrizione dellinterfaccia Realizzazione FSM Espressione di controllo Decisione stato futuro Decisione uscite

24 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-24 Rappresentazioni alternative per FSM Linguaggi di descrizione dellhardware: ABEL module parity title 'odd parity checker state machine' u1 device 'p22v10'; "Input Pins clk, X, RESET pin 1, 2, 3; "Output Pins Q, Z pin 21, 22; Q, Z istype 'pos,reg'; "State registers SREG = [Q, Z]; S0 = [0, 0]; " even number of 0's S1 = [1, 1]; " odd number of 0's equations [Q.ar, Z.ar] = RESET; "Reset to state S0 state_diagram SREG state S0: if X then S1 else S0; state S1: if X then S0 else S1; test_vectors ([clk, RESET, X] -> [SREG]) [0,1,.X.] -> [S0]; [.C.,0,1] -> [S1]; [.C.,0,1] -> [S0]; [.C.,0,1] -> [S1]; [.C.,0,0] -> [S1]; [.C.,0,1] -> [S0]; [.C.,0,1] -> [S1]; [.C.,0,0] -> [S1]; end parity;

25 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-25 Metodo progetto per macchine di Moore e Mealy Definizioni Macchina di Mealy Le uscite dipendono da stati ed ingressi Cambiamenti in ingresso causano cambiamenti immediati in uscita Alcuni segnali sono asincroni Macchina di Moore Le uscite dipendono solo dagli stati Cambiamenti in uscita sincronizzati con il clock Registro di stato Clock Reazione di stato Logica combinatoria per uscite e stato futuro X Ingressi i Z Uscite k Clock Reazione di stato Logica combinatoria per stato futuro (ingressi dei flipflop) Registro di stato Logica combinat. per uscite Z Uscite k X Ingressi i

26 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-26 Macchine di Moore e di Mealy Diagrammi degli stati equivalenti Uscite associate con lo stato Uscite associate con la transizione Reset/0 50/ / /0 100/1 ( Reset)/0 Reset/0 Reset/ /0 Macchina di Moore Reset N N [1] D [0] D Reset Reset Macchina di Mealy

27 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-27 Macchine di Moore e di Mealy Stati o transizioni? Una macchina di Mealy in genere ha meno stati di una di Moore a parita di sequenza di uscita ASM equivalenti Stesso comportamento ingresso/uscita Diverso numero di stati S0 S1 IN S2 IN H.OUT S0 S1 IN 1 0 H.OUT

28 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-28 Macchine di Moore e di Mealy Comportamento nel tempo delle macchine di Moore De-progettate questo circuito: Ingresso X Uscita Z Stato A, B = Z Due metodi per de-progettazione: Ad hoc: provare combinazioni di ingresso per derivare tabella di transizione Formale: derivare le transizioni analizzando il circuito

29 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-29 Macchine di Moore e di Mealy De-progettazione ad hoc Comportamento in risposta alla sequenza : Tabella di transizione degli stati parziale

30 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-30 Macchine di Moore e di Mealy De-progettazione formale Derivare la tabella di transizione dalle funzioni di stato futuro in ingresso ai flipflop e dalle funzioni di uscita! Ja = X Jb = X Ka = X B Kb = X xor A Z = B Funzioni di eccitazione del FF J-K: A+ = Ja A + Ka A = X A + (X + B) A B+ = Jb B + Kb B = X B + (X A + X A) B Mappe di Karnaugh delle funzioni di stato futuro: Stato 00, Ingresso 0 -> Stato 00 Stato 01, Ingresso 1 -> Stato 01 A+ B+

31 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-31 Macchine di Moore e di Mealy ASM completa per la macchina di Moore da identificare Nota: tutte le uscite sono associate con gli stati Non ci sono uscite dipendenti dagli ingressi (macchina di Moore)

32 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-32 Macchine di Moore e di Mealy De-progettate questa macchina di Mealy Ingresso X, Uscita Z, Stato A, B Il registro di stato ha un FF D ed un FF J-K

33 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-33 Macchine di Moore e di Mealy Metodo ad hoc Comportamento nel tempo con sequenza di ingresso : Notate le alee su Z! Uscite valide al fronte di discesa successivo del clock Tabella di transizione parziale basata sulle forme donda

34 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-34 Macchine di Moore e di Mealy Metodo formale A+ = B (A + X) = A B + B X B+ = Jb B + Kb B = (A xor X) B + X B = A B X + A B X + B X Z = A X + B X Transizioni ed uscite mancanti: Stato 01, Ingr. 0 -> Stato 01, Uscita 1 Stato 10, Ingr. 0 -> Stato 00, Uscita 0 Stato 11, Ingr. 1 -> Stato 11, Uscita 1 A+ Z B+

35 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-35 Macchine di Moore e di Mealy ASM per la macchina di Mealy da identificare S0 = 00, S1 = 01, S2 = 10, S3 = 11 Nota: alcune uscite dipendono dalle transizioni, altre dagli stati (macchina di Mealy)

36 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-36 Macchine di Moore e di Mealy Variante macchina di Moore (anche detta macchina di Mealy sincrona) Uscite e stati memorizzati: risponde dopo un ciclo di clock (Moore) ma non ci sono alee sulle uscite! Registro di stato Clock Logica combinatoria per uscite e stato futuro Reazione di stato X Ingressi iZ Uscite k

37 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-37 Macchine di Moore e di Mealy Macchina di Mealy Uscite non memorizzate: risponde immediatamente (Mealy) ma puo avere alee sulle uscite! Registro di stato Clock Logica combinatoria per uscite e stato futuro Reazione di stato X Ingressi iZ Uscite k

38 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-38 Specifiche informali di FSM Traduzione di specifiche informali in specifiche formali Quattro esempi: Riconoscitore di stringa finita Contatore con decisioni complesse Controllore di semaforo Serratura a combinazione numerica Useremo diagrammi degli stati ed ASM

39 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-39 Specifiche informali di FSM Riconoscitore di stringa finita Un riconoscitore di stringa finita ha un ingresso (X) ed una uscita (Z). Luscita e attiva quando e stata vista la sequenza …010… in ingresso, purche non sia mai stata vista la sequenza 100. Passo 1. Capire il problema Esempi di comportamenti ingresso/uscita: X: … Z: … X: … Z: …

40 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-40 Specifiche informali di FSM Riconoscitore di stringa finita Passo 2. Disegnare diagramma degli stati/ASM per le due stringhe che vanno riconosciute, cioe 010 ed 100. Diagramma degli stati di Moore Reset manda la FSM nello stato S0 Produce 1 in uscita Rimane per sempre nello stato S0 [0] S1 [0] S2 [0] S3 [1] S4 [0] S5 [0] S6 [0] Reset

41 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-41 Specifiche informali di FSM Riconoscitore di stringa finita Condizioni di uscita da S3: ho riconosciuto …010 se il prossimo ingresso e 0, ho visto …0100 (stato S6)! se il prossimo ingresso e 1, ho visto …0101 = …01 (stato S2) S0 [0] S1 [0] S2 [0] S3 [1] S4 [0] S5 [0] S6 [0] Reset

42 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-42 Specifiche informali di FSM Riconoscitore di stringa finita Condizioni di uscita da S1: riconosce stringhe del tipo …0 (nessun 1) torna ad S1 se lingresso e 0 Condizioni di uscita da S4: riconosce stringhe del tipo …1 (nessuno 0) torna ad S4 se lingresso e 1 S0 [0] S1 [0] S2 [0] S3 [1] S4 [0] S5 [0] S6 [0] Reset

43 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-43 Specifiche informali di FSM Riconoscitore di stringa finita S2, S5 mancano ancora di alcune transizioni S2 = …01; se il prossimo ingresso e 1, potrebbe essere linizio di (01)1(00), cioe esattamente del caso di S4! S5 = …10; se il prossimo ingresso e 1, potrebbe essere linizio di (10)1(0), cioe esattamente del caso di S2! Diagramma degli stati finale S0 [0] S1 [0] S2 [0] S3 [1] S4 [0] S5 [0] S6 [0] Reset

44 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-44 Specifiche informali di FSM Riconoscitore di stringa finita module string title '010/100 string recognizer state machine Josephine Engineer, Itty Bity Machines, Inc.' u1 device 'p22v10'; "Input Pins clk, X, RESET pin 1, 2, 3; "Output Pins Q0, Q1, Q2, Z pin 19, 20, 21, 22; Q0, Q1, Q2, Z istype 'pos,reg'; "State registers SREG = [Q0, Q1, Q2, Z]; S0 = [0,0,0,0]; " Reset state S1 = [0,0,1,0]; " strings of the form...0 S2 = [0,1,0,0]; " strings of the form...01 S3 = [0,1,1,1]; " strings of the form S4 = [1,0,0,0]; " strings of the form...1 S5 = [1,0,1,0]; " strings of the form...10 S6 = [1,1,0,0]; " strings of the form equations [Q0.ar, Q1.ar, Q2.ar, Z.ar] = RESET; "Reset to S0 state_diagram SREG state S0: if X then S4 else S1; state S1: if X then S2 else S1; state S2: if X then S4 else S3; state S3: if X then S2 else S6; state S4: if X then S4 else S5; state S5: if X then S2 else S6; state S6: goto S6; test_vectors ([clk, RESET, X] -> [Z]) [0,1,.X.] -> [0]; [.C.,0,0] -> [0]; [.C.,0,1] -> [0]; [.C.,0,0] -> [1]; [.C.,0,1] -> [0]; [.C.,0,0] -> [1]; [.C.,0,1] -> [0]; [.C.,0,0] -> [1]; [.C.,0,0] -> [0]; [.C.,0,1] -> [0]; [.C.,0,0] -> [0]; end string; Descrizione ABEL

45 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-45 Specifiche informali di FSM Riconoscitore di stringa finita Riassunto del procedimento: Scrivere esempi di sequenze di ingresso ed uscita per capire la specifica Scrivere le sequenze degli stati delle stringhe da riconoscere Aggiungere transizioni mancanti, riutilizzando stati il piu possibile Verificare il comportamento ingresso/uscita del diagramma degli stati per verificare che si comporti come specificato

46 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-46 Specifiche informali di FSM Contatore complesso Un contatore sincrono a 3 bit ha un ingresso M che ne controlla il modo di funzionamento: Quando M = 0 il contatore conta in avanti in binario puro. Quando M = 1 il contatore conta in avanti in codice Gray. Binario: 000, 001, 010, 011, 100, 101, 110, 111 Gray: 000, 001, 011, 010, 110, 111, 101, 100 Esempio di comportamento corretto di ingresso/uscita: Ingresso di modo M Stato presente Stato futuro (Z2 Z1 Z0)

47 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-47 Specifiche informali di FSM Contatore complesso Uno stato per ogni combinazione di uscita Aggiungere gli archi opportuni in base al modo Reset S0 [000] S1 [001] S2 [010] S3 [011] S4 [100] S5 [101] S6 [110] S7 [111]

48 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-48 Specifiche informali di FSM Contatore complesso module counter title 'combination binary/gray code upcounter Josephine Engineer, Itty Bity Machines, Inc.' u1 device 'p22v10'; "Input Pins clk, M, RESET pin 1, 2, 3; "Output Pins Z0, Z1, Z2 pin 19, 20, 21; Z0, Z1, Z2 istype 'pos,reg'; "State registers SREG = [Z0, Z1, Z2]; S0 = [0,0,0]; S1 = [0,0,1]; S2 = [0,1,0]; S3 = [0,1,1]; S4 = [1,0,0]; S5 = [1,0,1]; S6 = [1,1,0]; S7 = [1,1,1]; equations [Z0.ar, Z1.ar, Z2.ar] = RESET; "Reset to state S0 state_diagram SREG state S0: goto S1; state S1: if M then S3 else S2; state S2: if M then S6 else S3; state S3: if M then S2 else S4; state S4: if M then S0 else S5; state S5: if M then S4 else S6; state S6: goto S7; state S7: if M then S5 else S0; test_vectors ([clk, RESET, M] -> [Z0, Z1, Z2]) [0,1,.X.] -> [0,0,0]; [.C.,0,0] -> [0,0,1]; [.C.,0,0] -> [0,1,0]; [.C.,0,1] -> [1,1,0]; [.C.,0,1] -> [1,1,1]; [.C.,0,1] -> [1,0,1]; [.C.,0,0] -> [1,1,0]; [.C.,0,0] -> [1,1,1]; end counter; Descrizione ABEL

49 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-49 Specifiche informali di FSM Controllore di semaforo Una strada di grande traffico incrocia una strada secondaria. Il sensore C segnala la presenza di unauto sulla strada secondaria Se non ci sono veicoli sulla strada secondaria, il semaforo rimane verde per la strada principale. Se ce un veicolo sulla strada secondaria, il semaforo passa da verde a giallo a rosso per la strada principale, permettendo al semaforo di diventare verde per la strada secondaria. Il semaforo rimane verde per la strada secondaria finche ci sono veicoli, ma con un tempo massimo prefissato. Quando una di queste due condizioni e soddisfatta, il semaforo diventa giallo e poi rosso per la strada secondaria, permettendo al semaforo di diventare verde per la strada principale. Anche se ci sono veicoli sulla strada secondaria, la strada principale ha un intervallo minimo prefissato con il semaforo verde. Supponete di avere un temporizzatore che genera unuscita TS dopo un breve intervallo di tempo ed una TL dopo un lungo intervallo di tempo, in risposta ad un segnale di partenza ST. Usate TS per temporizzare il giallo e TL per il verde.

50 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-50 Specifiche informali di FSM Controllore di semaforo Figura dellincrocio: Principale Secondaria HL FL C C

51 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-51 Specifiche informali di FSM Controllore di semaforo Tabella degli ingressi e delle uscite: Segnale di ingresso reset C TS TL Segnale di uscita HG, HY, HR FG, FY, FR ST Descrizione porta la FSM nello stato iniziale presenza veicolo su strada secondaria fine intervallo di tempo breve fine intervallo di tempo corto Descrizione attiva luce verde/gialla/rossa principale attiva luce verde/gialla/rossa secondaria inizio intervallo breve o lungo Tabella degli stati (alcune uscite ne implicano altre) Stato S0 S1 S2 S3 Descrizione Verde principale (rosso secondaria) Giallo principale (rosso secondaria) Verde secondaria (rosso principale) Giallo secondaria (rosso principale)

52 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-52 Specifiche informali di FSM Controllore di semaforo Completamento di ASM: Iniziare con sequenza e uscite di base: S 0 S 3 S 1 S 2 H.HG H.FR H.HR H.FY H.HR H.FG H.HY H.FR

53 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-53 Specifiche informali di FSM Controllore di semaforo Decidere condizioni di uscita per S0: Veicolo in attesa E fine dellintervallo lungo: C TL Frammenti equivalenti di ASM

54 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-54 Specifiche informali di FSM Controllore di semaforo Transizione da S1 ad S2: Attivare ST uscendo da S0 Restare in S1 finche TS e attivato Stesso comportamento per la transizione da S3 ad S4

55 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-55 Specifiche informali di FSM Controllore di semaforo Condizione di uscita per S2: nessun veicolo OPPURE fine dellintervallo lungo ASM completa per il controllore di semaforo

56 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-56 Specifiche informali di FSM Controllore di semaforo Confrontate con il diagramma degli stati: Vantaggi di ASM: Permette di concentrarsi su cammino e condizioni per uscire da uno stato Condizione di uscita costruita passo per passo, e poi trasformata in una condizione logica E piu facile capire una specifica algoritmica S0: HG S1: HY S2: FG S3: FY

57 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-57 Specifiche informali di FSM Controllore di semaforo module traffic title 'traffic light FSM' u1 device 'p22v10'; "Input Pins clk, C, RESET, TS, TL pin 1, 2, 3, 4, 5; "Output Pins Q0, Q1, HG, HY, HR, FG, FY, FR, ST pin 14, 15, 16, 17, 18, 19, 20, 21, 22; Q0, Q1 istype 'pos,reg'; ST, HG, HY, HR, FG, FY, FR istype 'pos,com'; "State registers SREG = [Q0, Q1]; S0 = [ 0, 0]; S1 = [ 0, 1]; S2 = [ 1, 0]; S3 = [ 1, 1]; equations [Q0.ar, Q1.ar] = RESET; HG = !Q0 & !Q1; HY = !Q0 & Q1; HR = (Q0 & !Q1) # (Q0 & Q1); FG = Q0 & !Q1; FY = Q0 & Q1; FR = (!Q0 & !Q1) # (!Q0 & Q1); state_diagram SREG state S0: if (TL & C) then S1 with ST = 1 else S0 with ST = 0 state S1: if TS then S2 with ST = 1 else S1 with ST = 0 state S2: if (TL # !C) then S3 with ST = 1 else S2 with ST = 0 state S3: if TS then S0 with ST = 1 else S3 with ST = 0 test_vectors ([clk,RESET, C, TS, TL]->[SREG,HG,HY,HR,FG,FY,FR,ST]) [.X., 1,.X.,.X.,.X.]->[ S0, 1, 0, 0, 0, 0, 1, 0]; [.C., 0, 0, 0, 0]->[ S0, 1, 0, 0, 0, 0, 1, 0]; [.C., 0, 1, 0, 1]->[ S1, 0, 1, 0, 0, 0, 1, 0]; [.C., 0, 1, 0, 0]->[ S1, 0, 1, 0, 0, 0, 1, 0]; [.C., 0, 1, 1, 0]->[ S2, 0, 0, 1, 1, 0, 0, 0]; [.C., 0, 1, 0, 0]->[ S2, 0, 0, 1, 1, 0, 0, 0]; [.C., 0, 1, 0, 1]->[ S3, 0, 0, 1, 0, 1, 0, 0]; [.C., 0, 1, 1, 0]->[ S0, 1, 0, 0, 0, 0, 1, 0]; end traffic; Descrizione ABEL

58 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-58 Specifiche informali di FSM Serratura a combinazione numerica Una serratura seriale a 3 bit controlla lingresso di una stanza. Gli ingressi sono: RESET, ENTER ed un interruttore a 2 posizioni KEY-IN per il bit di codice. La serratura genera luscita UNLOCK (sblocca) quando il codice introdotto corrisponde alla combinazione interna. Una luce di ERROR si illumina se il codice non corrisponde alla combinazione. La sequenza corretta e: (1) premi RESET, (2) introduci il bit di codice, (3) premi ENTER, ripeti (2) e (3) per altre 2 volte. La specifica e incompleta: come viene definita la combinazione? quando viene accesa ERROR esattamente? Fate supposizioni ragionevoli: combinazione memorizzata in un registro oppure pre-definita nella logica di stato futuro attivare ERROR subito, appena identificato un errore, oppure aspettare la fine del codice In questo caso: combinazione in un registro e segnalazione di errore alla fine del codice

59 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-59 Specifiche informali di FSM Serratura a combinazione numerica Capire il problema: disegnare lo schema a blocchi... Combinazione interna Dati dalloperatore Ingressi: Reset Enter Key-In L0, L1, L2 Uscite: Unlock Error

60 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-60 Specifiche informali di FSM Serratura a combinazione numerica Enumerazione degli stati: quali sequenze portano allapertura della porta? le condizioni di errore saranno verificate in un secondo tempo … Stato iniziale START piu tre stati di confronto COMP Entra in START quando ce RESET Esce da START quando ENTER e stato premuto Continua se Key-In e uguale ad L0

61 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-61 Specifiche informali di FSM Serratura a combinazione numerica Cammino per sbloccare: Attendere che Enter sia stato premuto Confrontare Key-In

62 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-62 Specifiche informali di FSM Serratura a combinazione numerica Adesso consideriamo gli errori: Dovremmo seguire la stessa sequenza del cammino che finisce con UNLOCK, eccetto per lattivazione di ERROR alla fine Errore in COMP0 va ad IDLE0' Errore in COMP1 va ad IDLE1' Errore in COMP2 va ad ERROR3

63 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-63 Specifiche informali di FSM Serratura a combinazione numerica Diagramma degli stati equivalente

64 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-64 Specifiche informali di FSM Serratura a combinazione numerica module lock title 'comb. lock FSM' u1 device 'p22v10'; "Input Pins clk, RESET, ENTER, L0, L1, L2, KI pin 1, 2, 3, 4, 5, 6, 7; "Output Pins Q0, Q1, Q2, Q3, UNLOCK, ERROR pin 16, 17, 18, 19, 14, 15; Q0, Q1, Q2, Q3 istype 'pos,reg'; UNLOCK, ERROR istype 'pos,com'; "State registers SREG = [Q0, Q1, Q2, Q3]; START = [ 0, 0, 0, 0]; COMP0 = [ 0, 0, 0, 1]; IDLE0 = [ 0, 0, 1, 0]; COMP1 = [ 0, 0, 1, 1]; IDLE1 = [ 0, 1, 0, 0]; COMP2 = [ 0, 1, 0, 1]; DONE = [ 0, 1, 1, 0]; IDLE0p = [ 0, 1, 1, 1]; ERROR1 = [ 1, 0, 0, 0]; IDLE1p = [ 1, 0, 0, 1]; ERROR2 = [ 1, 0, 1, 0]; ERROR3 = [ 1, 0, 1, 1]; equations [Q0.ar, Q1.ar, Q2.ar, Q3.ar] = RESET; UNLOCK = !Q0 & Q1 & Q2 & !Q3;"asserted in DONE ERROR = Q0 & !Q1 & Q2 & Q3; "asserted in ERROR3 state_diagram SREG state START: if (RESET # !ENTER) then START else COMP0; state COMP0: if (KI == L0) then IDLE0 else IDLE0p; state IDLE0: if (!ENTER) then IDLE0 else COMP1; state COMP1: if (KI == L1) then IDLE1 else IDLE1p; state IDLE1: if (!ENTER) then IDLE1 else COMP2; state COMP2: if (KI == L2) then DONE else ERROR3; state DONE: if (!RESET) then DONE else START; state IDLE0p:if (!ENTER) then IDLE0p else ERROR1; state ERROR1:goto IDLE1p; state IDLE1p:if (!ENTER) then IDLE1p else ERROR2; state ERROR2:goto ERROR3; state ERROR3:if (!RESET) then ERROR3 else START; test_vectors end lock; Descrizione ABEL

65 Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-65 Riassunto del capitolo Comportamento fondamentale nel tempo di una FSM quando gli ingressi vengono campionati, e quando gli stati e le uscite cambiano e si stabilizzano Macchine di Moore e Mealy (sincrone ed asincrone) uscite = F(stato) oppure uscite = F(stato, ingressi) Primi due passi della procedura (in sei passi) per la sintesi di FSM capire il problema derivare una rappresentazione astratta della FSM Rappresentazioni astratte di FSM diagrammi degli stati, ASM, linguaggi di descrizione dellhardware Specifiche informali capire il comportamento ingresso/uscita; disegnare schemi tracciare gli stati per lobiettivo; aggiungere le condizioni di errore riutilizzare gli stati se possibile


Scaricare ppt "Reti Logiche Macchine a Stati Finiti © R.H. Katz 8-1 Capitolo 8: Progetto di Macchine a Stati Finiti Reti Logiche Contemporary Logic Design Randy H. Katz."

Presentazioni simili


Annunci Google