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
endgenerateEl 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.
Desafío
IntermedioUsa 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;
endmoduleEsta 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
1RTL combinacional confiable
Los valores predeterminados evitan los latchesCodificadores de prioridadValidación one-hotDecodificación segura de caseRepaso: enrutador de solicitudes4RTL secuencial controlado
Prioridad de reinicio y habilitaciónContadores con saturaciónPipeline de datos y validaciónDetección de flancos muestreadosRepaso: contador de eventos7Proyecto - Monitor de muestras
Acumular muestrasAceptar muestras habilitadas2Anchos y aritmética con signo
Conservar los bits de acarreoComparaciones con signoDesplazamientos aritméticos a la derechaDesbordamiento y saturaciónRepaso: diferencia con signo3RTL reutilizable
Funciones combinacionalesParámetros seguros en anchuraBucles generateGenerate condicionalRepaso - Máscara de bits reutilizablePractica por tu cuenta: Compilador de Verilog online