Menu
Coddy logo textTech

Laços de Geração

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

Um loop generate-for cria hardware repetido durante a elaboração. Seu índice genvar não é um registrador de runtime que muda. Blocos generate nomeados fornecem nomes hierárquicos previsíveis para as instâncias ou atribuições criadas. Os limites do loop devem ser constantes determinadas em tempo de elaboração.

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

genvar i;
generate
    for(i=0;i<WIDTH;i=i+1) begin: bitcell
        assign y[i] = a[i] ^ b[i];
    end
endgenerate

Cada iteração elabora uma operação separada em nível de bit, em vez de consumir um ciclo de clock.

Use genvar com limites constantes para descrever uma estrutura repetida durante a elaboração.

challenge icon

Desafio

Médio

Use um loop generate-for nomeado com genvar i para instanciar uma atribuição contínua por bit, produzindo y[i] = a[i] XOR b[i]. WIDTH é positivo. O testbench bloqueado instancia valores de WIDTH 1, 4 e 8, usando os bits menos significativos de a e b para instâncias mais estreitas. As colunas de saída são y1, y4 e y8 em decimal.

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; nenhuma entrada padrão é necessária. 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 terminados por uma nova linha.

Experimente você mesmo

module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
    // Implemente o circuito parametrizado.
    assign 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