Menu
Coddy logo textTech

XOR XNOR Gatter

Teil des Abschnitts Grundlagen der Verilog-Journey von Coddy — Lektion 41 von 90.

Diese Lektion behandelt zwei zusätzliche Logikgatter: XOR (exklusives ODER) und XNOR (exklusives NOR). Diese Gatter sind nützlich für den Vergleich von Bits und die Paritätsprüfung.

XOR-Gatter

Das XOR-Gatter gibt 1 aus, wenn die Eingänge verschieden sind.

Wahrheitstabelle (2 Eingänge):

about
000
011
101
110

Verilog-Gatter-Primitiv:

xor(out, a, b);

Äquivalent zur kontinuierlichen Zuweisung:

assign out = a ^ b;

XNOR-Gatter

Das XNOR-Gatter gibt 1 aus, wenn die Eingänge gleich sind. Es ist das Gegenteil von XOR.

Wahrheitstabelle (2 Eingänge):

about
001
010
100
111

Verilog-Gatter-Primitiv:

xnor(out, a, b);

Äquivalent zur kontinuierlichen Zuweisung:

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

Mehrere Eingänge

XOR- und XNOR-Gatter können mehr als 2 Eingänge haben. Der Ausgang ist:

  • XOR: 1, wenn eine ungerade Anzahl von Eingängen 1 ist
  • XNOR: 1, wenn eine gerade Anzahl von Eingängen 1 ist
xor(out, a, b, c);      // 3-Eingang-XOR
xnor(out, p, q, r, s);  // 4-Eingang-XNOR

Beispiel (3-Eingang-XOR):

abcout
0000
0011
0101
0110
1001
1010
1100
1111

Häufige Anwendungen

AnwendungBeispiel
Vergleichen, ob zwei Bits unterschiedlich sindxor(diff, a, b)
Vergleichen, ob zwei Bits gleich sindxnor(same, a, b)
Paritätsgenerierung (ungerade Anzahl von 1en)xor(parity, data[0], data[1], data[2], data[3])
Paritätsprüfung (gerade Anzahl von 1en)xnor(parity, data[0], data[1], data[2], data[3])

Codebeispiel

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

Zusammenfassungstabelle

GatterAusgang 1, wennPrimitivOperator
XOREingänge unterschiedlich sindxor(out, a, b)^
XNOREingänge gleich sindxnor(out, a, b)~^
challenge icon

Aufgabe

Fügen Sie die fehlenden Gatter-Primitive basierend auf den Aufgaben hinzu.

Was zu tun ist:

  1. Erstellen Sie ein XOR-Gatter mit dem Ausgang xor_result und den Eingängen x und y
  2. Erstellen Sie ein XNOR-Gatter mit dem Ausgang xnor_result und den Eingängen x und y

Spickzettel

XOR gibt 1 aus, wenn die Eingänge unterschiedlich sind. XNOR gibt 1 aus, wenn die Eingänge gleich sind.

GatterAusgang 1 wennPrimitivOperator
XOREingänge unterschiedlich sindxor(out, a, b)^
XNOREingänge gleich sindxnor(out, a, b)~^

Bei mehreren Eingängen: XOR gibt 1 aus, wenn eine ungerade Anzahl von Eingängen 1 ist; XNOR gibt 1 aus, wenn eine gerade Anzahl von Eingängen 1 ist.

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

Probier es selbst

module xor_xnor_challenge (
  input x,
  input y,
  output xor_result,
  output xnor_result
);
  
  // TODO: XOR-Gatter hinzufügen (xor_result = x ^ y)
  
  // TODO: XNOR-Gatter hinzufügen (xnor_result = x ~^ y)

endmodule
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen