I valori predefiniti evitano i latch
Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 1 di 38.
Un'uscita combinatoria deve essere assegnata per ogni percorso di ingresso. Se un blocco always non assegna un'uscita, quell'uscita mantiene il valore precedente, il che può inferire un latch. Un'assegnazione default seguita da sovrascritture rende visibile la copertura.
Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.
always @* begin
y = 0;
if (en) y = data;
endIl default copre il percorso disabilitato, quindi l'uscita dipende solo dagli ingressi correnti.
Assegna ogni output combinatorio in ogni percorso; usa valori predefiniti prima delle sostituzioni condizionali.
Sfida
MedioImplementa un’uscita a 8 bit con abilitazione: quando en è uno, y è uguale ad a; altrimenti y è zero. Assegna y in ogni percorso combinatorio. Colonne di output: y. Tutti i valori di stimolo sono valori binari noti.
Completa design.v e conserva i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni degli ingressi e stampa gli output dopo che si sono stabilizzati. Sceglie uno scenario usando un argomento del simulatore, come +CASE=1; non è richiesto alcun input standard. Non aggiungere stampe, ritardi o terminazioni della simulazione al progetto. L’output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminata da un carattere di nuova riga.
Provalo tu
module dut (input en, input [7:0] a, output reg [7:0] y);
// Sostituisci questo segnaposto con il tuo progetto.
initial y = 0;
endmoduleQuesta lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Progettazione e verifica RTL
1RTL combinatorio affidabile
I valori predefiniti evitano i latchEncoder di prioritàConvalida one-hotDecodifica sicura dei caseRiepilogo - Router delle richieste2Larghezze e aritmetica con segno
Preservare i bit di riportoConfronti con segnoShift aritmetici a destraOverflow e saturazioneRiepilogo - Differenza con segnoEsercitati da solo: Compilatore Verilog online