Menu
Coddy logo textTech

Accumula campioni

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

Crea un monitor riutilizzabile per un flusso di campioni senza segno. Accumulerai i valori, rispetterai i controlli di abilitazione e azzeramento, conterai i campioni accettati e segnalerai se viene raggiunta una soglia. Tutti e cinque i passaggi mantengono la stessa interfaccia del modulo e lo stesso banco di prova bloccato. Le uscite riservate acquisiranno il loro comportamento nei passaggi successivi.

challenge icon

Sfida

Difficile

Realizza un Sample Monitor in cinque passaggi. A ogni fronte di salita, rst sincrono azzera total; altrimenti aggiungi data senza segno a total. Usa il registro total a 16 bit. In questo primo passaggio en e clear non vengono usati e gli scenari mantengono en=1 e clear=0. count e alarm sono uscite riservate che restano a zero. Tutti i valori di input sono noti. Gli scenari contengono al massimo 40 fronti, quindi total 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 conserva i nomi e le porte del modulo. Il testbench.v bloccato fornisce le variazioni degli input e stampa le uscite dopo che si sono stabilizzate. 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 design. 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 clk,rst,en,clear, input [7:0] data, input [15:0] limit, output reg [15:0] total, output reg [3:0] count, output alarm);
    initial begin total=0;count=0;end
    assign alarm=0;
endmodule

Tutte le lezioni di Progettazione e verifica RTL

Esercitati da solo: Compilatore Verilog online