Menu
Coddy logo textTech

Bucles generate

Parte de la sección Diseño y verificación RTL del Journey de Verilog de Coddy. Lección 13 de 38.

Un bucle generate-for crea hardware repetido durante la elaboración. Su índice genvar no es un registro de ejecución que cambie. Los bloques generate con nombre proporcionan nombres jerárquicos predecibles para las instancias o asignaciones creadas. Los límites del bucle deben ser constantes determinadas durante la elaboración.

Extracto relevante; las declaraciones y conexiones circundantes se proporcionan en el desafío.

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

Cada iteración desarrolla una operación independiente a nivel de bit en lugar de consumir un ciclo de reloj.

Usa genvar con límites constantes para describir la estructura repetida en la elaboración.

challenge icon

Desafío

Intermedio

Usa un bucle generate-for con nombre, con genvar i, para instanciar una asignación continua por bit y producir y[i] = a[i] XOR b[i]. WIDTH es positivo. El banco de pruebas bloqueado instancia los valores 1, 4 y 8 de WIDTH, usando los bits bajos de a y b para las instancias más estrechas. Las columnas de salida son y1, y4 y y8 en decimal.

Completa design.v y conserva los nombres de sus módulos y sus puertos. El testbench.v bloqueado proporciona cambios en las entradas e imprime las salidas después de que se estabilicen. Elige un escenario mediante un argumento del simulador como +CASE=1; no se requiere entrada estándar. No añadas impresiones, retardos ni terminación de la simulación al diseño. La salida esperada es una fila de valores decimales por observación, separados por un espacio y terminados con un salto de línea.

Pruébalo tú mismo

module dut #(parameter WIDTH=4) (input [WIDTH-1:0] a,b, output [WIDTH-1:0] y);
    // Implementa el circuito parametrizado.
    assign y = 0;
endmodule
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Diseño y verificación RTL

Practica por tu cuenta: Compilador de Verilog online