Menu
Coddy logo textTech

Generate condicional

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

Un generate-if selecciona una estructura de hardware mediante un parameter constante. Solo se elabora una rama para una instancia determinada. Un if procedimental o una expresión condicional con una señal selecciona el comportamiento en tiempo de ejecución; no sustituye la configuración de generate.

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

generate
    if(INVERT) begin: inverted
        assign y = ~a;
    end else begin: direct
        assign y = a;
    end
endgenerate

El parameter elige qué controlador se construye para esta instancia.

Usa generate-if para la configuración constante y la selección RTL ordinaria para los controles en tiempo de ejecución.

challenge icon

Desafío

Intermedio

Usa generate condicional: MODE=0 pasa a sin cambios; MODE=1 invierte los ocho bits de a. La entrada b no se utiliza. MODE es 0 o 1. El banco de pruebas instancia ambas configuraciones e imprime y0 después y1.

Completa design.v y conserva los nombres de sus módulos y 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 terminada con un salto de línea.

Pruébalo tú mismo

module dut #(parameter MODE=0) (input [7:0] a,b, output [7:0] y);
    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