Menu
Coddy logo textTech

Parâmetros Seguros quanto à Largura

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

Os fundamentos introduziram larguras configuráveis. O RTL reutilizável também deve lidar com a menor largura válida, dimensionar deliberadamente as expressões intermediárias e evitar posições de bit codificadas diretamente. A replicação {WIDTH{1'b1}} cria uma máscara com largura correspondente. Parâmetros são constantes de elaboração, não controles de tempo de execução.

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

wire [WIDTH:0] sum;
assign sum = {1'b0,a} + {1'b0,b};
assign y = sum[WIDTH] ? {WIDTH{1'b1}} : sum[WIDTH-1:0];

Tanto a posição do carry quanto o valor de saturação se adaptam à largura configurada.

Teste a largura legal mínima e derive cada fatia e constante dependente da largura a partir dos parâmetros.

challenge icon

Desafio

Médio

Construa um incrementador de WIDTH bits que retorne os WIDTH bits menos significativos de a+1. A entrada b não é utilizada. O mesmo módulo deve funcionar tanto para WIDTH=1 quanto para larguras maiores. WIDTH é positivo. O testbench bloqueado instancia valores de WIDTH 1, 4 e 8, usando os bits menos significativos de a e b para as instâncias mais estreitas. As colunas de saída são y1, y4 e y8 em decimal.

Conclua 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 #(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