Menu
Coddy logo textTech

Primitivas de Compuertas Integradas

Parte de la sección Fundamentos del Journey de Verilog de Coddy — lección 39 de 90.

Verilog tiene primitivas de compuerta integradas que le permiten describir circuitos lógicos utilizando símbolos de compuerta reales. Esto se llama modelado estructural: usted construye circuitos conectando compuertas, tal como si estuviera dibujando un esquema.

Las primitivas de compuerta son palabras clave predefinidas que modelan compuertas lógicas básicas. En lugar de escribir una expresión como assign out = a & b, se instancia una compuerta:

and(out, a, b);   // Compuerta AND con salida out, entradas a y b

Sintaxis General

gate_type (output, input1, input2, ...);
  • El primer argumento es siempre la salida
  • Los siguientes argumentos son entradas (1 o más, dependiendo de la compuerta)

Primitivas de Compuertas Disponibles

Tipo de CompuertaPalabra ClaveNúmero de Entradas
ANDand2 o más
ORor2 o más
NOTnot1
NANDnand2 o más
NORnor2 o más
XORxor2 o más
XNORxnor2 o más

Cómo funcionan las primitivas de compuerta

Cuando escribes and(out, a, b), Verilog crea una compuerta AND que maneja continuamente out con el resultado de a & b. Siempre que a o b cambien, out se actualiza inmediatamente — igual que una compuerta real.

Primitivas de compuerta vs Asignación continua

Ambos métodos producen el mismo hardware:

// Primitiva de compuerta
and(out, a, b);

// Asignación continua (mismo resultado)
assign out = a & b;

Las primitivas de compuerta son útiles cuando se desea describir un circuito como una colección de compuertas (estilo estructural). La asignación continua es mejor para el estilo conductual (expresiones).

challenge icon

Desafío

Qué hacer:

  1. Añade la primitiva de puerta correcta para que este circuito funcione. El módulo debe dar como salida el AND de las entradas a y b. El puerto de salida ya se llama c.

Hoja de referencia

Las primitivas de puerta en Verilog permiten el modelado estructural mediante la instanciación directa de puertas lógicas.

Sintaxis: El primer argumento es siempre la salida, seguido de las entradas:

gate_type(output, input1, input2, ...);

Primitivas disponibles:

PuertaPalabra claveEntradas
ANDand2+
ORor2+
NOTnot1
NANDnand2+
NORnor2+
XORxor2+
XNORxnor2+

Las primitivas de puerta y assign producen hardware equivalente:

and(out, a, b);       // estructural (primitiva de puerta)
assign out = a & b;   // conductual (asignación continua)

Pruébalo tú mismo

module gate_challenge (
  input a,
  input b,
  output c
);
  
  // TODO: Añadir la primitiva de puerta correcta
  // La salida c debe ser a AND b

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 Fundamentos