Primitivas de Compuertas Integradas
Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 39 de 90.
Verilog tiene gate primitives integradas que le permiten describir circuitos lógicos utilizando símbolos de puertas reales. Esto se llama modelado structural: usted construye circuitos conectando gates, de la misma manera que dibuja un esquemático.
Las primitivas gate son palabras clave predefinidas que modelan puertas lógicas básicas. En lugar de escribir una expresión como assign out = a & b, instancias una puerta:
and(out, a, b); // Puerta AND con salida out, entradas a y bSintaxis general
gate_type (output, input1, input2, ...);- El primer argumento es siempre la salida (output)
- Los siguientes argumentos son las entradas (inputs) (1 o más, dependiendo de la puerta)
Primitivas de puertas disponibles
| Tipo de puerta | Palabra clave | Número de entradas |
|---|---|---|
| AND | and | 2 o más |
| OR | or | 2 o más |
| NOT | not | 1 |
| NAND | nand | 2 o más |
| NOR | nor | 2 o más |
| XOR | xor | 2 o más |
| XNOR | xnor | 2 o más |
Cómo funcionan las primitivas gate
Cuando escribes and(out, a, b), Verilog crea una puerta AND que impulsa de forma continuous a out con el result de a & b. Cada vez que a o b cambia, out se actualiza inmediatamente, igual que una puerta real.
Gate Primitives vs Continuous Assignment
Ambos métodos producen el mismo hardware:
// Primitiva de compuerta
and(out, a, b);
// Asignación continua (mismo resultado)
assign out = a & b;Los Gate primitive son útiles cuando quieres describir un circuito como una colección de gates (estilo structural). Continuous assignment es mejor para el estilo behavioral (expresiones).
Desafío
Qué hacer:
- Agrega el
gateprimitivecorrectpara que este circuito funcione. Elmoduleshouldemitir la salida AND de lasinputsayb. El puerto deoutputya se llamac.
Pruébalo tú mismo
module gate_challenge (
input a,
input b,
output c
);
// TODO: Añade la primitiva de compuerta correcta
// La salida c debería ser a AND b
endmoduleEsta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
1Introducción
¿Qué es Verilog?Hardware vs SoftwareNiveles de abstracción de diseñoTu primer móduloComentarios4Operadores Parte 1
Operadores aritméticosOperador de móduloOperadores de comparaciónRepaso - Matemáticas simplesOperadores bit a bit7Asignación y Compuertas
Asignación ContinuaAsignación con OperadoresPrimitivas de Compuertas IntegradasCompuertas AND OR NOTCompuertas XOR XNORResumen - Circuito de Compuertas Lógicas10Toma de decisiones
Sentencia IfIf - ElseRepaso - Comparador simpleSentencia CaseCasex y CasezRepaso - Diseño de ALU5Operadores Parte 2
Operadores lógicosOperadores de reducciónOperadores de desplazamientoOperador de concatenaciónOperador condicionalResumen - Desafío de operadores3Sistema de numeración
Representación binariaNúmeros con tamaño definidoNúmeros sin tamaño definidoNúmeros negativosValores especiales X y ZResumen - Formatos de números6Módulos
Estructura del móduloPuertos de entrada y salidaPuertos InoutInstanciación de módulosMapeo de puertos por nombreMapeo de puertos por ordenResumen: Construye un módulo