Menu
Coddy logo textTech

Conta i campioni accettati

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

challenge icon

Sfida

Difficile

Costruisci un Sample Monitor in cinque passaggi. Tieni traccia dei campioni accettati in count: incrementalo a ogni fronte di en che non comporta un reset o una cancellazione, saturando a 15. rst o clear azzera count e total. Anche i campioni accettati con valore zero incrementano count. Mantieni tutto ciò che è stato realizzato nei passaggi precedenti, inclusi il relativo testbench e il comportamento di output precedente. Tutti i valori di input sono noti. Gli scenari contengono al massimo 40 fronti, quindi il totale rientra in 16 bit. Il testbench fisso stampa total per gli scenari 1-9, total e count per gli scenari 10-12, e total, count e alarm per gli scenari 13-15. Vengono valutati solo gli scenari abilitati per questo passaggio.

Completa design.v e mantieni invariati i nomi dei moduli e le porte. Il testbench.v bloccato fornisce le variazioni degli input e stampa gli output dopo che si sono stabilizzati. Seleziona uno scenario usando un argomento del simulatore come +CASE=1; non è richiesto alcun input standard. Non aggiungere stampe, ritardi o terminazione della simulazione al design. L’output atteso consiste in 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 clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    always @(posedge clk)begin
        if(rst)total<=0;else if(clear)total<=0;else if(en)total<=total+data;
        count<=0;
    end
    assign alarm=0;
endmodule

Tutte le lezioni di Progettazione e verifica RTL

Esercitati da solo: Compilatore Verilog online