Menu
Coddy logo textTech

Acumular Amostras

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

Construa um monitor reutilizável para um fluxo de amostras sem sinal. Você acumulará valores, respeitará os controles de habilitação e limpeza, contará as amostras aceitas e informará se um limite foi atingido. Todas as cinco etapas mantêm a mesma interface do módulo e o testbench bloqueado. As saídas reservadas adquirem seu comportamento nas etapas posteriores.

challenge icon

Desafio

Difícil

Construa um Sample Monitor em cinco etapas. Em cada borda de subida, o rst síncrono limpa o total; caso contrário, adicione os dados sem sinal ao total. Use o registrador de total de 16 bits. Nesta primeira etapa, en e clear não são utilizados, e os cenários mantêm en=1 e clear=0. count e alarm são saídas reservadas que permanecem em zero. Todos os valores de entrada são conhecidos. Os cenários contêm no máximo 40 bordas, portanto 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.

Conclua 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 após sua estabilização. 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 término 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);
    initial begin total=0;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