Menu
Coddy logo textTech

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;
end

Il 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.

challenge icon

Sfida

Medio

Implementa 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;
endmodule
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Progettazione e verifica RTL

Esercitati da solo: Compilatore Verilog online