Menu
Coddy logo textTech

Contar Amostras Aceitas

Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 34 de 38.

challenge icon

Desafio

Difícil

Construa um Sample Monitor em cinco etapas. Acompanhe as amostras aceitas em count: incremente a cada borda de en que não esteja reiniciando ou limpando, saturando em 15. rst ou clear reinicia count e também total. Amostras aceitas com valor zero ainda incrementam count. Mantenha tudo das etapas anteriores, incluindo seu testbench e o comportamento de saída anterior. Todos os valores de entrada são conhecidos. Os cenários contêm no máximo 40 bordas, portanto total cabe em 16 bits. O testbench fixo imprime total para os cenários 1-9, total e count para os cenários 10-12, e total, count e alarm para os cenários 13-15. Somente os cenários habilitados para esta etapa são avaliados.

Complete design.v e preserve os nomes de seus módulos e portas. O testbench.v bloqueado fornece as alterações de entrada e imprime as saídas depois que elas se estabilizam. Ele escolhe um cenário usando um argumento do simulador, como +CASE=1; não é necessária entrada padrão. Não adicione impressão, atrasos ou encerramento da simulação ao design. A saída esperada é uma linha de valores decimais por observação, separados por um espaço e terminando com uma nova linha.

Experimente você mesmo

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

Todas as lições de Design e Verificação RTL

Pratique por conta própria: Compilador de Verilog online