Cobertura de Limites e Controle
Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 29 de 38.
Passar em alguns testes é diferente de exercitar os cenários importantes. Acompanhe se os valores mínimo, máximo e comuns foram testados e se controles concorrentes ocorreram juntos. Um sinalizador de cobertura registra que um case foi observado; ele não prova que o design respondeu corretamente. Combine a cobertura com verificações de resultado.
Trecho relevante; as declarações e conexões ao redor são fornecidas no desafio.
if(value==0) seen[0]=1;
else if(value==15) seen[1]=1;
else seen[2]=1;A máscara de bits registra quais categorias apareceram sem substituir ocorrências anteriores.
Combine a cobertura de limites e de combinações de controle com verificações independentes de correção.
Desafio
MédioRegistre três compartimentos de cobertura de entrada em seen sem limpar os acertos anteriores: o bit 0 registra value=0, o bit 1 registra value=15 e o bit 2 registra valores de 1 a 14. As entradas contêm bits conhecidos. O chamador inicializa seen=0 antes de um cenário. Este módulo contém uma task exclusiva para simulação, chamada pelo testbench bloqueado. Colunas de saída: seen em decimal.
Complete design.v e preserve os nomes e as portas dos módulos. O testbench.v bloqueado fornece alterações nas entradas 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. Mantenha a impressão e o controle do cenário no testbench bloqueado; implemente apenas o corpo da task. A saída esperada é uma linha de valores decimais por observação, separados por um espaço e terminados por uma nova linha.
Experimente você mesmo
module dut;
task observe;
input [3:0] value;
inout [2:0] seen;
begin
// Complete a tarefa do verificador.
seen=seen;
end
endtask
endmoduleEsta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas 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 Sinal3RTL Reutilizável
Funções CombinacionaisParâmetros Seguros quanto à LarguraLaços de GeraçãoGeração CondicionalRecapitulação - Máscara de Bits Reutilizável6Testbenches com Autoverificação
Verificações de Quatro EstadosTarefas de Verificação ReutilizáveisModelos de Referência e PontuaçõesCobertura de Limites e ControleRecapitulação - Auditoria do SomadorPratique por conta própria: Compilador de Verilog online