Altifigence Academy

23 / 37 · Concetto

Campionamento e causalità nelle forme d’onda

Leggere le forme d’onda separando assestamento combinatorio, acquisizione e ordine degli eventi.

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.

Separare applicazione degli stimoli e istante di osservazione
  1. Pilotare gli ingressi: Cambiare a, b e sel
  2. Valutazione combinatoria: y = sel ? b : a
  3. Fronte di salita: Acquisire y immediatamente prima del fronte
  4. Osservare dopo l’aggiornamento: Confrontare sampled_y

Calcolare attesi indipendenti

yk=sk‾ak+skbk,qk+1=yky_k=\overline{s_k}a_k+s_kb_k,\qquad q_{k+1}=y_k

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.

La scelta vale per questo browser. Puoi modificarla in qualsiasi momento dal piè di pagina.