2.06k likes | 2.31k Vues
Circuito sequenziali. L’output dipende dall’input corrente e dalla storia passata degli input. Lo “ stato ” racchiude tutte le informazioni sul passato necessarie per predire l’output corrente basato sull’input corrente. Variabili di stato , uno o più bit di informazione.
E N D
Circuito sequenziali L’output dipende dall’input correnteedalla storia passata degli input Lo “stato” racchiude tutte le informazioni sul passato necessarie per predire l’output corrente basato sull’input corrente Variabili di stato, uno o più bit di informazione Esempio di circuito sequenziale: il contatore Le variabili di stato sono i bit del conteggio il conteggio definisce lo stato Ad un certo istante lo stato (conteggio) dipende dalla storia passata
Stato corrente Stato successivo Q2Q1Q0 Q2*Q1*Q0* 0 0 0 0 0 1 0 0 1 0 1 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 0 1 1 0 1 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 Notazione: Q* denota i bit dello stato successivo Descrizione dei circuiti sequenziali: tavola degli stati Per ciascuno stato corrente, specifica gli stati successivi in funzione degli input Per ciascuno stato corrente, specifica gli output in funzione degli input Esempio: contatore a 3 bit N.B.: questo circuito sequenziale non ha input (oltre clock e reset)
input Stato corrente Stato successivo Q1Q0 ENQ1*Q0* 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 0 0 Descrizione dei circuiti sequenziali: tavola degli stati Contatore a 2 bit con enable: il conteggio (stato) cambia solo se il segnale di enable è 1
Circuito sequenziale con output: segnale che ci dice quando il contatore ha raggiunto il conteggio massimo
Descrizione dei circuiti sequenziali: diagramma degli stati Versione grafica della tavola degli stati S2 S1 S3 S0 S4 S5 S7 S6 Le frecce indicano la transizione da uno stato (conteggio) al successivo. Quando si verificano le transizioni?
Segnali di clock • Fondamentali nei circuiti sequenziali • Le variabili di stato cambiano sui fronti del clock
Le transizioni si possono verificare solo in corrispondenza dei fronti di salita del segnale di clock
Segnale sincrono: cambia sempre a un istante fissato un pò dopo il fronte di salita del segnale di clock Tutti i segnali di input di un circuito sequenziale devono essere sincroni col segnale di clock (altrimenti il circuito può funzionale male)
Tutti i segnali di output prodotti da un circuito sequenziali sono sincroni col segnale di clock
Macchine a stati e circuiti digitali sincroni Lo scopo di questa parte del corso è l’analisi dei circuiti sequenziali più importanti: le macchine a stati Macchine a stati: controllano tutti gli altri elementi di circuito e coordinano lo svolgimento nel tempo di tutti processi/operazioni Poichè gli stati cambiano solo su ogni fronte del clock, in un circuito digitale sincrono qualunque cambiamento non può avvenire a un istante qualsiasi Risoluzione temporale determinata dal periodo del clock determina la massima velocità del circuito
Elemento bistabile • Il circuito sequenziale più semplice • Due stati • Una variabile di stato, diciamo Q LOW HIGH HIGH LOW
Analisi analogica • Assumiamo soglie CMOS, 5V rail • Il centro teorico della soglia è 2.5 V
Stati stabili e metastabili • La metastabilità è presente in ogni circuito bistabile • Due punti stabili, un punto metastabile
Analisi analogica • Assumiamo soglie CMOS, 5V rail • Il centro teorico della soglia è 2.5 V 2.5 V 2.5 V 2.5 V 2.5 V
2.0 V 2.0 V Analisi analogica • Assumiamo soglie CMOS, 5V rail • Il centro teorico della soglia è 2.5 V 2.5 V 4.8 V 2.51 V 2.5 V 0.0 V 2.5 V 0.0 V 4.8 V 5.0 V 2.5 V
Perchè tutta questa attenzione sulla metastabilità? • Vi sono soggetti tutti i sistemi reali • I problemi sono causati dagli “input asincroni” che non soddisfano i tempi di setup e hold dei flip-flop • Problema severo in sistemi ad alta velocità poichè i periodi di clock sono così brevi che il “tempo di risoluzione della metastabilità” può essere più lungo di un ciclo di clock. • Molti progettisti, prodotti e compagnie sono state rovinati da questo fenomeno.
Latch S-R: bistabile con input di controllo • Come controllarlo? • Input di controllo • Latch S-R
(i) Assumiamo QN=0; 0 1 0 QN=0 e Q=1 è stabile 0 Latch Set-Reset: condizione hold Se S=0 e R=0, quali sono gli stati stabili di questo circuito? QN Q S R
0 QN=1 e Q=0 è stabile Latch Set-Reset: condizione hold se S=0 e R=0, quali sono gli stati stabili di questo circuito? QN Q (i) Assumiamo QN=0; 1 0 QN=0 e Q=1 è stabile S 0 R (ii) Assumiamo QN=1; Condizione hold: vengono mantenuti i valori presenti precedentemente
1 0 1 0 Latch Set-Reset: condizione set Se lo stato è QN=1 e Q=0, e l’input S cambia a 1, cosa accade? QN Q 1 Il nuovo stato stabile è QN=0 e Q=1 0 0 S 0 R Cosa accade se S cambia a zero ora? Lo stato non cambia! Condizione S(et): Q viene “forzato” a 1
0 1 1 0 Cosa accade se R cambia a zero ora? Latch Set-Reset: condizione reset Se lo stato è QN=0 e Q=1, E l’input R è cambiato a 1, cosa accade? QN Q 0 Il nuovo stato stabile è QN=1 and Q=0 1 0 S 0 R Lo stato non cambia! Questa è la condizione R(eset): Q viene “forzato” a 0
Latch Set-Reset Riassumendo: - se S cambia a 1 per un breve periodo di tempo, il latch va nello stato QN=0, Q=1; - Se R cambia a 1 per un breve periodo di tempo, il latch va nello stato QN=1, Q=0; consideriamo Q l’output del latch, Per cui S è l’input “Set”, mentre R è l’input “Reset”. Cosa accade se R e S sono 1 contemporaneamente?
1 1 0 Latch Set-Reset: input non permessi Assumiamo che QN=0, Q=1 inizialmente e che R ed S divengano 1. QN Q 0 Il nuovo stato stabile è QN=0 e Q=0 1 0 S 0 R Ma questo non è più un latch perchè QN non è più il complemento di Q! S=1 e R=1 non è permesso.
Si può avere metastabilità Se S e R sono deasseriti simultaneamente. Latch Set-Reset: diagrammi temporali (provate in Quartus)
Latch Set-Reset: parametri temporali • Ritardo di propagazione • Minima larghezza dell’impulso
Latch Set-Reset: tavola della transizione degli stati Una tavola delle transizioni degli stati è un modo alternativo di illustrare il funzionamento Una tavola delle transizioni degli stati può essere espressa anche in forma di diagramma di stati.
Latch Set-Reset: diagramma degli stati Un diagramma degli stati in questo caso ha 2 stati: Q=0 e Q=1 Il diagramma degli stati mostra le condizioni di input richieste per la transizione fra gli stati. In questo caso vediamo che ci sono 4 possibili transizioni. Consideriamole una per volta.
Condizione di set (se inizialmente il circuito è nello stato Q=0) S=1, R=0
Condizione di reset (se inizialmente il circuito è nello stato Q=1) S=0, R=1
Costruzione del diagramma degli stati a partire dalla tavola delle transizioni Q=0, Q*=0 Dalla tavola vediamo S’R’+S’R=S’ Q=1 Q*=1 Dalla tavola vediamo S’R’+SR’=R’ Q=0, Q*=1 Dalla tavola vediamo che SR’ Q=1, Q*=0 Dalla tavola vediamo che S’R
SR’ R’ S’ S’R
0 0 Se includiamo anche le condizioni illegali Q=0, Q*=0 Dalla tavola vediamo S’R’+S’R+SR=S’R’+R=S’+R Q=1 Q*=1 Dalla tavola vediamo S’R’+SR’=R’ Q=0, Q*=1 Dalla tavola vediamo che SR’ Q=1, Q*=0 Dalla tavola vediamo che S’R+SR=R
SR’ R’ S’+R R