Nel descrivere le caratteristiche dinamiche di un circuito sequenziale vengono utilizzati una serie piuttosto ampia di tempi che descrivono quanto un componente è veloce.
Alcune definizioni sono le stesse utilizzate per i circuiti combinatori. In particolare:
Nei circuiti dotati di clock è importante che tutti gli ingressi rimangano costanti sia immediatamente prima che immediatamente dopo il fronte attivo del clock. I due parametri principali che descrivono questo aspetto sono:
Nel caso in cui in circuito sia dotato di più ingressi e/o più uscite i tempi descritti in questo paragrafo sono duplicati. Per esempio se un registro possiede sia un ingresso seriale ed uno parallelo, nei fogli tecnici saranno disponibili due tempi di setup e due tempi di hold, sempre riferiti al clock.
La violazione dei tempi descritti in questo paragrafo porta ad errori nel funzionamento del circuito. Per esempio un clock con frequenza troppo elevata causa frequenti errori nel conteggio di un contatore o nel funzionamento di un registro; spesso addirittura i componenti non sono in grado di funzionare per nulla. Questo tipo di malfunzionamento è facilmente riconoscibile in fase di test perché sostanzialmente deterministico: il componente semplicemente non funziona come previsto...
Cercare i parametri descritti in questo paragrafo per i seguenti componenti:
La violazione del tempo di setup oppure del tempo di hold produce un effetto difficile da individuare.
Quasi sempre è presente semplicemente un comportamento casuale: se clock e cambiamento dell'ingresso sono molto vicini, al limite coincidenti, a volte l'ingresso sarà interpretato come HIGH a volte come LOW a secondo dello specifico dispositivo e delle specifiche condizioni operative (tensione di alimentazione, temperatura...).
In alcuni casi estremamente rari (per esempio una volta ogni 1010) l'uscita del componente non assume né valore HIGH, né LOW, ma si viene a trovare in uno stato intermedio, non stabile, da cui esce spontaneamente dopo un tempo non prevedibile e potenzialmente lungo; tale stato è detto metastabile.
Come analogia fisica pensiamo ad un carrello spinto lungo una "montagna" dell'ottovolante:
Il problema sorge dal fatto che la metastabilità congela il funzionamento del componente (e quindi introduce un errore grave nel funzionamento dell'intero sistema); inoltre l'apparire o meno del problema è un evento estremamente raro e quindi difficile da individuare con un test anche di lunga durata. Per esempio il test per il funzionamento della memoria di un PC richiede tempi molto lunghi (ore o giorni) e comunque non garantisce l'assenza di problemi.
Le situazioni in cui la metastabilità appare sono tipicamente legate alla presenza di più sistemi dotati di clock indipendenti, come praticamente in tutti i sistemi moderni di una certa complessità.
Normalmente un sistema di relativamente piccola complessità ha un unico clock principale da cui, se serve, sono derivati altri clock secondari, per esempio attraverso l'uso di Flip Flop T oppure PLL. Questo sistema è a volte indicato come Clock Domain (CD), oppure come sistema sincrono. Se un Clock Domain è correttamente progettato, può essere sempre garantito il rispetto dei tempi di hold e di setup e quindi esclusa la possibilità di metastabilità.
Se due Clock Domain indipendenti sono collegati tra di loro, il passaggio da uno all'altro è chiamato Clock Domain Crossing (CDC). In questo caso il segnale generato dal primo CD cambia in un istante non prevedibile dal secondo CD e quindi è possibile la violazione dei tempi di setup ed hold e quindi uno stato metastabile.
La probabilità di guasto è misurata tramite il parametro MTBF (Mean Time Between Failures), tempo medio tra guasti. Più questo valore è basso, più saranno frequenti le situazioni di metastabilità. Per esempio un MTBF di un giorno è decisamente peggiore di un MTBF di 1000 anni!
I fattori che determinano l'MTBF causato da metastabilità sono:
Una tecnica per aumentare l'MTBF è l'inserimento in corrispondenza del CDC di un sincronizzatore (synchronization chain), una serie di Flip Flop con il clock in comune, in pratica un registro a scorrimento.
Il circuito seguente mostra un sincronizzatore realizzato con tre Flip Flop D. A destra, in giallo, abbiamo un Clock Domain in cui il bit entra dopo essere stato "sincronizzato", a sinistra, in grigio, un diverso Clock Domani da cui il bit esce in modo asincrono.
Immagine di apertura: Freddo - ISpeed à Mirabilandia - Creative Commons Attribution-Share Alike 3.0 Unported
Pagina creata nel marzo 2025
Ultima modifica: 4 aprile 2025
Appunti scolastici - Versione 0.1031 - Marzo 2025
Copyright 2012-2025, Vincenzo Villa (https://www.vincenzov.net)
Creative Commons | Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)