Architettura degli Elaboratori e delle Reti Lezione 9 Circuiti sequenziali: macchine a stati finiti Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell nformazione Università degli Studi di Milano A.A. 28/9 L 9 /7 Macchine sequenziali! Macchina combinatoria: U f ( ) " senza memoria, uscita dipende solo dagli ingressi! Macchina sequenziale: * f (, ) U g( ) " 2 funzioni: uscita e stato prossimo " esiste la memoria: lo STATO U U combinatoria sequenziale A.A. 28/9 L 9 2/7
Macchine sequenziali! Elemento necessario di ogni macchina sequenziale è la retroazione " Uscita riportata in ingresso " Bistabile: (macchina sequenziale elem.): 2 porte NOR retroazione! Macchina sequenziale sincrona " mpiega bistabili sincroni " Es: Flip-Flop tipo DT! " # # macchina sequenziale rete combinatoria CLK D T Q U retroazione A.A. 28/9 L 9 3/7 Macchina a Stati Finiti - di Moore! Una Macchina a Stati Finiti (MSF) è definita dalla quintupla: <,,, f( ), g( ) > : insieme degli stati (in numero finito). : alfabeto di ingresso: l insieme dei simboli che si possono presentare in ingresso. Con n ingressi, avremo 2 n possibili configurazioni. : alfabeto di uscita: l insieme dei simboli che si possono generare in uscita. Con m uscite, avremo 2 m possibili configurazioni f( ): funzione stato prossimo: * f(, ) Definisce l evoluzione della macchina nel tempo, in modo deterministico g( ): funzione di uscita: g( ) (macchina di Moore) g(, ) (macchina di Mealy) " Per il buon funzionamento della macchina è previsto uno stato iniziale, al quale la macchina può essere portata mediante un comando di reset. A.A. 28/9 L 9 4/7
La macchina sequenziale di Huffman i o i i M x! x* y o y y N ngressi x K x* K Uscite Stato Stato prossimo A.A. 28/9 L 9 5/7 Macchina di Moore: State Transition Table (STT)! STT: State Transition Table (Tabella delle transizioni di stato) " Per ogni coppia: <stato attuale, ingresso> definisco uscita y e stato prossimo x* (x i, i j )! y(x i ) ; x*( x i, i j ) " Esempio: M stati (log2m bit di stato), N ingressi (log2m bit d ingresso): i i 2 i N x x*(x, i ) x*(x, i 2 ) x*(x, i N ) y(x ) x 2 x*(x 2, i ) x*(x 2, i 2 ) x*(x 2, i N ) y(x 2 ) x M x*(x M, i ) x*(x M, i 2 ) x*(x M, i N ) y(x M ) A.A. 28/9 L 9 6/7
Macchina di Moore: State Transition Graph (STG)! STG: State Transition Graph (Diagramma degli Stati o Grafo delle transizioni) " Ad ogni nodo è associato uno stato: x i $... ed un valore della funzione d uscita: y i $, y i g(x i ) " Un arco orientato da uno stato x i ad uno stato x j, contrassegnato da un simbolo (di ingresso) i K, rappresenta una transizione che si verifica quando la macchina, essendo nello stato x i, riceve come ingresso i K i K $ x $ x J $ x y g(x ) J f(x,i K ) y J g(x J ) A.A. 28/9 L 9 7/7 Progetto con macchina di Moore Esempio: controllore di un semaforo SEMAFORO:! ncrocio tra 2 strade: nord-sud (NS) ed est-ovest (EO) controllate da un semaforo " per semplicità consideriamo solamente rosso e verde! l semaforo può commutare ogni 3 secondi " Macchina sincrona, clock con frequenza? auto NS sì / no auto EO sì / no! E presente un sensore in grado di leggere, per ogni direttrice, se esiste almeno un auto in attesa, oppure un auto che si accinga ad attraversare (condizioni trattate allo stesso modo).! l semaforo deve cambiare colore, da rosso a verde, quando esiste un auto in attesa sulla sua direttrice.! Se ci sono auto in attesa sulle entrambe le direttrici il semaforo deve cambiare colore (al termine del tempo di commutazione) A.A. 28/9 L 9 8/7
SEMAFORO: Stato, ngresso, Uscita STATO " Semaforo NS VERDE, semaforo EO ROSSO " Semaforo NS ROSSO, semaforo EO VERDE! bit di STATO ( flip-flop) NGRESS " Auto NS presente / non presente " AutoNS/ " Auto EO presente / non presente " AutoEO /! 2 bit di NGRESSO! 4 configurazioni d ingresso USCTE: STATO " LuceEO verde (LuceNS rossa) " LuceNS verde (LuceEO rossa)! 2 configurazioni d uscita! bit di USCTA auto NS sì / no auto EO sì / no A.A. 28/9 L 9 9/7 Funzionamento: uscita! Funzione uscita: g() " Per ogni stato, definire l uscita della macchina! Uscita! STATO # "! Verde sulla direttrice NS, rosso sulla direttrice EO "! Verde sulla direttrice EO, rosso sulla direttrice NS! Luce Verde NS! Luce Verde EO A.A. 28/9 L 9 /7
Funzionamento: stato prossimo! Stato prossimo: evoluzione dello stato, in funzione dello stato attuale e degli ingressi attuali! (t) * (t) * f( (t), ) " Se (t) AND non ci sono auto sulla direttrice EO " Se (t) AND ci sono auto sulla direttrice NS ~autoeo autons # *! (t) * " Se (t) AND non ci sono auto sulla direttrice NS " Se (t) AND ci sono auto sulla direttrice EO ~autons autoeo # * A.A. 28/9 L 9 /7 STG del semaforo! Funzione stato prossimo: * ~autoeo autons * ~autons autoeo! Funzione uscita: AutoNS AutoEO AutoEO LuceVerde EO AutoNS LuceVerde NS A.A. 28/9 L 9 2/7
STT del semaforo ~autoeo ~autons ~autoeo autons autoeo ~autons autoeo autons Uscita Luce Luce Funzione stato prossimo: * f(, ) Funzione uscita: g() A.A. 28/9 L 9 3/7 STT del semaforo: CODFCA binaria! Stato: " (/RossoEO, RossoNS/)! (, )! ngresso: " 2 Variabili: AutoNS, AutoEO! presente, assente " 4 Configurazioni: (,,, )! Uscita: " (Luce_, Luce_)! (, ) Uscita A.A. 28/9 L 9 4/7
Sintesi della MSF del semaforo! Macchina di Moore " 2 stati (,)! flip-flop DT " 2 linee di ingresso " linea d uscita! Architettura di Huffman! Sintesi rete combinatoria " stato prossimo: f(,) " uscita: g() i i 2 reti combinatorie: * f (,) g ( ) * Q T D Clock A.A. 28/9 L 9 5/7 Sintesi della MSF del semaforo! Mediante la STT codificata in binario, posso esprimere * e come somma di prodotti: " cerco i mintermini: * A.A. 28/9 L 9 6/7
MSF del semaforo: sintesi del circuito! funzioni logiche rete combinatoria: * i i 2 reti combinatorie: * f (,) g ( ) * Q D rete combinatoria T Clock i T CLK 3 sec i * clock(t) 3 sec t (sec) A.A. 28/9 L 9 7/7