Validação One-Hot
Parte da seção Design e Verificação RTL do Journey de Verilog da Coddy. Lição 3 de 38.
Os dados one-hot têm exatamente um bit ativado. Um decodificador gera esses dados, enquanto a validação verifica os dados recebidos antes de usá-los. Para valores binários conhecidos, um valor diferente de zero é one-hot quando bits & (bits - 1) é zero. Esta seção não usa esse atalho para classificar X ou Z.
Trecho relevante; as declarações e conexões ao redor são fornecidas no desafio.
assign one_hot = (bits != 0) && ((bits & (bits - 1)) == 0);A verificação de não zero exclui o estado ocioso; o truque de bits rejeita vários bits definidos.
Diferencie zero, exatamente um bit definido e vários bits definidos ao validar solicitações.
Desafio
MédioPara bits de entrada conhecidos de 4 bits, defina valid como ativo somente quando exatamente um bit estiver em nível alto. Use a verificação de não zero junto com bits & (bits - 1). Colunas de saída: valid. Todos os valores de estímulo são valores binários conhecidos.
Complete design.v e preserve os nomes e as portas do módulo. 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. 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 [3:0] bits, output valid);
// Substitua este placeholder pelo seu design.
assign valid = 0;
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 SinalPratique por conta própria: Compilador de Verilog online