Perché i D-Flip Flop a cascata impediscono la metastabilità?


15

Capisco cos'è la metastabilità ma non capisco come il collegamento tra le infradito riduca questo?

Se l'output del primo flipflop è metastabile, questo viene utilizzato come input per il secondo. Ma non vedo come il secondo infradito sarà in grado di fare qualsiasi cosa con questo input e renderlo stabile.

Grazie in anticipo!


2
Sempre alla ricerca di un'opportunità per menzionare il culo di Buridan: en.wikipedia.org/wiki/…
copper.hat il

Risposte:


11

La metastabilità non può essere "curata", ma se aspetti abbastanza a lungo , la probabilità che si verifichi può essere arbitrariamente ridotta. Una volta che hai raggiunto una volta nell'età dell'universo, è probabilmente improbabile che ti causi problemi.

È come bilanciare una matita sul suo punto. È probabile che cada, e più a lungo aspetti, meno è probabile che rimanga in piedi.

Ci sono due problemi con l'attesa a lungo, e uno di questi è fondamentale.

Il problema fondamentale è che se si dispone di un singolo elemento di memoria (latch o flip-flop, entrambi soffrono di metastabilità) in un sistema con clock che riceve l'output da un sistema esterno asincrono, non è possibile definire fisicamente un limite inferiore al tempo di attesa , a volte il segnale esterno effettuerà una transizione vicino al bordo di controllo del blocco. Devi effettuare il pipeline del segnale ad un altro flip-flop per lasciarlo aspettare lì. Ciò garantisce un tempo di attesa minimo garantito di un ciclo di clock.

Il secondo problema è che spesso stai cercando di far funzionare un sistema il più velocemente possibile e la frequenza di clock del sistema non può essere rallentata per dare abbastanza tempo nel secondo flip-flop. L'unico modo per aumentare la latenza del segnale a ciò che è necessario, senza ridurre la velocità effettiva, è di eseguire il pipeline dell'attesa su più fasi.

Alcune persone hanno difficoltà a visualizzare ciò che sta accadendo tra le infradito. Esistono due modi per indurre la metastabilità ed entrambi implicano la violazione delle regole del flip-flop. Un modo è quello di violare l'impostazione dell'ingresso e i tempi di attesa, per effettuare una transizione quando il flip-flop prevede che l'input sia stabile. L'altro è quello di violare i livelli logici di ingresso, per far sì che l'ingresso di dati flip-flop sieda a un livello di tensione intermedio. Un flip-flop che è metastabile può produrre entrambi i tipi di violazione sul suo output, per passare al prossimo flip-flop.


6
Ad esempio, quando stavo progettando il chip, ho "posseduto" la metastabilità, tutti i cronometri, abbiamo fatto la matematica, capito le possibilità di errore del sincronizzatore ad ogni flop, gruppo di flop, ecc. Ecc. be ... per lo più un pixel sul display potrebbe rompersi, alla fine tutto il chip si è ridotto a circa una volta ogni due anni - questa era una scheda grafica per Win95 che all'epoca non poteva rimanere in piedi per più di circa un giorno abbiamo deciso che nessuno avrebbe notato nemmeno un sincronizzatore MTBF di 2 anni.
Taniwha,

7
Anche una cosa che nessuno menziona è ciò che accade con un fallimento assoluto della metastabilità nel caso peggiore ... a volte un errore del sincronizzatore provoca un flop che oscilla internamente con una frequenza stupidamente alta, forse a livelli tra i massimi alti e bassi digitali - se sfugge ai tuoi alti- ottenere un flop con il sincronizzatore anti-metastabilità che un disastro rumoroso e rumoroso può infettare tutti i flop a valle (come roba da fan) causando enormi assorbimenti di corrente e persino potenzialmente surriscaldamento e morte dei chip - quindi presta attenzione a questo come un problema
Taniwha

@Neil_UK Usi la parola latch che penso sia confusa. Nei miei ambienti, un fermo è un elemento asincrono. Li chiamerei infradito per chiarezza.
jalalipop,

1
@jalalipop Stavo usando il latch per indicare il flip-flop, anche se forse il suo significato è cambiato nei decenni da quando ho iniziato a usarlo. Anche se concordo sul fatto che "latch" si riferisce generalmente al tipo asincrono trasparente, anche loro soffrono di metastabilità se i dati cambiano sul bordo "latching" dell'input di abilitazione. Un flip-flop master slave è in genere costruito internamente da una coppia di chiavistelli azionati in antifase dall'orologio. Grazie per averlo menzionato, modificherò la risposta per chiarire.
Neil_UK,

@ Tamiwha Puoi fornire una risposta con diagrammi, costanti di tempo e matematica, per chiarire i comportamenti interni dei fermi mentre cercano di risolverli. Devi mostrare (come sicuramente saprai) in che modo il guadagno del loop e la costante del tempo di rigenerazione e il rumore di fondo (termico e VDD) influenzano la capacità di risoluzione.
analogsystemsrf,

9

Riduce la probabilità di metastabilità che influisce sul circuito consentendo più tempo fino a quando il segnale viene effettivamente utilizzato. Con due flip-flop, consente un intero ciclo di clock extra per la stabilizzazione del segnale. Con tre, consente due cicli di clock aggiuntivi.


2
Buona risposta. Il punto importante è che la metastabilità non è impedita , riduciamo semplicemente la probabilità a un livello accettabile.
Elliot Alderson,

1
Quindi le infradito a cascata danno il tempo al segnale di stabilizzarsi tra 0 e 1 ma non risolve un valore sbagliato? dal momento che un segnale metastabile può cadere in entrambe le direzioni?
Wouter A

2
@WouterA Se è metastabile, entrambi i valori sono corretti.
user253751

4
Non penso che questa sia una buona risposta, in questo caso solo il primo flop sta campionando il segnale di input. Come accennato in precedenza, ciò che sta accadendo è che esiste una probabilità che si verifichi metastabilità (dipende dal guadagno nei cicli di feedback interni del flop, dalla velocità di clock e dalla frequenza con cui la cosa campionata passa tra le soglie di input) in ogni particolare flop è (si spera) un piccolo numero <1 = p - due flop ci danno p ^ 2 possibilità che MS passi 2 flop, 3 p ^ 3 ecc ecc.
Taniwha,

4

Non impediscono che la metastabilità influisca sull'output, ma possono aumentare notevolmente il tempo medio tra gli incidenti poiché la metastabilità dovrebbe avere una durata relativamente lunga.

Far cadere a cascata tre (o più) infradito ben progettate può aumentare il tempo tra gli incidenti e qualcosa di simile all'età della terra.


Dipende dalla frequenza di clock e dalla tecnologia di processo. Un flip-flop potrebbe essere sufficiente affinché il tuo MTBF sia infinitesimale, a patto che ti manchi alto.
jalalipop,

@jalalipop Certo. Ci sono alcune informazioni di prova effettive (molto datate ora) nel documento IEEE originale. DOI: 10.1109 / TC.1983.1676187
Spehro Pefhany,

@jalalipop: generalmente questo è un problema che è più rilevante quando non è possibile garantire il tempo di rallentamento ... alias design asincrono, come il FIFO che comunica tra il core della CPU e il SOC quando i rispettivi clock non sono bloccati in fase. Altrimenti basta impostare un tempo di installazione difficile e garantire che non si verifichi la metastabilità.
jbord39,

Sì, la metastabilità è una preoccupazione per un'interfaccia asincrona. Il gioco a cui mi riferisco è il gioco della logica sincrona dopo il Flip-flop. Se il tuo gioco è alto, l'evento Metastabilità si estinguerà prima che influisca sul resto del tuo progetto.
jalalipop

2

Perché il primo infradito, anche se è metastabile, avrà tutto il periodo di tempo per stabilizzarsi. Quando il secondo flip-flop campiona il primo flip-flop, il suo output potrebbe essere già stabile.


1

Se vuoi l'entusiasmo della metastabilità, implementa DUE INVERTER MOLTO LENTI, collegali back-to-back e polarizzali (in una simulazione) su VDD / 2. Quindi rimuovere la distorsione e osservare la velocità di risoluzione ai livelli logic1 e logic0. Potrebbe essere necessario scegliere una tensione di polarizzazione iniziale diversa da VDD / 2.

Se i tuoi 2 o 3 infradito sono LENTI rispetto al periodo dell'orologio, la vita potrebbe essere piena di problemi.


1

La metastabilità significa semplicemente che, se si ha una transizione di dati in una determinata finestra temporale riferita all'orologio, l'output si comporterà male per un certo periodo dopo il limite dell'orologio. Tuttavia, la finestra non è un intervallo fisso. Piuttosto, la probabilità di un valore errato (oscillazione o livello di tensione intermedia) diminuisce esponenzialmente con il tempo. Quindi, se campionate il segnale con un orologio e poi aspettate un po 'prima di applicare l'orologio al secondo flip-flop, potete ridurre le probabilità di un bit cattivo a qualsiasi probabilità desiderata (ma diversa da zero). Se il tempo richiesto è troppo lungo, è possibile utilizzare 3 o più infradito in serie.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.