Menu
Coddy logo textTech

Portes XOR XNOR

Fait partie de la section Fondamentaux du Journey Verilog de Coddy — leçon 41 sur 90.

Cette leçon couvre deux portes logiques supplémentaires : XOR (OU exclusif) et XNOR (NON-OU exclusif). Ces portes sont utiles pour comparer des bits et pour le contrôle de parité.

Porte XOR

La porte XOR produit en sortie 1 lorsque les entrées sont différentes.

Table de vérité (2 entrées) :

about
000
011
101
110

Primitive de porte Verilog :

xor(out, a, b);

Équivalent d'affectation continue :

assign out = a ^ b;

Porte XNOR

La porte XNOR produit une sortie de 1 lorsque les entrées sont identiques. C'est l'opposé de la porte XOR.

Table de vérité (2 entrées) :

about
001
010
100
111

Primitive de porte Verilog :

xnor(out, a, b);

Équivalent d'affectation continue :

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

Entrées multiples

Les portes XOR et XNOR peuvent avoir plus de 2 entrées. La sortie est :

  • XOR : 1 si un nombre impair d'entrées valent 1
  • XNOR : 1 si un nombre pair d'entrées valent 1
xor(out, a, b, c);      // XOR à 3 entrées
xnor(out, p, q, r, s);  // XNOR à 4 entrées

Exemple (XOR à 3 entrées) :

abcout
0000
0011
0101
0110
1001
1010
1100
1111

Utilisations courantes

UtilisationExemple
Comparer si deux bits sont différentsxor(diff, a, b)
Comparer si deux bits sont identiquesxnor(same, a, b)
Génération de parité (nombre impair de 1)xor(parity, data[0], data[1], data[2], data[3])
Vérification de parité (nombre pair de 1)xnor(parity, data[0], data[1], data[2], data[3])

Exemple de code

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

Tableau récapitulatif

PorteSortie à 1 quandPrimitiveOpérateur
XORLes entrées sont différentesxor(out, a, b)^
XNORLes entrées sont identiquesxnor(out, a, b)~^
challenge icon

Défi

Ajoutez les primitives de porte manquantes en fonction des tâches.

Ce qu'il faut faire :

  1. Créez une porte XOR avec la sortie xor_result et les entrées x et y
  2. Créez une porte XNOR avec la sortie xnor_result et les entrées x et y

Aide-mémoire

Le XOR produit 1 lorsque les entrées sont différentes. Le XNOR produit 1 lorsque les entrées sont identiques.

PorteSortie à 1 quandPrimitiveOpérateur
XORLes entrées sont différentesxor(out, a, b)^
XNORLes entrées sont identiquesxnor(out, a, b)~^

Pour des entrées multiples : le XOR produit 1 si un nombre impair d'entrées est à 1 ; le XNOR produit 1 si un nombre pair d'entrées est à 1.

xor(out, a, b, c);      // XOR à 3 entrées
xnor(out, p, q, r, s);  // XNOR à 4 entrées

Essayez vous-même

module xor_xnor_challenge (
  input x,
  input y,
  output xor_result,
  output xnor_result
);
  
  // À FAIRE : Ajouter une porte XOR (xor_result = x ^ y)
  
  // À FAIRE : Ajouter une porte XNOR (xnor_result = x ~^ y)

endmodule
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Fondamentaux