Menu
Coddy logo textTech

Decodifica sicura dei case

Fa parte della sezione Progettazione e verifica RTL del percorso Verilog di Coddy. Lezione 4 di 38.

Usa un'istruzione case ordinaria per i codici di controllo esatti. Fornisci un comportamento default per i codici non supportati e usa assign per tutti gli output. La decodifica con caratteri jolly tramite casex può nascondere i bit di controllo sconosciuti nella simulazione, quindi non è adatta quando vuoi che gli stati sconosciuti restino visibili durante il debug.

Estratto pertinente; le dichiarazioni e i collegamenti circostanti sono forniti nella sfida.

always @* begin
    y = 0;
    invalid = 0;
    case (op)
        0: y = a & b;
        1: y = a | b;
        default: invalid = 1;
    endcase
end

I codici non supportati producono uno stato esplicito anziché mantenere un output precedente.

Definisci esplicitamente i codici di controllo non supportati ed evita di mascherare i controlli sconosciuti con casex.

challenge icon

Sfida

Medio

Implementa un’unità logica a 8 bit: op 0 calcola a AND b, op 1 calcola a OR b, op 2 calcola a XOR b e op 3 restituisce zero con invalid impostato a uno. invalid è zero per le operazioni supportate. Colonne di output: y, invalid. Tutti i valori di stimolo sono valori binari noti.

Completa design.v e conserva i nomi e le porte del modulo. Il testbench.v bloccato fornisce le variazioni degli input e stampa gli output dopo che si sono stabilizzati. Sceglie uno scenario usando un argomento del simulatore come +CASE=1; non è necessario alcun input standard. Non aggiungere stampe, ritardi o terminazioni della simulazione al design. L’output previsto è una riga di valori decimali per ogni osservazione, separati da uno spazio e terminati da un carattere di nuova riga.

Provalo tu

module dut (input [1:0] op, input [7:0] a, input [7:0] b, output reg [7:0] y, output reg invalid);
    // Sostituisci questo segnaposto con il tuo progetto.
    initial y = 0;
    initial invalid = 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