Uno stato metastabile è simile a un equilibrio instabile. Un esempio comune di equilibrio instabile è un pendolo invertito . Se riesci a bilanciare il pendolo in posizione verticale, quello è uno stato stabile. Tuttavia, se qualcosa spinge la leva su entrambi i lati (correnti d'aria o vibrazioni del terreno, ad esempio), il pendolo non si ripristinerà in posizione verticale, cadrà. Contrasto con un pendolo regolare, che se spinto da un lato, alla fine tornerà in verticale.
Equilibri stabili sono utilizzati nei sistemi elettrici per creare elementi di memoria. L'equlibria instabile non costituisce un buon elemento di memorizzazione (poiché perde facilmente il suo stato), ma spesso esiste come uno stato parassitario.
Un comune elemento di memorizzazione digitale è una coppia di inverter cross-coupled:
L'elemento di memorizzazione ha due stati stabili, uno in cui il nodo a sinistra è alla tensione di alimentazione e il nodo a destra è a terra e l'altro nella condizione opposta. C'è anche uno stato instabile, in cui ciascun nodo ha una certa tensione intermedia.
Per comprendere meglio come si presenta lo stato instabile, ricordare la funzione di trasferimento per un inverter. Il grafico della funzione di trasferimento mostra la tensione di uscita dell'inverter per una determinata tensione di ingresso.
L'inverter non è lineare; un modo semplice per ottenere una soluzione approssimativa di un circuito non lineare è quello di tracciare le caratteristiche del circuito; le intersezioni dei grafici sono le soluzioni, o in altre parole, i punti in cui sono soddisfatte le caratteristiche elettriche di tutti i componenti del circuito. Normalmente questo viene fatto con grafici IV come in questo esempio di diodo su Wikipedia . Tuttavia, per gli inverter, lo faremo con grafici VV. Sovrapposizione di una seconda funzione di trasferimento dell'inverter sul grafico (con gli assi scambiati, poiché il secondo inverter è all'indietro:
Esistono tre intersezioni dei grafici: uno a (0, Vs), uno a (Vs, 0) e uno a (Vs / 2, Vs / 2). Lo stato (Vs / 2, Vs / 2) è metastabile. Dopo una piccola perturbazione di uno dei due nodi, il circuito si sistemerà quasi sempre in uno degli stati stabili anziché tornare a (Vs / 2, Vs / 2).
Il modo per scrivere un valore sull'elemento di memoria a doppio inverter è forzare uno dei nodi sul valore desiderato utilizzando un driver più forte degli inverter. Un modo comune per farlo è con un transistor pass:
Se colleghi il gate del transistor pass all'orologio, hai un D-lock (sto tralasciando la struttura di uscita). Quando l'orologio è alto, abilitando il transistor di passaggio, il fermo è trasparente - l'ingresso passa direttamente all'uscita. Quando l'orologio è basso, il fermo mantiene il valore precedente. La metastabilità sorge al momento dai campioni di chiavistello. Se l'ingresso è ad alta o bassa tensione stabile quando il latch campiona, allora funzionerà correttamente. Tuttavia, se l'ingresso è attorno al punto Vs / 2 quando il latch campiona, c'è una possibilità che il latch finisca nello stato metastabile (Vs / 2, Vs / 2). Una volta che si trova nello stato metastabile, può rimanere lì indefinitamente (supponendo che il fermo non sia nuovamente sincronizzato), ma poiché si tratta di un equilibrio instabile, di solito accade qualcosa di relativamente rapido per eliminarlo dallo stato metastabile.
Quando preoccuparsi della metastabilità
Se i tuoi elementi di archiviazione stanno diventando metastabili, allora stai almeno perdendo parte del budget di tempistica per la logica a valle. La logica non può eseguire la valutazione desiderata fino a quando lo stato metastabile non si risolve. Nel peggiore dei casi, lo stato metastabile persiste o si propaga attraverso la logica e anche gli elementi di archiviazione a valle diventano metastabili o più elementi di archiviazione correlati acquisiscono valori incoerenti.
La logica sincrona correttamente progettata e funzionante non ha problemi di metastabilità. Il periodo di clock è più lungo del tempo di valutazione per la logica, tutti gli ingressi flip-flop sono stabili al successivo fronte di clock (requisito di installazione soddisfatto) e caricano tutti un valore valido.
Alcune delle situazioni comuni in cui la metastabilità è una preoccupazione sono:
- Campionamento logico di un ingresso esterno, ad esempio un interruttore sul pannello frontale o l'uscita di circuiti di monitoraggio che possono transitare in qualsiasi momento (sottotensione, sovratemperatura).
- Logica che utilizza più clock che non hanno una relazione sincrona. Ciò si presenta spesso con interfacce I / O che hanno particolari requisiti di clock, ma si verificano anche internamente quando parti diverse di un chip hanno requisiti di prestazione diversi. Ad esempio, non tutta la logica della CPU da 3 GHz funziona effettivamente a 3 GHz. (Una CPU non è un grande esempio, tuttavia, poiché molti degli orologi in una CPU sono multipli sincroni l'uno dell'altro.)