Fenomeni transitori: alee Stima della durata del transitorio (metodo del caso peggiore) I1 U I0 A I1 t t I0 A U t t I1 3t U I0 A Tipi di transitorio: il ritardo I1 c t t U? 0 t 1 0 t 2t 0 Tipo “ritardo” - L’uscita mantiene il vecchio valore per tutto il transitorio I1 c U Tipi di transitorio: l’alea statica 1 1 1 t c t 1 t a t U? b A 3t A a Tipo “alea statica” L’uscita, che dovrebbe rimanere costante, assume temporaneamente l’altro valore. c b U Tipi di transitorio: l’alea dinamica 1 1 t c t 1 t t b A t R B 3t Tipo “alea dinamica” L’uscita varia più volte prima di assestarsi sul nuovo valore. A,B R 10 01 Conseguenze del ritardo nelle reti logiche: le alee Un’Alea statica è la variazione temporanea e indesiderata, causata dai ritardi, dell’uscita di una rete logica. x=1 a xyz 101 111 b U y c U 1 1 z=1 y a b c t 2t z 3t L’ingresso si sposta tra due configurazioni che danno a regime uscita 1, ma i differenti ritardi con cui si presentano i segnali agli ingressi dell’OR causano un’alea di 1. Le reti in cui gli ingressi di un OR possono variare in modo non sincronizzato presentano strutturalmente un’alea di 1, mentre le reti in cui gli inrgessi di un AND possono variare in modo non sincronizzato presentano un’alea di 0. Se i due ingressi sono indipendenti l’unico modo di evitare l’alea è specificare che gli ingressi possano variare uno solo alla volta. Se i due ingressi sono ottenuti da un unico segnale internamente alla rete, ad esempio con un NOT, si può progettare una rete ridondante per eliminare l’alea: bisogna che ogni possibile transizione da una configurazione di ingresso ad un’altra adiacente sia coperta da un’unico RR. xy z 0 1 00 01 11 10 0 0 0 1 0 1 1 1 xy z 0 1 00 01 11 10 0 0 0 1 0 1 1 1 Il raggruppamento introdotto corrisponde ad un AND che rimane stabilmente ad 1 durante la transizione indicata, in modo che l’OR d’uscita non possa trovarsi temporaneamente con tutti gli ingressi nulli. x=1 b a U y c z=1 x y z U Se si esegue la sintesi SP di una funzione, il criterio da adottare è dunque che uni adiacenti devono cadere sotto un unico raggruppamento rettangolare per evitare alee di 1. Mentre se si esegue la sintesi PS di una funzione zeri adiacenti devono cadere sotto un unico raggruppamento rettangolare per evitare alee di 0. Dall’esempio precedente: xy z 0 1 00 01 11 10 0 0 0 1 0 1 1 1 U=(x+y)•(z+y’) xy z 0 1 00 01 11 10 0 0 0 1 0 1 1 1 U=(x+y)•(z+y’)•(z+x) Il raggruppamento introdotto corrisponde ad un OR che rimane stabilmente a 0 durante la transizione indicata, in modo che l’ AND d’uscita non possa trovarsi temporaneamente con tutti gli ingressi ad 1. flip-flop e reti asincrone 1 - Flip Flop Set Reset 2 - Reti asincrone 3 - Latch CD 4 - Flip-flop D e JK La memorizzazione di un bit richiede due stati interni, due comandi .. Metti in memoria 1 ! 0 1 Metti in memoria 0 ! … e un po’ di fatica ! 1 Flip Flop SR Flip Flop SR S Y = S + y . R’ R y y(t +Dt) = Y(t) Dt Q Il FF SR è una RSA con una variabile di stato e due ingressi S e R Se ci si assicura che SR=0, allora: •se S = R = 0 allora Y=y (lo stato interno non cambia) •se S = 1 allora Y=1 (memorizzo il valore 1 in y) •se R = 1 allora Y=0 (memorizzo il valore 0 in y) Dunque il FFSR è un bit di memoria che può essere posto a zero con R e può essere posto a 1 con S L’uscita Q riflette il valore del bit memorizzato i u F G s Dt memoria s* Valutazione della espressione del segnale in retroazione SR y SR 00 01 11 10 0 0 0 1 1 1 1 0 1 1 Y = S + y . R’ N.B. - Le mappe sono anche un utile strumento di analisi ! y 00 01 11 10 0 0 0 - 1 1 1 0 - 1 Y = f (S,R, y) N.B. - Se imponiamo che S e R non siano mai contemporaneamente attivi, allora la funzione Y è incompleta. Descrizione con tabella di flusso y S,R 00 01 11 10 1 0 0 0 - 1 1 1 1 0 - 1 y S,R 00 01 11 10 0 0 0 - 1 1 0 - Y Y Il comportamento è di tipo 1: l’uscita cambia solo se cambiano gli ingressi e per ogni nuovo ingresso si ha al più una variazione d’uscita. La macchina è asincrona: lo stato si aggiorna all’arrivo di un nuovo ingresso (quando è necessario) e poi si “stabilizza”. Descrizione del FF SR con grafo degli stati comando di set S S 0 1 0 Q bit in memoria comando R di reset set = 0, reset = 0 set = 0, reset = 1 R 0 0 1 Q Q 1 0 set = 0, reset = 0 set = 1, reset = 0 set = 1, reset = 0 0 1 set = 0, reset = 1 Il comando di set serve per memorizzare 1, il comando di reset serve per memorizzare il valore 0 Lo stato ricorda quale è stato l’ultimo comando ricevuto (1: set, 0:reset) Flip Flop SR a NOR (1) Vu = V3 (V1 V2) V1 (t + 2tp) = Vu (t) V3 Vu 2tp V1 V2 +E +E Vu V1 V2 V3 Latch SR a NOR (2) V2 V3 V1 00 01 11 10 0 0 0 0 1 1 1 0 0 1 Vu Vu = V3 (V1 V2) Vu = (V3 + (V1 + V2)’)’ Vu = V3’. (V1 + V2) S, R Q(t) 00 01 11 10 0 0 0 - 1 1 1 0 - 1 V2=V3=1 vietato ! Pongo S = V2 R = V3 Q = Vu Q(t+Dt) S R Q Cosa occorre per scrivere un 1 (o uno 0)? R=0 Q q=0 2tp S: 0 1 Dt = 2tp S Q Dopo Dt dal fronte di salita di S, q passa da 0 a 1, condizione che si mantiene anche se S torna a 0 q La durata minima di un comando di set/reset è spesso indicata con la denominazione di tempo di set-up del latch Cosa occorre per mantenere un 1 (o uno 0)? y=Y Y H S R Circuito combinatorio L H L y Dt Y y y=Y Y Y = f(S,R,y) Sull’anello di retroazione si deve poter mantenere la situazione di regime: y=Y -e +e y Y=f(S,R,y): caratteristica in “catena chiusa” y=Y Y H L H L Due tratti di “saturazione” (pendenza minore di 1) connessi da un tratto con “alto guadagno” (pendenza maggiore di 1): 3 intersezioni ! y Y -e y Per chiudere la retroazione occorre una amplificazione del segnale ed un comando “energico”. Se l’impulso di set/reset ha durata inferiore al tempo di set-up il latch può andare in metastabilità. Valore attuale?? E futuro ?? 2 Reti asincrone Reti sequenziali asincrone (comportamento) • Il FF SR è il più semplice circuito combinatorio con retroazione. • Il ritardo intrinseco del circuito agisce da “memoria temporanea” dello stato presente durante il calcolo dello stato futuro. ingresso i Con k retroazioni s(t+Dt) = S(t) si hanno 2k riassunti di storia passata. stato presente s uscita u = F(i,s) stato futuro S = G(i,s) tpmax Reti sequenziali asincrone (struttura) Circuito combinatorio ingresso Rete combinatoria t1 tm uscita tn tr stato presente stato futuro Ipotesi di funzionamento in modo fondamentale - L’ingresso può cambiare solo quando lo stato del circuito è stabile. Vincoli sulla codifica degli ingressi Codifica dell’alfabeto di ingresso - Simboli di ingresso consecutivi devono differire per il valore di un solo bit. Esempio di situazione pericolosa : 10 10 - 11 - 01 - 01 10 - 00 - 01 Il procedimento di analisi Il procedimento di analisi di una rete sequenziale asincrona è formato da 4 passi e consente di dedurne il comportamento dallo schema logico: 1: individuazione delle variabili di stato, 2: analisi della parte combinatoria, 3: individuazione della tabella delle transizioni, 4: studio delle condizioni di stabilità. S X? Esempio: Si vuole individuare se è utile o meno rendere disponibili all’esterno entrambe le uscite dei NOR di un latch SR R Q Analisi del latch SR a NOR (1 & 2) 1) Si taglia idealmente la retroazione identificando un nuovo segnale di ingresso q ed un nuovo segnale di uscita X. S X q R Q 2) Si scrivono le espressioni NOR della rete combinatoria a tre ingressi e due uscite così ottenuta. X=Sq Q = (S q) R Analisi del latch SR a NOR (3) 3) Si trasformano le espressioni NOR in espressioni AND, OR, NOT e se ne riportano le valutazioni su una mappa. X=Sq = (S + q)’ = S’. q’ SR q 00 01 11 10 0 0,1 0,1 0,0 1,0 1 1,0 0,0 0,0 1,0 Q = (S q) R = ((S + q)’ + R)’ = (S + q) . R’ Q,X Analisi del latch SR a NOR (3) 4) Si eliminano le valutazioni fuori dal dominio delle due funzioni (la condizione di ingresso S = R = 1 è per ipotesi impossibile) e si evidenziano sulla mappa le quattro situazioni di stabilità. SR q 00 01 11 10 0 0,1 0,1 0,0 1,0 1 1,0 0,0 0,0 1,0 Q,X Conclusioni: In ogni situazione di stabilità si ha X = Q’. Chi deve impiegare il latch può così disporre della forma vera e complementata del bit in memoria. Latch SR a NAND SR S’R’ 01 10 11 QX 1 0 0 1 Q Q’ q 1 1,0 0,1 1,1 1,0 analisi S’ 00 01 11 10 0 0,1 0,1 1,1 1,1 Q, XQ’ Q Q = S’ (q R’) Q = (S’ . (q . R’)’)’ Q = S + q.R’ q X R’ X = R’ q X = R + q’ Il procedimento di sintesi Il procedimento di sintesi di una rete sequenziale asincrona è formato da 4 passi e consente di dedurne lo schema logico dal comportamento: 1: individuazione del grafo degli stati, 2: definizione della tabella di flusso, 3: codifica degli stati e definizione della tabella delle transizioni, 4: sintesi della parte combinatoria e retroazioni. Esempio di relazione ingresso/uscita (lampada da tavolo): “z cambia di valore ad ogni fronte di salita di x” x z 1 - grafo degli stati x, z 0,1 a 1,0 1,- b 0,0 0,0 g 1,1 1,- d 0,1 Stabilità - Ogni stato è stabile per l’ingresso che lo genera. Indifferenza sull’uscita - La modifica di uscita può avvenire già durante la transizione oppure, indifferentemente, essere rinviata al raggiungimento della stabilità. 2 - tabella di flusso x stato a b g d 0 a,1 g,0 g,0 a,1 1 b,b,0 d,d,1 In ogni colonna si raggiunge sempre una condizione di stabilità. Transizioni multiple - Di norma si passa direttamente da una stabilità all’altra; è ammesso che ciò avvenga anche tramite una breve sequenza di condizioni di instabilità. 3 - codifica e tabella delle transizioni y2 y1 0 1 x 0 a b 1 d g Codifica degli stati - A stati consecutivi (stato presente e futuro) si devono assegnare configurazioni adiacenti. y1,y2 a 00 b 01 g 11 d 10 0 00,1 11,0 11,0 00,1 1 01,01,0 10,10,1 Y1, Y2, z 4 - reti combinatorie Ipotesi: si desiderano reti minime di tipo SP x y1y2 00 0 0 1 0 01 11 10 1 1 0 0 1 1 x y1y2 00 0 0 1 1 01 11 10 1 1 0 1 0 x y1y2 00 0 1 0 Y1 = x’.y2 + x.y1 + y2.y1 Y2 = x’.y2 + x.y1’ + y2.y1’ 1 - 01 11 10 0 0 1 0 - z = y2’ Coperture ridondanti - Per eliminare a priori il pericolo di alea statica (qui causato dal probabile sfasamento tra x e x’) “ogni coppia di 1 adiacenti deve essere racchiusa in almeno un RR”. 1 4 - schema e retroazioni x x.y1 Y1 y2.y1 x’.y2 x.y1’ y2.y1’ Fan-out >1 Y2 z Esercizio 6.1 Eseguire la sintesi di una rete sequenziale asincrona che fornisca 1 in uscita quando entrambi i suoi due ingressi valgono 1 e solo se le due precedenti configurazioni (andando a ritroso) sono state 01 e 00. I segnali di ingresso possono cambiare di valore uno solo alla volta. Suggerimento: Il grafo parziale di figura è in grado di individuare la sequenza 00-01-11: bisogna completarlo considerando tutti gli altri casi possibili. 00,0 01,0 a 11,1 11,- b 3 Latch CD Una memoria binaria più utile Latch CD - Memoria binaria in cui il valore 1 di un segnale C individua “quando scrivere”, il valore contemporaneo di un segnale D “cosa scrivere”. Trascodifica da CD a SR CD 1 1 1 0 0 - S 1 0 0 R 0 1 0 Latch CD C C D 0 0 0 1 0 D 0 0 0 1 1 1 0 1 1 0 0 S = C.D R = C.D’ C D S Q R Q’ Campionamento e Memorizzazione Segnale del Data Path con valori significativi solo in certi intervalli Es: segnale con “glitch” segnale di campionamento “attivo alto” segnale “ricostruito” dal latch dal Controller dal Data Path C Q D Q’ il latch CD al Data Path Il latch CD a NAND ed a NOR C’ C S’ Q D S Q D R’ R Quando C = 1 (campionamento) il valore presente su D si deve propagare all’interno della rete prima di diventare anche il valore del segnale Q. Il comando che ha generato un nuovo valore di Q deve mantenersi fino al raggiungimento della stabilità sull’anello di retroazione. I tempi di set-up, di hold e di risposta Larghezza dell’impulso di campionamento - Il campionamento di un “livello” di D deve durare un tempo non inferiore al tempo di set-up del latch SR. durata minima Comando di campionam. Bit in ingresso set-up hold Bit in memoria tempo max di risposta L’uscita “trasparente” Comando di campionam. Bit in ingresso set-up Bit in memoria tempo di risposta N.B. - Se la situazione C=1 dura più del set-up e se durante questo intervallo D modifica il suo valore, allora le stesse modifiche si possono riscontrare anche su Q. CD q 00 01 11 10 0 0 0 1 0 1 1 1 1 0 Q Una quarta soluzione CD q 00 01 11 10 0 0 0 1 0 1 1 1 1 0 Q Q = C.D + C’.q C D Ritardo Multiplexer N.B. - Il ritardo inerziale dei due NOT elimina l’eventuale “glitch” generato dall’alea statica del MUX . Esercizio 6.2 Applicare il procedimento di analisi allo schema logico del circuito ‘75 per dimostrare, con la tabella delle transizioni, che il comportamento è quello del latch CD. Esercizio 6.3 D Q y1 D Q C Q’ C Q’ y2 z x’ Dimostrare che lo schema sopra indicato ha lo stesso comportamento di quello precedentemente ricavato per la lampada da tavolo. Suggerimento: Y1 = x’.y2 + x.y1 + y2.y1 = x’.y2 + (x + y2).y1 = S1 + R1’.y1 Y2 = x’.y2 + x.y1’ + y2.y1’ = x.y1’ + (x’+ y1’).y2 = S2 + R2’.y2 z = y2 ’ 4 Flip-flop D e JK Si può realizzare la rete della lampada da tavolo con un solo latch CD? x Q Q’ quando x passa da 0 a 1, Q Q in ogni altro caso Se x = 1 dura più del tempo di risposta si verificano diverse commutazioni di Q. x Q C Q D Q’ Se x = 1 dura meno del tempo di risposta e più del tempo di setup Q cambia una volta sola. x No! Q Insicuro !! Con due latch però ci si riesce: l’aggiornamento in due passi F1 : QM QS’ F2 : QS QM x F1 F1 C Q’ F2 D QM QS F2 D Q’ C QS QM I due passi possono essere consecutivi? Si ... T x C x Master scrive Master memorizza Master scrive x’ Slave memorizza Slave copia Slave memorizza Q’ D QM D Q’ C QS … ma attenzione al ritardo del NOT! x x’ N.B - vedi Es. 6.3 Il flip-flop master-slave: il campionamento con un fronte x C C y D Q D Q intervallo n x y D S M z intervallo n+1 latch M scrive latch S scrive tsu th z tr Q Qn+1 = Dn Complessità e Componenti Costruzione del dds del Flip Flop D edge triggered (rete asincrona che campiona con un fronte di salita) CD,Q 01, 0 Il fronte di salita di C campiona D=1 e ne ordina la memorizzazione 11, 1 A 00, 0 10 Per ipotesi è impossibile che D vari durante un fronte di salita di C D va a 0 prima del fronte di C. Q non deve cambiare (segue) Il grafo degli stati CD,Q 01, 0 11, 1 11, - A C 00, 0 10, 1 10, 0 0-, 1 0-, 0 10, 0 B 11, 0 11, 1 00, 1 10, - D 01, 1 I tempi di set-up, di hold e di risposta D Q Fronte del clock Segnale D set-up hold Segnale Q risposta Il FF-D ha anche due ingressi asincroni! Comando asincrono Comando sincrono Requisiti per il corretto funzionamento del FF-D Il flip-flop JK Jn 0 hold 0 1 set 1 reset 0 0 1 toggle 1 Kn 0 0 0 0 1 1 1 1 Qn 0 1 0 1 0 1 0 1 Qn+1 0 1 1 1 0 0 1 0 J Q K Q’ Qn+1 = (J.Q’+K’.Q)n Qn 0 1 Jn Kn 00 01 11 10 0 0 1 1 1 0 0 1 Qn+1 Esercizio 6.4 • Con pochi gate ed un flip-flop D è possibile ottenere una rete che ha il comportamento del flip-flop JK. • Con pochi gate ed un flip-flop JK è possibile ottenere una rete che ha il comportamento del flip-flop D. Tracciare i due schemi logici