23 / 37 · Concetto
Campionamento e causalità nelle forme d’onda
Leggere le forme d’onda separando assestamento combinatorio, acquisizione e ordine degli eventi.
Le lezioni sono gratuite. Iscriviti per salvare i progressi.
Esiste un ordine anche dentro lo stesso istante
Variazioni con lo stesso timestamp non avvengono senza una catena causale. Nella simulazione RTL a eventi i valori si stabilizzano dopo eventi attivi e aggiornamenti non bloccantiNonblocking Assegnazione RTL sequenziale con <=. Valuta il membro destro e pianifica l’aggiornamento, permettendo ai registri dello stesso fronte di usare lo stato precedente. Approfondisci. Nei componenti reali variano dopo clock-to-Q e ritardo combinatorioRitardo di propagazione Tempo dalla variazione d’ingresso all’assestamento corretto dell’uscita. Equivalenza logica e proprietà temporali sono distinte. Approfondisci. Distinguete i due modelli.
La tabella di previsione separa applicazione ingressi → valutazione combinatoria → acquisizione al fronte di salitaFronte di salita Passaggio del clock da 0 a 1, distinto dall’intero intervallo di livello CLK=1. Approfondisci → aggiornamento dello stato. Controllate nello strumento quando si applicano gli ingressi e si registrano i risultati.
Contano la pianificazione reale degli eventi e l'istante di registrazione. I quattro passi seguenti sono fasi da distinguere nella previsione, non quattro cicli di clock.
- Pilotare gli ingressi: Cambiare a, b e sel
- Valutazione combinatoria: y = sel ? b : a
- Fronte di salita: Acquisire y immediatamente prima del fronte
- Osservare dopo l’aggiornamento: Confrontare sampled_y
Calcolare attesi indipendenti
Calcolate y per ogni gruppo d'ingressi e indicate separatamente il fronte in cui raggiunge q. La prima riga discordante restringe la causa ad applicazione ingressi, funzione di selezione o memoria.
Distinguere transizioni e regime stabile
Con dati uguali, cambiare selezione deve mantenere lo stesso risultato finale, ma ritardi interni diversi possono generare un breve glitch. Viceversa, non ogni normale transizione è un glitch. Confronto logico delle forme d'onda e analisi temporale fisica rispondono a domande diverse.
Un testbench che cambia stimoli sullo stesso fronte del DUT e legge subito può creare una race. Separate pilotaggio e osservazione oppure usate sincronizzazione esplicita, come i clocking block. Il laboratorio DDS usa JSON d'ingresso e regole a clock singolo; non aggiungete un testbench #delay arbitrario.
Prova tu
Se alla fine y e sampled_y valgono entrambi 1, anche i cicli intermedi sono necessariamente corretti?
Leggi la spiegazione
No. Una selezione invertita o una memorizzazione in ritardo di un ciclo possono dare lo stesso finale se a=b=1. Confrontate gli attesi a ogni fronte e includete cambi di sel con a≠b.