Altifigence Academy

2 / 37 · Concetto

Segnali e porte: contratto di larghezza, direzione e tempo

Leggere le interfacce distinguendo i criteri di verifica delle uscite combinatorie e di stato.

Leggere l'elenco delle porte come contratto del circuito

input logic [7:0] data è una porta che trasferisce otto bit contemporaneamente, non otto valori in sequenza. Il tipo logic da solo non crea memoria. Il comportamento hardware dipende dal pilotaggio mediante assegnazione combinatoria o blocco sequenziale attivato da un fronte.

Oltre a larghezza e direzione, controllate quando il segnale è valido, chi lo pilota e quale valore assume dopo reset. Senza queste informazioni, moduli corretti singolarmente possono formare un sistema errato.

Due tipi di uscita nello stesso MUX

Le esercitazioni osservano insieme il risultato y e il suo valore memorizzato sampled_y.

y(t)=s(t)‾a(t)+s(t)b(t)y(t)=\overline{s(t)}a(t)+s(t)b(t)
qk+1=y(tk−)q_{k+1}=y(t_k^-)

La prima formula è combinatoria; la seconda è un modello sincrono ideale che memorizza y stabile subito prima del fronte. Confrontare sempre entrambe le uscite con gli ingressi dello stesso istante farebbe apparire errato un registroRegistro Memorizza uno stato di più bit. I registri sincroni del corso acquisiscono gli ingressi specificati al fronte di clock. Approfondisci corretto.

SystemVerilog
assign y = sel ? b : a;
always_ff @(posedge clk) sampled_y <= y;

Il simulatore ordina gli eventi anche all'interno dello stesso istante. I componenti reali hanno setupSetup Tempo minimo prima del fronte di acquisizione in cui i dati devono essere stabili. Una violazione rende non garantito il valore memorizzato. Approfondisci, hold e ritardo clock-to-Q. Le formule non cancellano questa differenza: sono il punto di partenza per definire l'istante di osservazione nella verifica funzionale.

Le frecce indicano dipendenze dei dati. Cambiando a, b o sel varia prima y, mentre sampled_y acquisisce un nuovo valore solo al fronte di salitaFronte di salita Passaggio del clock da 0 a 1, distinto dall’intero intervallo di livello CLK=1. Approfondisci.

Confine fra uscita combinatoria e uscita memorizzata
  1. a · b · sel: Ingressi presenti simultaneamente
  2. MUX → y: Calcolare con le linee di selezione attuali
  3. DFF → sampled_y: Memorizzare y al fronte di salita

Domande da verificare

  • sel è un ingresso 0/1 definito o un segnale esterno asincrono?
  • Dopo una variazione di y, il confronto con sampled_y avviene dopo il prossimo fronte valido?
  • Il valore iniziale di sampled_y deriva dal resetReset Controllo che riporta allo stato iniziale specificato. Occorre definirne sincronicità e priorità rispetto agli altri controlli. Approfondisci o dalle impostazioni dello strumento?

L'inizializzazione esplicita del laboratorio rende riproducibile il modello 0/1. Non garantisce lo stato all'accensione di un chip reale.

Prova tu

Fra due fronti a passa da 0 a 1 mentre sel resta 0. Quando cambiano y e sampled_y?

Leggi la spiegazione

y cambia dopo la valutazione o propagazione del cammino combinatorio. sampled_y si aggiorna al successivo fronte di salita che acquisisce quel valore. Le variazioni vicine al fronte pongono problemi reali di setup/hold: il modello semplice non ne dimostra la sicurezza.

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