Menu
Coddy logo textTech

Limpar a Janela Atual

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

challenge icon

Desafio

Difícil

Construa um Sample Monitor em cinco etapas. Adicione clear síncrono com prioridade após rst e antes de en. clear reinicia total sem aceitar data naquela borda, mesmo quando en=1. Mantenha o comportamento de reset e enable. 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, então o 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. Apenas os cenários habilitados para esta etapa são avaliados.

Complete design.v e preserve seus nomes de módulo e portas. O testbench.v bloqueado fornece as mudanças 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; nenhuma entrada padrão é necessária. Não adicione impressão, atrasos ou terminação de 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(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