Menu
Coddy logo textTech

Compuertas XOR XNOR

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

Esta lección cubre dos puertas lógicas adicionales: XOR (OR exclusivo) y XNOR (NOR exclusivo). Estas puertas son útiles para comparar bits y para el control de paridad.

Compuerta XOR

La compuerta XOR devuelve 1 cuando las entradas son diferentes.

Tabla de verdad (2 entradas):

about
000
011
101
110

Primitiva de compuerta Verilog:

xor(out, a, b);

Equivalente de asignación continua:

assign out = a ^ b;

Compuerta XNOR

La compuerta XNOR produce una salida de 1 cuando las entradas son iguales. Es lo opuesto a XOR.

Tabla de verdad (2 entradas):

about
001
010
100
111

Primitiva de compuerta Verilog:

xnor(out, a, b);

Equivalente de asignación continua:

assign out = a ~^ b;   // o ~(a ^ b)

Entradas Múltiples

Las compuertas XOR y XNOR pueden tener más de 2 entradas. La salida es:

  • XOR: 1 si un número impar de entradas son 1
  • XNOR: 1 si un número par de entradas son 1
xor(out, a, b, c);      // XOR de 3 entradas
xnor(out, p, q, r, s);  // XNOR de 4 entradas

Ejemplo (XOR de 3 entradas):

abcout
0000
0011
0101
0110
1001
1010
1100
1111

Usos comunes

UsoEjemplo
Comparar si dos bits son diferentesxor(diff, a, b)
Comparar si dos bits son igualesxnor(same, a, b)
Generación de paridad (número impar de 1s)xor(parity, data[0], data[1], data[2], data[3])
Comprobación de paridad (número par de 1s)xnor(parity, data[0], data[1], data[2], data[3])

Ejemplo de código

module xor_xnor_demo (
  input a, b,
  output xor_out,
  output xnor_out
);
  xor(xor_out, a, b);
  xnor(xnor_out, a, b);
endmodule

Tabla de resumen

CompuertaSalida 1 cuandoPrimitivaOperador
XORLas entradas son diferentesxor(out, a, b)^
XNORLas entradas son igualesxnor(out, a, b)~^
challenge icon

Desafío

Añade las primitivas de puerta que faltan basándote en las tareas.

Qué hacer:

  1. Crea una puerta XOR con la salida xor_result y las entradas x e y
  2. Crea una puerta XNOR con la salida xnor_result y las entradas x e y

Hoja de referencia

XOR produce 1 cuando las entradas son diferentes. XNOR produce 1 cuando las entradas son iguales.

PuertaSalida 1 cuandoPrimitivaOperador
XORLas entradas son diferentesxor(out, a, b)^
XNORLas entradas son igualesxnor(out, a, b)~^

Para múltiples entradas: XOR produce 1 si un número impar de entradas son 1; XNOR produce 1 si un número par de entradas son 1.

xor(out, a, b, c);      // XOR de 3 entradas
xnor(out, p, q, r, s);  // XNOR de 4 entradas

Pruébalo tú mismo

module xor_xnor_challenge (
  input x,
  input y,
  output xor_result,
  output xnor_result
);
  
  // TODO: Agregar compuerta XOR (xor_result = x ^ y)
  
  // TODO: Agregar compuerta XNOR (xnor_result = x ~^ y)

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