Disparar um Alarme de Limite
Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 35 de 38.
Desafio
DifícilConstrua um Sample Monitor ao longo de cinco etapas. Ative o alarme combinacional sempre que total for maior ou igual ao limite sem sinal, incluindo a igualdade. O alarm refletirá o total atualizado após cada borda e acompanhará as alterações em limit. limit=0 fará com que alarm fique ativo mesmo quando total=0. Preserve todo o comportamento de acumulação, enable, clear e contagem. 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 serão avaliados.
Complete design.v e preserve os nomes de módulo e as portas. O testbench.v bloqueado fornece alterações nas entradas e imprime as saídas após elas se estabilizarem. 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 || clear)begin total<=0;count<=0;end
else if(en)begin
total<=total+data;
if(count!=15)count<=count+4'd1;
end
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