Flip-flop Macchine sequenziali
Introduzione I circuiti digitali possono essere così classificati Circuiti combinatori Il valore delle uscite ad un determinato istante dipende unicamente dal valore degli ingressi in quello stesso istante Circuti sequenziali Il valore delle uscite in un determinato istante dipende dal valore degli ingressi in quell istante E dal valore degli ingressi in istanti precedenti
Esempio: bistabile X = X 2 = X X 2 Y A B Y 2 A Tabella verità NOR B X = X 2 = X X 2 Y Y 2 Se un ingresso vale allora l uscita vale Se un ingresso vale allora l uscita vale l altro ingresso negato
Bistabile X Y A B X = X 2 = X 2 Y 2 X Y X = X 2 = X Y X = X 2 = X 2 Y 2 X 2 Y 2
Equazioni bistabile stato attuale, prossimo stato R S S R SR x x = SR + R NOTA Con R=S= il bistabile mantiene lo stato precedente ( =) uesta rete è in grado di memorizzare un bit
Bistabile: temporizzazione Reset Set S R - - Non usata Reset Set tempo
Bistabile: input ammissibili Con R=S= il bistabile mantiene (hold) lo stato acquisito Con R o S diversi da si cambia lo stato La configurazione di ingresso R=S= non è ammessa, poiché se da questa si passa a R=S= sono possibili due configurazioni per l uscita. La configurazione effettiva non è cioè prevedibile R S Hold Reset Set S R?
Sincronizzazione A B A= B= R= = FF S= Al tempo t sia A=, = e = Se i valori A e B cambiano contemporaneamente al tempo t allora, l uscita rimane a Tuttavia nella realtà i cambiamenti di A e B non sono contemporanei: ad esempio può succedere che A cambi prima di B (che cambia a t 2 ) In questo modo si avrà una configurazione temporanea A=B= e commuta a = uando B varia, continuerà ancora a valere = t t t 2
Segnale di sincronizzazione Un clock ha le seguenti caratteristiche: E un segnale binario E un segnale periodico (durata T) frequenza del clock f=/t Fronte di discesa Fronte di salita Periodo T In realtà le transizioni -> e -> non sono istantanee
Bistabili Sincroni Utilizzano un segnale di controllo CK, detto Clock Livello, chiamati Latch trasparenti L ingresso viene sentito, e l uscita può variare, durante tutto il periodo in cui C= (oppure C=) Fronte di salita, chiamati (positive edge triggered) Flip-Flop L uscita cambia in base al valore dell ingresso in corrispondenza della transizione di C da ad Fronte di discesa (negative edge triggered) Flip-Flop L uscita cambia in base al valore dell ingresso in corrispondenza della transizione di C da ad Master-Slave Flip-Flop Segnale d ingresso campionato su un fronte, uscita cambia sull altro Nota: Spesso letteratura si usa il termine Flip-Flop per indicare in modo generico un bistabile (quindi anche i latch)
Esempio, Latch RS R S CK R S CK? CK S R uando CK= allora si ha il consenso alla transizione
Perché abilitare sui fronti? Sia d il tempo in cui CK= e t il ritardo di propagazione del FF assumiamo che d>t Esiste un problema nel collegamento in cascata di bistabili. Durante CK= l uscita di FF modifica l uscita di FF2 poiché d>t. In alcuni casi questo non è il comportamento voluto (registri a scorrimento) d Durata clock alto R= FF 2 FF2 CK S= CK t Ritardo di propagazione 2
Abilitazione sul fronte di discesa Usando FF con abilitazione sul fronte di discesa si ottiene il comportamento desiderato. Ad ogni ciclo di clock cambia lo stato di un solo flip-flop R= 2 CK S= CK 2
Latch D Un solo ingresso più uno di abilitazione Usato come unità elementare di memorizzazione Presenta in uscita ciò che era presente in ingresso quando il era presente il segnale per l abilitazione (CK=) R D CK D CK S CK D
Master-Slave Nel caso di master-slave si ha in corrispondenza del fronte di discesa. Master Slave R R R R CK CK CK CK S S S S
Registri Un registro è un elemento di memoria in grado di memorizzare un insieme di n bit composto da un insieme di bistabili l informazione memorizzata in un registro prende il nome di parola Scrittura Scrittura Lettura Lettura
Registri Modalità di scrittura/lettura dei dati Parallelo Seriale Operazioni sui dati: Scorrimento a destra Scorrimento a sinistra Scorrimento circolare
Registro parallelo-parallelo D D D2 D3 D D D D Clock 2 3
Registri Un registro è composto da più flip-flop D che utilizzano gli stessi segnali di controllo C C IN IN2 IN3 INn FF FF2 FF3 FFn OUT OUT2 OUT3 OUTn IN(n:) R E G OUT(n:) C IN(4:) xc xd xe xf OUT(4:) xc xd xe xf
Barrel Shifter a a a i+ i i- SH d/s z i
Registro circolare (n=4) D D D2 D3 Write/Read D D D D Clock
Reti sequenziali Il valore in uscita è funzione della sequenza di valori forniti in input fino a quel momento Hanno una memoria Varie classi di reti, vedremo la più semplice Level Level Clocked (LLC) La sequenza è definita mediante un segnale di clock Gli ingressi e le uscite sono a livelli : il livello del segnale d ingresso determina il livello del segnale d uscita L ingresso cambia solo dopo che l uscita è stabile Altre reti (es. ad impulsi )
Addizionatore (macchina sequenziale) Al clock i-esimo arriva in ingresso una coppia di bit del numero da sommare; l uscita è pari al bit i-esimo della somma
Macchine sequenziali: schema LC LC: circuiti combinatori M: memoria
Macchine LLC Ingressi x x 2 x n RETE COMBINATORIA w,d Uscite z z 2 z m La rete combinatoria realizza le funzioni d e w (tabelle di verità) y FF y Rete sincrona LLC (Level Level Clocked) y 2 FF 2 y 2 La macchina cambia stato ad ogni fronte attivo del clock (ogni colpo di clock ) y k Stato Presente FF k y k Stato Futuro Le uscite dipendono dai livelli dei valori d ingresso (non dalle variazioni) Clock f Registri di stato Prima di cambiare nuovamente le uscite diventano stabili
Macchina a stati finiti (FSM) FSM = <I,O,S, d,w> I alfabeto finito di ingresso (per comodità I =2 n ) S insieme degli stati, S = 2 k O alfabeto di uscita, O = 2 m d : S x I Æ S, funzione stato successivo w : S Æ O (Moore) oppure w : S x I Æ O (Mealy) funzione di uscita Se serve specificare uno stato iniziale s Œ S, FSM= <I,O,S, d,w,s > Una FSM può essere realizzata come rete LLC
Diagramma degli stati Il diagramma degli stati è un grafo orientato etichettato G(V,A,L) i nodi rappresentano gli stati della macchina gli archi le transizioni di stato le etichette le condizioni di transizione Macchina di Mealy: l uscita dipende dallo stato e dall ingresso Macchina di Moore: l uscita dipende solo dallo stato
Flip/Flop S-R Ingresso: Set Reset (S-R) solo uno dei due ingressi può essere pari ad uno. Stati:,,, uscita= stato del flip flop: macchina di Moore
Riconoscitore di sequenza Macchina che riconosce la sequenza ciao Input: {a,b,c,...,z} Per semplicità assumiamo che il simbolo di negazione su una lettera individui una qualunque lettera tranne la lettera stessa (ad es. a indica b,c,...,z); analogamente per più lettere Uscita: Si, No
Diagramma degli stati (Moore) c c c i /no 2/no 3/no 4/no 5/si a o c c,i c c c,a c,o c : aspetto c 2: aspetto i 3: aspetto a, 4: aspetto o; 5: parola completa
Diagramma degli stati (Mealy) c,a/no c,i/no c/no c no c/no i/no 2 c/no 3 c/no o/si 4 a/no : attesa c 2: attesa i 3: attesa a 4: attesa o
Contatore Up e Down Macchina conta modulo 4 U incrementa di uno D decrementa di uno
FSM Esempio evoluzione (Moore) w OUTPUT f INPUT d I I 2 INPUT SP SP S S 2 S 3 SF T d T pff S S 3 SF S 2 Clock f Registri di stato O T w O 2 O 3 OUTPUT I I 2 nd : S x I Æ S s /o s 2 /o 2 s 3 /o 3 w : S Æ O
Dalla macchina sequenziale alla rete Per realizzare una macchina sequenziale è necessario Codificare gli insiemi I,S,O con variabili di commutazione Realizzare le funzioni d ed w con reti combinatorie Comportamento temporale delle variabili di ingresso/uscita Ogni circuito digitale risponde ai nuovi valori di ingresso producendo la nuova uscita in modo stabile solo un tempo di ritardo d durante il quale sono esauriti tutti i transitori Considereremo solo la realizzazione di reti di tipo LLC (Level Level Clocked)
Dalla macchina alla rete x,x 2,..,x n variabili di ingresso a livelli 2 n I z,x 2,..,z m variabili di uscita a livelli 2 m O y,y 2,..,y k variabili di stato 2 k S Variabile impulsiva, ck, che ha lo scopo di far commutare lo stato
Reti LLC La rete sequenziale lavora con le seguenti ipotesi: Variabili d ingresso di tipo a livello (i valori in ingresso rimangono fissi per un periodo T sufficientemente lungo per far assumere all uscita il nuovo valore di regime, ossia T>d) Variabili di uscita a livello Segnale di abilitazione positive or negative edge trigger, o a livello (in quest ultimo caso la variabile di commutazione deve essere pari ad per un periodo di tempo sufficiente per far commutare i flip-flop, ma inferiore al minimo tempo di commutazione dei circuiti combinatori che calcolano lo stato successivo, altrimenti si potrebbero avere più commutazioni)
Dal modello strutturale al circuito X d Z X d w Y Y Y ck Y Mealy ck Moore w Z
Rete LLC per macchine di Mealy (flip-flop di tipo D) x x 2 x n Ingressi RETE COMBINATORIA w,d z z 2 z m Uscite Stato Presente S y y Stato Successivo S FF y 2 FF 2 y 2 y k FF k y k Registro di stato Clock
Esempio: contatore UP-DOWN modulo 4 U U D D D D 3 2 U I={U,D} O={,,2,3} S={,,2,3} ingresso U NOTA: uscita = stato stato 2 3 U D uscita 2 3 3 2 2 3
Codifica simboli I x U D S y 2 y 2 3 O z 2 z 2 3 stato ingresso 2 3 U D uscita 2 3 3 2 2 3 y 2 y x z 2 z
Sintesi funzioni d e w In questo semplice esempio, l uscita è uguale allo stato w(y 2 y )=z 2 z y 2 y x x y 2 y y = y Mappe di Karnaugh y y 2 y 2 y x y 2 =y 2 y x+y 2 y x +y 2 y x + y 2 y x
Realizzazione mediante rete combinatoria Ingresso Uscita x RETE COMBINATORIA w z z 2 y FF y y 2 FF 2 y 2 Clock
Realizzazione mediante ROM Ingresso Uscita x Memoria ROM z z 2 y 2 y Clock FF FF 2 y y 2 Indirizzo Struttura parola nella ROM y 2 y x y 2 y z 2 z