GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da...

36
GOOGLE metastabilità flip flop http://bonda.cnuce.cnr.it/Documentation/ateach/arch1/mate rialeArch1/parte3/paragrafo_b7.html http://electro-logic.blogspot.it/2013/07/fpga- approfondiamo-la-metastabilita.html http://books.google.it/books?id=jWp3dXRGv- YC&pg=PA307&lpg=PA307&dq=metastabilit%C3%A0+flip+flop &source=bl&ots=C5jikPttEN&sig=cX3aB_ncsLLMeQ-pKxZ- oIZRA8Y&hl=it&sa=X&ei=2IasUub7FannywPTiIGIDA&ved=0C E0Q6AEwBA#v=onepage&q=metastabilit%C3%A0%20flip%20 flop&f=false http://unina.stidue.net/Circuiti%20Integrati%20Digitali/Mat eriale/3.%20Circuiti%20Sequenziali.pdf

Transcript of GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da...

Page 1: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

1

GOOGLE metastabilità flip flop

http://bonda.cnuce.cnr.it/Documentation/ateach/arch1/materialeArch1/parte3/paragrafo_b7.html

http://electro-logic.blogspot.it/2013/07/fpga-approfondiamo-la-metastabilita.html

http://books.google.it/books?id=jWp3dXRGv-YC&pg=PA307&lpg=PA307&dq=metastabilit%C3%A0+flip+flop&source=bl&ots=C5jikPttEN&sig=cX3aB_ncsLLMeQ-pKxZ-oIZRA8Y&hl=it&sa=X&ei=2IasUub7FannywPTiIGIDA&ved=0CE0Q6AEwBA#v=onepage&q=metastabilit%C3%A0%20flip%20flop&f=false

http://unina.stidue.net/Circuiti%20Integrati%20Digitali/Materiale/3.%20Circuiti%20Sequenziali.pdf

Page 2: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

2

Relazioni temporali da rispettare per avere un corretto Relazioni temporali da rispettare per avere un corretto funzionamento del flipfunzionamento del flip--flopflop

Considerando il diagramma temporale di figura 3.2, il segnale D dovrà stabilizzarsi prima del fronte attivo del clock (cioèquello di discesa). L’intervallo di tempo minimo che intercorre fra l’ultima variazione di D e il fronte attivo del clock prende il nome di tempo di setup, ts. Inoltre ènecessario che D resti stabile anche per un tempo successivo al fronte del clock. Si definisce allora tempo di hold, th, il minimo intervallo di tempo che deve trascorrere dal fronte attivo del clock prima che si verifichi una variazione di D. Se D varia nell’intervallo ts+th non è piùgarantito il corretto funzionamento del flip-flop, il quale può entrare in uno stato metastabile (o comunque avere un funzionamento per cui le uscite diventano impredicibili).

Page 3: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

3

L’uscita Q varierà con un certo ritardo rispetto al fronte attivo del clock. Si definisce allora il tempo tq, detto clock-to-q delay, come l’intervallo di tempo minimo, che deve trascorrere dal fronte attivo del clock per avere un’uscita Q stabile.

Page 4: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

4

Ingressi asincroni e circuiti di sincronizzazioneIngressi asincroni e circuiti di sincronizzazione

…Per tradurre l'ingresso asincrono in un segnale sincrono che possa essere usato per determinare le variazioni di stato di un sistema è necessario un circuito di sincronizzazione, i cui ingressi sono il segnale asincrono ed un segnale di clock e la cui uscita è un segnale sincronizzato con il clock fornito in ingresso. In un primo tentativo di costruzione di un circuito di sincronizzazione si potrebbe far uso di un flip flop di tipo-D sensibile ai fronti il cui ingresso D sia collegato al segnale asincrono. Tuttavia sussiste un piccolo problema: si ipotizzi che il segnale asincrono stia variando tra il livello alto e quello basso mentre arriva il segnale di clock. E’ impossibile sapere se il segnale verrà memorizzato come alto o basso. In aggiunta la situazione reale può essere anche peggiore: quando il segnale che viene campionato non è stabile durante i necessari periodi di set-up e di hold è possibile che il flip flop si porti in uno stato denominato metastabile.

Page 5: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

5

In un flip-flop nello stato metastabile l'uscita non avrà un valore corretto, ma sarà nella regione indeterminata tra i due valori; inoltre non vi è garanzia che il flip flop esca da questo stato in un intervallo finito di tempo. Alcuni dei circuiti che leggono il valore presente sull'uscita del flip flop lo interpreteranno come uno 0, altri come un 1: questa situazione è detta errore di sincronizzazione.

Page 6: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

6

In un sistema completamente sincrono gli errori di sincronizzazione si possono evitare garantendo il rispetto dei tempi di set-up e di hold per tutti i flip flop o latch, ma ciò èimpossibile quando il segnale in ingresso è di natura asincrona. Una soluzione possibile è attendere abbastanza a lungo prima di leggere l'uscita del flip flop per garantire che la sua uscita sia stabile.

Qual è il periodo di tempo necessario? Si può dimostrare che la probabilità che un flip flop sia in uno stato metastabile decresce esponenzialmente, per cui dopo poco tempo la probabilità che il flip flop sia nello stato metastabile diviene estremamente bassa; tuttavia tale probabilità non raggiunge mai il valore 0!

Page 7: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

7

La probabilità di propagazione ai successivi flip-flop e quindi all’uscita della metastabilità è calcolabili in termini di MTBF(Mean Time Between Failures), tempo medio tra guasti dovuti alla metastabilità. La formula empirica utilizzata è la seguente:

con C1 e C2 costanti dipendenti dal dispositivo (per es. dal processo produttivo) e dalle condizioni operative (es. temperatura), fCLK è la frequenza del clock utilizzato per ricevere il segnale asincrono, fDATA la frequenza del segnale asincrono in ingresso. tMET è il tempo a disposizione del segnale per risolvere la metastabilità.

Page 8: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

8

Nella maggior parte dei Nella maggior parte dei flipflip flop un'attesa di un tempo pari flop un'attesa di un tempo pari ad alcune volte il tempo di setad alcune volte il tempo di set--up rende abbastanza piccola up rende abbastanza piccola la probabilitla probabilitàà di errori di sincronizzazione.di errori di sincronizzazione. Se il periodo di clock è più lungo del periodo di potenziale metastabilità, un circuito di sincronizzazione sicuro si può costruire con due flip flop di tipo D.

Page 9: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

9

Il rischio

Page 10: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

10

Page 11: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

11

Page 12: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

12

Supponiamo che un segnale asincrono a venga inviato allo ingresso D di un flip-flop.Il problema è che su questo segnaleasincrono non abbiamo alcun tipo dicontrollo, le sue commutazioni possono avvenire in un istante di tempo qualsiasi. Quindi può accadere che il segnale a vari proprio in prossimità di un fronte attivo del clock senza rispettare i vincoli di setup e di hold.

Page 13: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

13

In definitiva, vi e un differente comportamento fra un flip-flop dinamico ed uno statico; per il primo l’uscita, portatasi nello stato illegale, vi rimane fino al successivo fronte del clock. Il flip-flop statico, grazie al fatto che M è un punto di equilibrio instabile, può risolvere l’uscita in un tempo tmse c’è una minima perturbazione sovrapposta al segnale. Nel caso dei flip-flop dinamici il tempo di metastabilità è pari al periodo del segnale di clock per i flip-flop statici, invece, questo tempo tm vedremo come può essere calcolato, ma in linea di principio può senz’altro essere più basso del periodo del clock. Pertanto dei due tipi di flip-flop, il più adatto ad essere utilizzato come sincronizzatore è certamente quello statico, dato che è in grado da solo di risolvere in qualche modo l’uscita; i flip-flop dinamici non sono adatti per essere utilizzati come sincronizzatori.

Page 14: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

14

Page 15: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

15

Osserviamo che anche se l’uscita del flipflop statico non si porta al livello logico corretto dopo il tempo tm, ciò non comporta alcun problema dato che al successivo fronte del clock, con un buon margine sui tempi di setup e di hold, verràindividuato il valore logico corretto (quello alto, nel nostro esempio). In questo caso, quindi, ci si accorge della variazionedel segnale asincrono con un ritardo pari al periodo del clock. Ciò però non è un problema perché sicuramente la frequenza del segnale di clock è sufficientemente maggiore rispetto a quella del segnale asincrono esterno (altrimenti, non avrebbe senso campionario alla frequenza di clock).L’importante, quindi, è che il flip-flop non rimanga troppo a lungo nello stato metastabile.

Page 16: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

16

Consideriamo, infatti, il sistema mostrato in figura 3.40, in cui abbiamo il segnale asincrono a in ingresso ad un flip-flop che funziona da sincronizzatore, la cui uscita viene inviata in ingresso ad un sistema sequenziale.

Page 17: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

17

Il problema che si presenterebbe, se il segnale Qa si trovasse ad un potenziale cui corrisponde un livello logico indefinito, èche due porte logiche potrebbero interpretare questo segnale l’una come livello logico alto e l’altra come livello logico basso. Ciò comporta che lo stato futuro in cui si va a posizionare il sistema sia uno stato che non è stato previsto quando è stata progettata la nostra macchina sequenziale. Ciò, ad esempio, potrebbe comportare che il sistema vada a porsi in uno stato da cui non è più in grado di uscire; da questo errore di sincronizzazione, quindi, potrebbe non essere più possibile recuperare il funzionamento del sistema.

Page 18: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

18

Vediamo, quindi, come sia possibile porre rimedio a questo problema. Innanzitutto è ovvio che bisogna considerare, come sincronizzatore, un flip-flop statico; valutiamo allora qual è il massimo tempo di metastabilità, tm,max, che è possibile tollerare all’uscita di questo flip-flop. A tale scopo consideriamo il diagramma temporale di figura 3.41, in cui il segnale asincrono varia proprio in corrispondenza del fronte del clock.

Page 19: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

19

L’uscita Qa del sincronizzatore passa in uno stato metastabile per un tempo tm, dopo il quale si porta, in maniera casuale, a 0 oppure ad 1; al fronte successivo del clock, in ogni caso, vieneindividuato il valore corretto di Qa. L’uscita y, stato futuro del nostro sistema sequenziale, potrà essere elaborata dal nostro sistema combinatorio certamente non in corrispondenza del primo fronte del clock; bisogna attendere prima che Qaassuma il valore corretto, e poi bisogna considerare il ritardo del sistema combinatorio. Per avere dunque un corretto funzionamento del nostro sistema deve risultare:

Quindi, in pratica, il tempo di metastabilità può essere visto come un incremento del ritardo tq del primo flip-flop. Da questa relazione si ricava che il massimo tempo di metastabilità che è possibile tollerare è dato da:

Page 20: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

20

Da questa relazione si ricava che se il tempo di metastabilitàè minore di tm,max il nostro sistema funzioneràcorrettamente, dato che l’uscita dei registri viene campionata con un margine sufficiente rispetto al fronte del clock. Se invece questo periodo di metastabilità è maggiore di tm,max, il sistema sequenziale potrebbe non funzionare correttamente, dato che per le uscite non sarebbero piùrispettati i vincoli sul tempo di setup e di hold. Questa relazione, inoltre, ci conferma che non è possibile utilizzare un flip-flop dinamico come sincronizzatore dato che per esso tm=T. Per un flipflop statico, invece, è possibile calcolare tm e valutare in quali condizioni questo tempo è maggiore o minore di tm,max.

Page 21: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

21

Per avere una stima di trn facciamo delle ipotesi semplificative; supponiamo che il segnale di clock sia ideale (quindi con tr = tf = 0) e che il segnale d’ingresso a abbia dei tempi di salita e di discesa diversi da zero, come mostrato in figura 3.42.

Page 22: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

22

Inoltre supponiamo che il fip-flop statico si comporti, in qualche modo, come un circuito Sample&Hold, ovvero come un campionatore la cui uscita vq all’istante 0 sia pari alla tensioned’ingresso va a t=0, ovvero vq(0)=va(0). Quindi il valore iniziale che si ha sull’uscita è perfettamente uguale al valore d’ingresso campionato in corrispondenza del fronte attivo del clock. Bisogna, a questo punto, definire la legge con cui questauscita varia nel tempo. Se il flip-flop fosse stato di tipo dinamico l’uscita, come sappiamo, resterebbe bloccata al valore vq(0). Poiché il flip-flop è statico l’uscita parte da vq(0) e poi tenderà o verso VDD o verso 0, secondo una legge che ipotizziamo essere la seguente:in cui VM è la tensione di metastabilità, cioè quella che corrisponde al punto di equilibrio instabiledel circuito costituito dai due invertitori in retroazione.

Page 23: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

23

Non si commette un grosso errore se si approssimaVIH con VDD, inoltre si fa l’ulteriore ipotesi semplificativa che VM=VDD/2.

Da ciò si ricava che:

Page 24: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

24

Per valutare in quali condizioni il tm appena calcolato può diventare più grande di tm,max, facciamo riferimento al diagramma temporale di figura 3.44, in cui riportiamo il segnale di clock e la tensione d’ingresso va.

Page 25: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

25

Se va(0) < VMsicuramente si avrà un problema di metastabilità (addirittura, dalla relazione precedente, tm tende all’infinito); in realtàesiste una fascia di valori proibiti intorno a VM, di ampiezza 2vε, per i quali tm > tm,max, e, quindi, si ha un errore di sincronizzazione. Dal punto di vista del progetto, è chiaro che se possiamo agire su qualche parametro progetteremo il nostro sistema inmodo da rendere la vε, quanto più piccola possibile, in modo da ridurre al massimo la probabilità di un errore di sincronizzazione. Dunque la vε è data da:

Page 26: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

26

Osserviamo che è importante sia che il flip-flop sia veloce, quindi una τ quanto più piccola possibile, sia che la vε sia quanto più piccola possibile. Per far si che la vε sia quanto piùpiccola possibile bisogna accrescere tm,max, cioè il tempo massimo che possiamo tollerare prima che il sistema dia luogo ad un errore di sincronizzazione, oppure bisogna cercare di ridurre τ. In tal modo quando più è piccola questa fascia d’incertezza (di ampiezza 2vε) tanto meno probabile èche si abbia un errore di sincronizzazione. Consideriamo che il segnale va abbia delle transizioni con uguali tempi di salita e di discesa, come mostrato in figura 3.45; supponiamo, inoltre, che tale segnale effettui le transizioni con una propria frequenza media di commutazione.

Page 27: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

27

Alla fascia di tensione critica di ampiezza 2vεcorrisponderanno degli intervalli di tempo critici, diampiezza tε se il clock cambia proprio durante questi intervalli di tempo si ha un errore di sincronizzazione. Ipotizzando che il segnale vari linearmente si ha che l’ampiezza di questiintervalli è data da:

In realtà, per ogni periodo (Tsignal) del segnale asincrono a, abbiamo due possibili commutazioni,ovvero due degli intervalli di ampiezza tε(uno per il fronte di salita ed uno per quello di discesa).La percentuale di tempo rispetto al periodo del segnale in cui possiamo avere degli errori di sincronizzazione rappresenta una sorta di probabilità d’errore, in quanto ci indica il periodo di tempo (relativamente breve) in cui possiamo trovarci nella fascia 2vε.

Page 28: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

28

Però, in effetti, il segnale viene campionato utilizzando il segnale di clock; quindi il numero di errori di sincronizzazione al secondo è dato da:

Il fattore 1/N prende il nome di MTBF, ovvero è il tempo medio fra due errori di sincronizzazione (Mean Time BetweenFailures), ed è un parametro che definisce la bontà del nostro sistema. In definitiva risulta:

Page 29: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

29

Osserviamo che nell’espressione ottenuta, valida in generale, la costante t0 risulta essere pari a 2tr per le ipotesi in cui ci siamo posti, ovvero clock ideale e segnale a con tr = tf finiti (ma si poteva ipotizzare che il segnale d’ingresso fosse ideale ed il clock avesse tr e tf finiti, oppure che entrambi i segnali avessero dei tempi di salita e di discesa molto brevi però variabili quasi in sincronia in una certa fascia); quindi, in generale, il tempo t0 tiene conto di tutte queste non idealità.Ovviamente a noi interessa avere un MTBF quanto più grande possibile, in modo da aumentare il tempo medio fra due errori di sincronizzazione. L’MTBF si riduce al crescere della frequenza di clock, dato che il segnale d’ingresso viene campionato più volte, ed ogni volta si può avere un errore di sincronizzazione; inoltre si riduce al crescere della frequenza dei segnale d’ingresso (infatti, se questo fosse costante non si avrebbe mai errore di sincronizzazione, dato che ad ogni fronte del clock l’ingresso non può variare).

Page 30: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

30

L’MTBF può essere migliorato essenzialmente utilizzando dei flip-flop più veloci (quindi riducendo τ) o progettando il sistema in modo tale che tm,max, sia sufficientemente grande. Osserviamo, però, che comunque progettiamo il nostro sistemac’è sempre una possibilità che si abbia un errore di sincronizzazione (cioè non è possibile fare in modo che l’MTBF sia infinito); in altri termini non esiste un sincronizzatore ideale (c’è sempre una probabilità, sebbene bassissima, che si campioni il segnale d’ingresso proprio quando esso è in prossimità della tensione VM). L’unico parametro su cui è possibile operare è l’MTBF; rendendolosempre più grande si può avere una ragionevole probabilità che questo fenomeno non si manifesti in una maniera che non èpossibile tollerare.

Page 31: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

31

Supponiamo, ad esempio, che si abbia una frequenza di clock fck= 100 MHz, una frequenza media di variazione del segnale fsignal=10 MHz, un valore di t0 = l ns ed una costante di tempo del flip-flop pari a t = 0.25 ns. Il valore dell’MTBF risulta pari a:

dove tm,max è espresso in ns. Dunque se tm,max =1 ns il

nostro sistema è proprio al limite, in quanto sappiamo che per avere un corretto funzionamento del sistema sequenziale deve risultare: T ≥ tc,max+ts+tq; in tal caso risulta MTBF ≅ 50μs, valore del tutto inaccettabile. Del resto se si porta tm,max a soli 5 ns si ha MTBF ≅ 8 min., mentre per tm,max = 8 ns si ha: MTBF ≅ 60 anni. Quest’ultimo valore può sembrare molto grande, ma è il tempo medio fra due errori di sincronizzazione per uno degli esemplari del nostro circuito; è chiaro allora che se vengono prodotti 60x365 esemplari, mediamente mio di questi ogni giorno ha un errore di sincronizzazione.

Page 32: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

32

Inoltre, questo valore può essere grande o meno in base alla tipica applicazione (in base a ciò che può accadere quando simanifesta un errore di sincronizzazione).Da questo esempio si deduce che, nel progetto del nostro sistema, bisogna avere come specifica l’MTBF; dalla relazione precedente si ricava il tm,max in base al quale progettare il sistema.Osserviamo che deve risultare tm,max= T-ts-tq, in cui il tempo combinatoriale massimo viene comunque ridotto per aumentare la velocità del sistema, come anche si cercano di rendere piùveloci possibile i flip-flop (riducendo il ts, ovvero il τ). Sembrerebbe, quindi, che l’unico parametro su cui effettivamente possiamo agire sia il periodo T, ovvero bisogna rallentare la frequenza di clock.Questo non tanto perché nell’espressione dell’MTBF compare fck a denominatore, ma perché fckcompare in tm,max che è all’esponente. Bisognerebbe, quindi, accettare una perdita di prestazioni del nostro sistema.

Page 33: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

33

Ciò, ovviamente, non può essere accettato e quindi bisogna cercare di progettare un sincronizzatore più efficace; ciò può essere fatto nel modo mostrato in figura 3.46.

Page 34: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

34

Invece di utilizzare un solo flip-flop come sincronizzatore, che in molti casi ci costringe a ridurre la frequenza del clock per soddisfare la specifica sull’MTBF, viene utilizzato un sincronizzatore più efficiente costituito da due flip-flop in cascata (ovvero un registro a scorrimento composto da dueflip-flop). Tale circuito è migliore del precedente, seppure abbia la limitazione di avere una latenza maggiore (dopo due colpi di clock ci si accorge della variazione del segnale a), perché non è altro che una versione molto semplificata del sistema sequenziale precedente, in cui c’era il flip-flopsincronizzatore, il sistema combinatorio, che in questo caso èun filo di collegamento, ed un registro.Quindi possiamo riapplicare la formula relativa a tm,max in cui tc,max è uguale a zero, ovvero risulta:

Page 35: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

35

In pratica viene dato al primo flip-flop tutto un periodo di clock per risolvere l’uscita; appena l’uscita viene risolta il secondo flip-flop fornisce il valore giusto, senza far vedere al resto del sistema che il primo flip-flop per un certo periodo di tempo ha dato un’uscita metastabile. Questa soluzione, nel 95 % dei casi, risolvere i nostri problemi. Qualora, anche con questa soluzione, non fosse ancora possibile ottenere l’MTBF voluto, l’unica soluzione èquella di aumentare la lunghezza di questo registro a scorrimento. In questo caso, infatti, con elevata probabilità si riesce a risolvere la metastabilità del primo flip-flop; qualoraquesto non accada, l’uscita del secondo flip-flop diventa metastabile. Se però utilizziamo un terzo flip-flop, diamo anche al secondo registro un tempo T per poter risolvere l’uscita. Ovviamente si avrà una certa cura nel progetto di questi flip-flop per cercare di renderli veloci (quindi per ridurre la costante di tempo τ).

Page 36: GOOGLEÎmetastabilità flip flop …meddif/ElettronicaDigitale-Materiale...2 Relazioni temporali da rispettare per avere un corretto funzionamento del flip-flop Considerando il diagramma

36

A livello di componenti standard (quindi di porte TTL, CMOS, ecc.) esistono dei registri, fra quelli che si possono giàacquistare, che sono predisposti per questo tipo di applicazioni(cioè come sincronizzatori), ovvero hanno una particolarmente ridotta.