Menu
Coddy logo textTech

Valores padrão evitam latches

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

Uma saída combinacional deve ser atribuída para cada caminho de entrada. Se um bloco always deixar de atribuir uma saída, essa saída manterá seu valor antigo, o que pode inferir um latch. Uma atribuição default seguida de substituições torna a cobertura visível.

Trecho relevante; as declarações e conexões ao redor são fornecidas no desafio.

always @* begin
    y = 0;
    if (en) y = data;
end

O default abrange o caminho desabilitado, portanto a saída depende apenas das entradas atuais.

Atribua cada saída combinacional em todos os caminhos; use valores padrão antes das substituições condicionais.

challenge icon

Desafio

Médio

Implemente uma saída de 8 bits controlada: quando en for um, y será igual a a; caso contrário, y será zero. Atribua um valor a y em todos os caminhos combinacionais. Colunas de saída: y. 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 uma 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 en, input [7:0] a, output reg [7:0] y);
    // Substitua este placeholder pelo seu design.
    initial y = 0;
endmodule
quiz iconTeste seus conhecimentos

Esta 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

Pratique por conta própria: Compilador de Verilog online