34 / 37 · Concetto
Confini dei domini di clock e metastabilità
Comprendere i limiti della sincronizzazione a due stadi distinguendo bit, impulsi brevi e bus.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Clock diversi non garantiscono distanze fra i fronti
SetupSetup Tempo minimo prima del fronte di acquisizione in cui i dati devono essere stabili. Una violazione rende non garantito il valore memorizzato. Approfondisci e holdTempo di hold Tempo minimo dopo il fronte di acquisizione in cui i dati devono restare stabili. Va distinto dal generico mantenimento di un valore. Approfondisci richiedono dati stabili attorno al fronte ricevente. Un pulsante o un dominio indipendente ha fase arbitraria rispetto a esso: non è facile garantirlo sempre.
Il flip-flopFlip-flop Acquisisce al fronte di clock specificato e mantiene fino al successivo. Gli ingressi devono rispettare setup e hold. Approfondisci può diventare metastabile: per un intervallo lo stato interno non si risolve rapidamente in 0 o 1. La normale simulazione RTL 0/1 non rappresenta direttamente questo fenomeno analogico. Forme d'onda pulite non dimostrano una CDC sicura.
Due stadi per un singolo bit mantenuto abbastanza a lungo
module level_synchronizer (
input logic clk_dst,
input logic rst_dst,
input logic async_level,
output logic synced_level
);
logic first_stage;
always_ff @(posedge clk_dst) begin
if (rst_dst) begin
first_stage <= 1'b0;
synced_level <= 1'b0;
end else begin
first_stage <= async_level;
synced_level <= first_stage;
end
end
endmoduleIl primo stadio ha tempo per stabilizzarsi prima della lettura del secondo. La logica funzionale usa solo l'ultimo; il primo non deve diramarsi direttamente verso di essa. Si assume il reset mostrato sincrono al clock destinatario.
L'implementazione reale richiede attributi di sincronizzazioneSincronizzatore Porta segnali da un altro dominio temporale al clock ricevente. La catena multistadio a un bit non va applicata invariata ai dati multibit., collegamenti brevi fra stadi e controlli STA/CDC adeguati. Due registriRegistro Memorizza uno stato di più bit. I registri sincroni del corso acquisiscono gli ingressi specificati al fronte di clock. Approfondisci da soli non garantiscono posizionamento e cammini.
L'ingresso asincrono raggiunge il primo stadio e la funzione usa solo l'ultimo. Il tempo intermedio dà opportunità di assestamento, senza garantire la scomparsa della metastabilitàMetastabilità Stato analogico in cui un elemento di memoria non si assesta temporaneamente né a 0 né a 1. La sincronizzazione ne riduce la propagazione senza annullarne la probabilità. analogica.
- Livello asincrono: Nessuna relazione di fase con il clock di destinazione
- meta FF: Può verificarsi instabilità
- synced FF: Acquisire al prossimo fronte del clock di destinazione
- Circuito funzionale: Usare solo l’ultimo stadio
La probabilità di guasto diminuisce, ma non diventa zero
Un modello semplificato indica questa tendenza del tempo medio fra guasti MTBF:
è il tempo di risoluzione, una caratteristica del componente, la frequenza ricevente e il tasso di transizione asincrono. Il calcolo reale richiede costanti specifiche. La formula da sola non autorizza garanzie arbitrarie di «anni di sicurezza».
Problemi diversi richiedono strutture diverse
| Informazione | Bastano due stadi a un bit? | Struttura da valutare |
|---|---|---|
| Livello mantenuto a lungo | Possibile se soddisfa probabilità e latenza richieste | Sincronizzatore destinatario |
| Impulso più corto del periodo | Può essere perso del tutto | Estensione, toggle, handshake |
| Più bit coerenti | I bit possono riferirsi a istanti diversi | Bus stabile con handshake, FIFO asincrona |
| Pulsante meccanico | I rimbalzi sono un problema distinto | Sincronizzazione poi debounce |
Nel cambio a quattro bit da 0111 a 1000, sincronizzare ogni bit separatamente può mostrare una combinazione mai esistita. La coerenza del bus richiede una relazione progettata fra dato complessivo e completamento del trasferimento.
Per approfondire: MIT OpenCourseWare — Synchronization, Metastability and Arbitration
Prova tu
Clock ricevente 50MHz, impulso 5ns: due stadi garantiscono ogni rilevazione ed eliminano anche il rimbalzo del pulsante?
Leggi la spiegazione
Il periodo è 20ns. Un impulso di 5ns può iniziare e finire fra i fronti e sfuggire già al primo stadio. Aggiungere stadi non lo conserva. Servono estensione o handshake; il rimbalzo richiede debounce separato.