Reti logiche Logica sequenziale Capitolo 6: progetto logico sequenziale Reti Logiche Contemporary Logic Design Randy H. Katz University of California, Berkeley May 1993 Trasparenze tradotte da: Luciano Lavagno Universita’ di Udine Settembre 1998 © R.H. Katz 6-1 Sommario del capitolo Reti logiche Logica sequenziale • Reti logiche sequenziali Circuiti semplici con reazione Latch R-S Flipflop J-K Flipflop attivi sui fronti • Metodi di temporizzazione Flipflop in cascata per funzionamento corretto Clock stretto e multifase Clock Skew • Realizzare circuiti con flipflop Scegliere il tipo di flipflop Equazioni caratteristiche Conversione tra i tipi • Metastabilita’ ed ingressi asincroni • Circuiti asincroni (self-timed) © R.H. Katz 6-2 Reti logiche sequenziali Reti logiche Logica sequenziale Circuiti con retroazione: alcune uscite sono anche ingressi Ingressi Logica comb. Clock Stato Logica comb. Il controllore di semaforo e’ una rete logica sequenziale complessa Logica sequenziale e’ la base per dare ”memoria" ai circuiti Questi elementi di memoria sono circuiti sequenziali elementari Uscite © R.H. Katz 6-3 Reti logiche sequenziali Circuiti elementari con reazione Reti logiche Logica sequenziale Elementi base di memoria creati con porte e cicli di reazione Componente piu’ semplice: invertitore Base dei progetti commerciali di RAM statiche Si possono usare anche porte NOR e NAND con reazione incrociata "1" Invertitori in cascata: memoria RAM statica "0" LD \LD A Interrompere la reazione quando si vuole caricare un nuovo valore nella cella \LD Z LD © R.H. Katz 6-4 Reti logiche Logica sequenziale Reti logiche sequenziali Catene di invertitori 1 0 1 0 0 A B C D E X Numero dispari di inversioni crea un oscillatore Valori osservati subito prima della transizione dell’ultimo invertitore Forma d’onda: Fronte di salita si propaga attraverso questo stadio Periodo forma d’onda ripetuta (tp) Ritardo porta (td) A (=X) 0 B 1 tp = n * td C n = num. invertitori 0 D 1 E 0 1 © R.H. Katz 6-5 Reti logiche Logica sequenziale Reti logiche sequenziali Catena di invertitori Tempo 1 1 1 1 1 X 0 0 0 0 X X 1 1 1 X X X 0 0 X X X X 1 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 0 X X X X X 0 0 0 0 0 1 Propagazione dei segnali attraverso la catena di invertitori © R.H. Katz 6-6 Reti logiche Logica sequenziale Reti logiche sequenziali Porte NOR accoppiate Come gli invertitori in cascata, ma si puo’ forzare l’uscita a 0 (reset) o 1 (set) R S R Q S \Q Forma d’onda Reset Memoria Set Reset Set 100 Corsa R S Q \Q Stato proibito Stato proibito © R.H. Katz 6-7 Reti logiche Logica sequenziale Reti logiche sequenziali Diagramma degli stati del latch R-S S R Q 0 0 memoria 0 1 0 1 0 1 1 1 0 (ma rischioso) “Tabella di verita’” del latch R-S QQ 01 QQ 10 QQ 00 QQ 11 © R.H. Katz 6-8 Reti logiche Logica sequenziale Reti logiche sequenziali Diagramma teorico degli stati del latch R-S SR = 00, 10 SR = 00, 01 SR = 1 0 QQ 01 QQ 10 SR = 0 1 SR = 0 1 SR = 1 0 SR = 11 SR = 1 1 SR = 1 1 QQ 00 SR = 0 1 SR = 1 0 SR = 0 0 SR = 0 0, 11 QQ 11 © R.H. Katz 6-9 Reti logiche Logica sequenziale Reti logiche sequenziali Diagramma reale degli stati del latch R-S SR = 00, 10 SR = 00, 01 SR = 1 0 QQ 01 QQ 10 SR = 0 1 SR = 0 1 SR = 1 0 SR = 11 SR = 1 1 SR = 1 1 QQ 00 SR = 0 0 SR = 0 0 Molto difficile osservare lo stato 1-1 del latch R-S Puo’ tornare sia allo stato 0-1 sia allo stato 1-0 E’ una “corsa critica” © R.H. Katz 6-10 Reti logiche Logica sequenziale Reti logiche sequenziali Definizione dei termini Tsu Th Ingresso Clock C’e’ una “finestra” di tempo nell’intorno dell’evento di clock in cui l’ingresso deve rimanere stabile per essere riconosciuto correttamente Clock: Evento periodico, causa il cambiamento di stato degli elementi di memoria fronte di salita, fronte di discesa, livello alto, livello basso Tempo di setup (Tsu) Intervallo minimo prima dell’evento di clock durante il quale l’ingresso deve essere stabile Tempo di hold (Th) Intervallo minimo dopo l’evento di clock durante il quale l’ingresso deve essere stabile © R.H. Katz 6-11 Reti logiche Logica sequenziale Reti logiche sequenziali Latch attivo sul livello anche detto latch R-S “gated” Schema logico: \S \Q \R Q \enb Diagramma temporale Set Reset © R.H. Katz 6-12 Reti logiche Logica sequenziale Reti logiche sequenziali Latch e flipflop Comportamento ingresso/uscita di latch e flipflop Tipo latch senza clock latch sensibile al livello Quando campiona gli ingressi sempre clock alto (Tsu, Th attorno al fronte di discesa) Quando le uscite sono valide ritardo di propagazione dal cambiamento degli ingressi ritardo di propagazione dal cambiamento degli ingressi flipflop transizione 0-1 del clock attivo sul (Tsu, Th attorno fronte di salita al fronte di salita) ritardo di propagazione dal fronte di salita del clock flipflop transizione 1-0 del clock attivo sul (Tsu, Th attorno fronte di discesa al fronte di discesa) ritardo di propagazione dal fronte di discesa del clock flipflop master/slave ritardo di propagazione dal fronte di discesa del clock transizione 1-0 del clock (Tsu, Th attorno al fronte di discesa) © R.H. Katz 6-13 Reti logiche Logica sequenziale Reti logiche sequenziali 7474 D Q Clk Pos itive edge-triggered flip-flop Dispositivi attivi sul fronte (edge triggered) campionano l’ingresso sul fronte Latch trasparenti campionano gli ingressi per tutto il tempo in cui il clock e’ attivo Diagramma termporale: 7476 D Q D C Clk Lev el-sens itive latc h “Bolla” per dispositivo attivo sul fronte di discesa Clk Q 7474 Q 7476 Il comportamento e’ lo stesso tranne quando l’ingresso cambia col clock alto © R.H. Katz 6-14 Reti logiche Logica sequenziale Reti logiche sequenziali Specifiche temporali tipiche: flipflop e latch 74LS74: flipflop D attivo sul fronte di salita • Tempo di setup • Tempo di hold • Larghezza minima del clock • Ritardi di propagazione (basso-alto, alto-basso, massimo e tipico) D Clk Q Tsu 20 ns Th 5 ns T su 20 ns Tw 25 ns Tpl h 25 ns 13 ns Th 5 ns T phl 40 ns 25 ns Tutte le misure sono fatte dall’evento di clock, cioe’ dal fronte di salita © R.H. Katz 6-15 Reti logiche Logica sequenziale Reti logiche sequenziali Specifiche temporali tipiche: flipflop e latch 74LS76: latch trasparente • Tempo di setup • Tempo di hold • Larghezza minima del clock • Ritardi di propagazione (basso-alto, alto-basso, dato-uscita, clock-uscita, massimo e tipico) D T su Th 20 5 ns ns Clk Tw 20 ns Q Tpl h C» Q 27 ns 15 ns T pl h D»Q 27 ns 15 ns Tsu 20 ns Th 5 ns T phl C» Q 25 ns 14 ns T phl D»Q 16 ns 7 ns Tutte le misure sono fatte dall’evento di clock, cioe’ dal fronte di discesa, o dal fronte di salita o discesa del dato © R.H. Katz 6-16 Reti logiche Logica sequenziale Reti logiche sequenziali Rivediamo il flipflop R-S Tabella di verita’: Stato futuro = F(S, R, Stato presente) S 0 0 0 0 1 1 1 1 R 0 0 1 1 0 0 1 1 Qt 0 1 0 1 0 1 0 1 Qt+1 0 1 0 0 1 1 X X Mappa di Karnaugh: S SR 00 01 11 10 0 0 0 X 1 1 1 0 X 1 Q( t ) R Equazione caratteristica: Q+ = S + R’ Q S R Latch R-S Q+ Q © R.H. Katz 6-17 Reti logiche Logica sequenziale Reti logiche sequenziali Flipflop J-K Come eliminare lo stato proibito? Idea: usare la reazione per garantire che R ed S non siano mai entrambi ad uno J, K ad uno complementano l’uscita S 0 0 0 0 1 1 1 1 R 0 0 1 1 0 0 1 1 Qt 0 1 0 1 0 1 0 1 K R \Q \Q R-S latc h J S Q Q Qt+1 0 1 0 0 1 1 1 0 Equazione caratteristica: Q+ = Q K’ + Q’ J © R.H. Katz 6-18 Reti logiche Logica sequenziale Reti logiche sequenziali Flipflop J-K: corsa critica Set Reset 100 Complementa J K Q \Q Corsa critica Vincolo sulla complementazione: un solo cambiamento di stato per ciclo di clock Soluzione: flip-flop master-slave © R.H. Katz 6-19 Reti logiche Logica sequenziale Reti logiche sequenziali Flipflop J-K master-slave Master K \Q R Slave \P R R-S Latc h R-S Latc h S J \Q \Q Q S P Q Q Clk Campiona ingressi con clock alto Campiona ingressi con clock basso Usa il ritardo per interrompere la reazione tra uscite ed ingressi! Set Reset 1's Catc h Toggle 100 J K Clk P \P Q \Q Complementazione corretta Master outputs Slav e outputs © R.H. Katz 6-20 Reti logiche Logica sequenziale Reti logiche sequenziali Flipflop attivi sul fronte “Sensibile agli 1”: un’alea 0-1-0 su J o K fa cambiare lo stato! il progettista dovrebbe eliminare le alee statiche Soluzione: logica attiva sui fronti D Flipflop D attivo sul fronte di discesa D Mantiene D quando il clock scende 0 R Q Clk=1 Q 4-5 ritardi di porte Bisogna soddisfare i tempi di setup e hold per memorizzare correttamente l’ingresso S 0 Mantiene D quando il clock scende D D Equazione caratteristica: Q+ = D Flip-flop attivo sul fronte di discesa con clock ad 1 © R.H. Katz 6-21 Reti logiche Logica sequenziale Reti logiche sequenziali Flipflop attivi sul fronte Analisi passo-passo D 0 D 4 3 D R D D R Q Clk=0 Q 5 Q Clk=0 Q D D S D S 2 D D 6 D' 1 D 0 D' ° D Flip-flop attivo sul fronte di discesa con clock da alto a basso memorizza il dato Flip-flop attivo sul fronte di discesa con clock a 0 mantiene il dato © R.H. Katz 6-22 Reti logiche sequenziali Dispositivi attivi sul fronte di salita e di discesa Reti logiche Logica sequenziale 100 D Clk Qpos Positive edgetriggered FF \ Qpos Qneg Negativ e edgetriggered FF \ Qneg Attivo sul fronte di salita Attivo sul fronte di discesa Ingressi campionati sul fronte di salita Uscite cambiano dopo il fronte di salita Ingressi campionati sul fronte di discesa Uscite cambiano dopo il fronte di discesa Flipflop toggle Costituito da un J-K con gli ingressi collegati insieme © R.H. Katz 6-23 Metodologie di temporizzazione Reti logiche Logica sequenziale Sommario • Regole per collegare componenti e clock • Garantiscono il funzionamento corretto del sistema • Il metodo dipende dall’elemento di memoria usato Per sistemi con latch: Clock stretto Clock multifase (p.es. a due fasi non sovrapposte) Per sistemi con flipflop attivi sul fronte: Clock a fase singola • Tempistica corretta: (1) fornire ingressi corretti al tempo giusto ai FF (2) nessun FF cambia piu’ di una volta per evento di clock © R.H. Katz 6-24 Reti logiche Logica sequenziale Metodologie di temporizzazione Flipflop in cascata: ritardi di propagazione e tempi di setup/hold Shift Register S,R sono preset, clear IN D Q C Q Nuovo valore per il primo stadio pronto quando il secondo stadio prende l’uscita del primo Q0 D Q Q1 C Q CLK 100 In Funzionamento Q0 corretto, supponendo Q1 FF attivo sul fronte Clk di salita © R.H. Katz 6-25 Reti logiche Metodologie di temporizzazione Logica sequenziale Flipflop in cascata: ritardi di propagazione e tempi di setup/hold Perche’ funziona: • Ritardi di propagazione molto maggiori del tempo di hold; Larghezza minima del clock maggiore del tempo di setup • Garantisce che lo stadio successivo memorizzi il vecchio valore prima che sia sostituito dal nuovo • Suppone che la distribuzione del clock non abbia ritardi In Tsu 20 ns Tsu 20 ns Q0 Q1 T pl h 13 ns T pl h 13 ns Vincoli temporali garantiscono il funzionamento corretto dei componenti Clk Th 5 ns Th 5 ns © R.H. Katz 6-26 Reti logiche Logica sequenziale Metodologie di temporizzazione Clock stretto o multifase Latch attivi sul livello e flipflop attivi sul fronte • I latch memorizzano usando meno porte • I flipflop hanno una temporizzazione piu’ semplice Memoria dinamica CMOS Reazione interrotta dalle due fasi del clock (stessa idea del master-slave!) \Clk2 \(LD • Clk1) A LD•Clk1 Clk2 Z 8 transistor realizzano una memoria ma richiede che i due segnali di clock siano non sovrapposti Flipflop D attivo sul fronte: 6 porte (5 x 2-ingressi, 1 x 3-ingressi) = 26 transistor! © R.H. Katz 6-27 Reti logiche Logica sequenziale Metodologie di temporizzazione Clock stretto per sistemi con stato memorizzato in latch Schema a blocchi generale per sistema sequenziale con clock Logica combinatoria stato realizzato con latch o flipflop S t a t o Clock Vincoli da due lati: attenzione a segnali troppo lenti o troppo veloci! Larghezza del clock < propagazione piu’ veloce nella logica combinatoria piu’ il ritardo di propagazione del latch Periodo del clock (tra due fronti di salita) > propagazione piu’ lenta nella logica combinatoria © R.H. Katz 6-28 Reti logiche Logica sequenziale Metodologie di temporizzazione Clock a due fasi non sovrapposte Forme d’onda del clock non devono mai sovrapporsi! F1 Possiamo preoccuparci solo dei segnali troppo lenti! F2 F1 F1 F2 F2 Elemento di memoria CMOS incorporato in logica sequenziale Logica Comb. 1 Logica Comb. 2 Nota: la logica combinatoria puo’ essere divisa in due parti L.C.1: ingressi memorizzati e stabili alla fine della fase 1, calcola tra le due fasi, memorizza le uscite alla fine della fase 2 L.C.2: fa esattamente il contrario © R.H. Katz 6-29 Reti logiche Logica sequenziale Metodologie di temporizzazione Come generare clock a due fasi non sovrapposte Un solo clock di riferimento (cristallo) Fase 1 ad 1 quando clock a 0 Fase 2 ad 1 quando clock ad 1 La fase X non puo’ salire finche’ la fase Y non e’ scesa! 100 Clk Phas e 1 Phas e 2 Il tempo di non-sovrapposizione (entrambi a 0) puo’ essere aumentato aumentando il ritardo sulla reazione © R.H. Katz 6-30 Reti logiche Logica sequenziale Metodologie di temporizzazione Il problema dello skew (“deviazione”) del clock Il corretto funzionamento e’ garantito solo se tutti gli elementi di memoria cambiano stato allo stesso momento Non e’ possibile in sistemi reali! • unico clock logico, in realta’ controllato da piu’ circuiti reali, con ritardi • i fili causano ritardi diversi in diversi punti del circuito Effetti dello skew sui flipflop in cascata FF0 campiona IN In Q0 FF1 campiona Q0 100 CLK2 e’ CLK1 ritardato Q1 Clk1 Clk2 Stato presente: Q0 = 1, Q1 = 1, In = 0 A causa dello skew lo stato futuro diventa: Q0 = 0, Q1 = 0, non Q0 = 0, Q1 = 1 © R.H. Katz 6-31 Metodologie di temporizzazione Reti logiche Logica sequenziale Strategie di progetto per minimizzare lo skew Ritardi di propagazione tipici per FF LS: 13 ns Servirebbe un ritardo notevole del clock (circa 13 ns) per avere problemi di skew in questa tecnologia piuttosto lenta Comunque e’ bene seguire alcune regole di progetto: • distribuire i segnali di clock nella direzione del flusso dei dati • i fili che portano il clock tra due componenti che comunicano dovrebbero essere i piu’ corti possibile • per sistemi multifase, distribuire tutti i clock con cammini simili; cio’ minimizza la possibilita’ di sovrapposizione • per il generatore di clock non sovrapposti, usare la reazione sulle fasi dal punto piu’ lontano del circuito a cui il clock va distribuito; cio’ garantisce che una fase sia vista bassa da tutti prima che la prossima possa salire © R.H. Katz 6-32 Realizzazione di circuiti con diversi tipi di FF Reti logiche Logica sequenziale Scelta del tipo di flipflop Latch R-S con clock: usato come elemento di memoria in sistemi a clock stretto meglio non usarlo! e’ il blocco fondamentale per altri tipi di flipflop Flipflop J-K: utile come blocco funzionale usato per costruire FF D e T in logica TTL e’ il piu’ semplice elemento di memoria per realizzare una funzione sequenziale ƒ(In,Q,Q+) due ingressi complicano le connessioni non usare mai i FF J-K se sono a disposizione FF attivi sul fronte, per il problema della “cattura degli 1” Flipflop D: minimizza le connessioni, e’ il preferito in VLSI CMOS il piu’ facile da usare la miglior scelta per un progetto sequenziale Flipflop T: in realta’ non esiste (e’ fatto con JK) va molto bene per realizzare contatori Ingressi preset e clear sono molto utili!! © R.H. Katz 6-33 Realizzazione di circuiti con diversi tipi di FF Equazioni caratteristiche R-S: Q+ = S + R Q D: Q+ = D Reti logiche Logica sequenziale Ottenute dalla mappa di Karnaugh per Q+ = ƒ(Inputs, Q) J-K: Q+ = J Q + K Q T: Q+ = T Q + T Q P.es. J=K=0, then Q+ = Q J=1, K=0, then Q+ = 1 J=0, K=1, then Q+ = 0 J=1, K=1, then Q+ = Q Permettono di realizzare un tipo di flipflop usandone un altro D J C K Q Q Q D realizzato con J-K K J D Q C Q J-K realizzato con D © R.H. Katz 6-34 Reti logiche Logica sequenziale Realizzazione di circuiti con diversi tipi di FF Metodo di progetto Tabelle di eccitazione: quali sono gli ingressi che provocano uno specifico cambiamento di stato? Q Q+ 0 0 0 1 1 0 1 1 R X 0 1 0 S 0 1 0 X J K 0 X 1 X X 1 X 0 T 0 1 1 0 D 0 1 0 1 D 0 1 0 0 1 1 0 1 Q Realizzare un FF D con un FF J-K: 1) Partire dalla mappa di Q+ = ƒ(D, Q) 2) Creare le mappe di J e K usando gli ingressi (D, Q) Q+ = D 3) Mettere i valori adatti per J e K nelle mappe in modo da causare le stesse transizioni di stato della mappa originale D P.es. se D = Q= 0, Q+ = 0 allora J = 0, K = X 0 1 0 0 1 1 X X Q J= D D 0 1 0 X X 1 1 0 Q K=D © R.H. Katz 6-35 Realizzazione di circuiti con diversi tipi di FF Reti logiche Logica sequenziale Metodo di progetto Realizzare un FF JK con un FF D 1) Mappa di Karnaugh di Q+ = F(J, K, Q) 2,3) La mappa modificata usando la tabella di eccitazione del FF D e’ la stessa! Per questo il progetto con FF D e’ facile!! J JK Q 0 1 00 01 11 10 0 0 1 1 1 0 0 1 K Q+ = D = JQ + KQ L’equazione che ne risulta e’ quella che fa funzionare il FF D nello stesso modo del FF J-K. Ovviamente e’ uguale all’equazione caratteristica per un FF J-K. © R.H. Katz 6-36 Metastabilita' ed ingressi asincroni Reti logiche Logica sequenziale Definizione dei termini Circuiti sincroni con clock • segnale di riferimento comune chiamato clock • lo stato del circuito cambia in relazione a questo segnale Circuiti asincroni • ingressi, stati ed uscite cambiano e vengono campionati indipendentemente da un segnale di riferimento comune Il latch R-S e’ asincrono, il FF J-K master/slave e’ sincrono Ingressi sincroni • attivi solo quando il fronte o il livello e’ attivo Ingressi asincroni • hanno effetto immediatamente, senza considerare il clock Confontare gli ingressi R, S del latch trasparente con clock con quelli del latch R-S base © R.H. Katz 6-37 Metastabilita' ed ingressi asincroni Reti logiche Logica sequenziale Ingressi asincroni possono essere percicolosi!! Hanno effetto immediato, quindi le alee possono causare disastri! Gli ingressi sincroni sono di gran lunga preferibili! Ma talvolta gli ingressi asincroni non sono evitabili p.es. segnale di reset, segnale di attesa della memoria (“wait”) © R.H. Katz 6-38 Reti logiche Logica sequenziale Metastabilita' ed ingressi asincroni Come trattare gli ingressi asincroni Sistema sincrono con clock Ingresso asincrono D Q Sincronizzatore Q0 Ingresso D asincrono Q D Clock Clock D Q Q1 Clock Q0 Q D Q1 Q Clock Non usare mai un ingresso asincrono per piu’ di un ingresso di FF nel sistema sincrono © R.H. Katz 6-39 Metastabilita' ed ingressi asincroni Che cosa puo’ succedere Reti logiche Logica sequenziale Violazione del tempo di setup! In Q0 Q1 Clk In e’ asincrono Va a D0 e D1 Un FF vede la transizione l’altro no Il sistema potrebbe entrare in uno stato impossibile! Il singolo FF che riceve il segnale si chiama sincronizzatore © R.H. Katz 6-40 Reti logiche Logica sequenziale Metastabilita' ed ingressi asincroni Errori di sincronizzazione In D Q ? Quando l’ingresso dell’FF cambia vicino al fronte del clock, il circuito puo’ entrare in uno stato metastabile: ne’ 0 ne’ 1 logico Teoricamente potrebbe restare in questo stato per un tempo infinito, anche se questo non e’ probabile in realta’ Logic 1 Logic 0 Time Probabilita’ piccola (ma non zero) che il FF resti bloccato a meta’ strada Traccia di oscilloscopio che mostra la metastabilita’ ed il suo decadimento a 0 o ad 1 © R.H. Katz 6-41 Metastabilita' ed ingressi asincroni Soluzioni al problema degli errori di sincronizzazione Reti logiche Logica sequenziale • la probabilita’ non puo’ mai essere a zero, ma puo’ essere ridotta • rallentare il clock di sistema da’ piu’ tempo al sincronizzatore per passare ad uno stato 1 o 0 gli errori di sincronizzazione sono un problema serio per sistemi molto veloci • usare la logica piu’ veloce possibile nel sincronizzatore questo causa un “glitch” molto stretto, che puo’ essere filtrato con flipflop piu’ lenti, di tipo S od AS • mettere due sincronizzatori in cascata Ingresso asincrono D Q D Uscita sincronizzata Q Clk Sistema sincrono © R.H. Katz 6-42 Reti logiche Logica sequenziale Circuiti self-timed e speed-independent Limiti dei sistemi sincroni Sincronia completa impossibile per grandi sistemi a causa del clock skew Suddividere il sistema in blocchi con clock locale Farli comunicare con protocolli “speed-independent” Sistema sincrono Segnali di comunicazione Sistema sincrono Segnalazione con request/acknowledge Request S2 S1 richiedente cliente master Flusso dati Acknowledgement fornitore servitore slave © R.H. Katz 6-43 Circuiti self-timed e speed-independent Protocolli sincroni Reti logiche Logica sequenziale Req Data Ac k Clk Master fornisce richiesta di lettura; slave fornisce dati ed ack Req Data Wait Clk Altro schema sincrono (semi-sincrono) Lo slave attiva il segnale di WAIT se non riesce a soddisfare la richiesta in un ciclo di clock © R.H. Katz 6-44 Reti logiche Logica sequenziale Circuiti self-timed e speed-independent Protocolli asincroni/speed-independent Comunicare informazione usando livelli, non fronti Nessun segnale di clock Protocollo di “handshake” a 4 fasi o con ritorno a zero Req Data Ac k (1) il master attiva request lo slave esegue l’operazione (3) il master memorizza i dati e lo segnala abbassando request (2) lo slave segnala che ha finito attivando acknowledge (4) lo slave torna allo stato iniziale abbassando acknowledge © R.H. Katz 6-45 Circuiti self-timed e speed-independent Reti logiche Logica sequenziale Alternativa: protocollo di handshake a 2 fasi Non richiede ritorno a zero Req Data Ac k (1) il master attiva request lo slave esegue l’operazione (2) lo slave indica che ha finito alzando acknowledge La prossima richiesta e’ indicata dal livello basso di request Ha bisogno di piu’ memoria nel master e nello slave per ricordare la fase del protocollo Il protocollo a 4 fasi e’ piu’ facile da realizzare © R.H. Katz 6-46 Reti logiche Circuiti self-timed e speed-independent Logica sequenziale Circuiti self-timed Decidono per conto proprio quando una richiesta e’ stata servita Non hanno clock interni Di solito realizzati modellando il ritardo del caso peggiore nel componente self-timed Ingresso Logica combinatoria Req Uscita Ack Ritardo Modella il ritardo nel caso peggiore p.es. se la logica combinatoria ha 5 livelli, la linea di ritardo fra request ed ack ha anch’essa 5 livelli © R.H. Katz 6-47 Riassunto del capitolo Reti logiche Logica sequenziale • Blocchi costruttivi base dei circuiti sequenziali: latch e flipflop • latch R-S, flipflop J-K master/slave, flipflop D attivo sul fronte • Strategie per la distribuzione del clock: Per i latch: clock stretto o clock multi-fase non sovrapposto clock stretto ha vincoli da soddisfare da due lati clock a due fasi ha vincoli da soddisfare da un solo lato Per i FF: clock ad una fase con FF attivi sul fronte FF in cascata funzionano se il ritardo di propagazione e’ maggiore del tempo di setup Beware of Clock Skew • Ingressi asincroni (ed i pericoli che causano) Errori di sincronizzazione: che cosa sono, come minimizzarne gli effetti • Circuiti speed-independent Protocolli asincroni: “handshake” a 4 e 2 fasi Circuiti self-timed © R.H. Katz 6-48