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.
Desafio
DifícilConstrua 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;
endmoduleTodas as lições de Design e Verificação RTL
1RTL Combinacional Confiável
Valores padrão evitam latchesCodificadores de prioridadeValidação One-HotDecodificação segura de caseRecapitulação - Roteador de requisições4RTL Sequencial Controlado
Prioridade de Reset e EnableContadores SaturantesPipeline de Dados e ValidDetecção de Bordas AmostradasRecapitulação - Contador de Eventos7Projeto - Monitor de Amostras
Acumular AmostrasAceitar Amostras Habilitadas2Larguras e Aritmética com Sinal
Preservando Bits de CarryComparações com SinalDeslocamentos Aritméticos à DireitaOverflow e SaturaçãoRecapitulação — Diferença com SinalPratique por conta própria: Compilador de Verilog online