Wie soll ein XOR mit mehr als 2 Eingängen funktionieren?

27

Ich habe gerade angefangen, Computertechnik zu studieren, und ich habe einige Zweifel hinsichtlich des Verhaltens des XOR-Gatters.

Ich habe mit Logisim Schaltungen projiziert, deren XORs sich anders verhalten als die, die ich gelernt habe. Für mich sollte es sich wie ein Paritätsgatter verhalten und immer dann einen hohen Ausgang liefern, wenn die Eingänge eine ungerade Kombination erhalten. Bei mehr als zwei Eingängen ist dies jedoch nicht der Fall. Wie soll es sich verhalten?

Ich habe auch in einem Buch gelesen, dass XOR-Gatter nicht mit mehr als zwei Eingängen erzeugt werden. Ist das korrekt? Warum?

gabrieljcs
quelle
1
Warum nicht (oder fast nie) mit> 2 Eingängen? Zwei typische Verwendungen von XOR-Gattern sind 1) die Überprüfung auf Gleichheit und 2) die Steuerung / Manipulation der Polarität eines Signals. Beides macht bei mehr als 2 Eingängen keinen Sinn.
Wouter van Ooijen
1
Wäre die Summe in einem Volladdierer nicht als A ^ B ^ Cin dargestellt?
Gabrieljcs
Sie können es so ausdrücken, aber das bedeutet nicht, dass es ein guter Weg ist, es zu implementieren.
Wouter van Ooijen
1
Ich habe gerade meine Version von Logisim überprüft und die "1 und nur 1" scheint das Standardverhalten zu sein. Es besteht jedoch die Möglichkeit, sie in eine Funktion mit ungerader Parität zu ändern.
Joe Hass
In der Tat, Joe. Dieser Link enthält eine Diskussion darüber, die vom Logisim-Entwickler Carl Burch beantwortet wurde.
Gabrieljcs

Antworten:

23

Es gibt unterschiedliche Sichtweisen, wie sich ein Exklusiv-ODER-Gatter mit mehr als zwei Eingängen verhalten soll. Meistens verhält sich ein solches XOR-Gatter wie eine Kaskade von Gattern mit zwei Eingängen und führt eine Funktion mit ungerader Parität aus. Einige Leute interpretieren die Bedeutung von EXKLUSIV-ODER jedoch wörtlicher und sagen, dass die Ausgabe nur dann eine 1 sein sollte, wenn genau eine der Eingaben eine 1 ist Mein rostiges Gedächtnis habe ich in einer ASIC-Zellbibliothek gesehen. Eines der internationalen Standardsymbole für ein XOR-Gatter ist ein beschriftetes Rechteck, das mit =1der Definition "1 und nur 1" konsistenter zu sein scheint.

EDIT: Die Definition von EXKLUSIV-ODER als "1 und nur 1" ist ungewöhnlich, kann aber gefunden werden. Zum Beispiel gibt IEEE-Std91a-1991 das Symbol für das Exklusiv-ODER auf p an. 62 mit dem Hinweis: "Der Ausgang befindet sich im 1-Zustand, wenn nur einer der beiden Eingänge im 1-Zustand ist." Bei mehr als 2 Eingängen empfiehlt der Standard stattdessen die Verwendung des Symbols "Odd Parity". Zu den Websites, auf denen diese verwirrende Situation erörtert wird, gehören XOR: The Interesting Gate und Gate-Demos bei TAMS . Bei einer Google-Suche werden auch Websites gefunden, die genau genommen behaupten, dass es kein XOR-Gatter mit mehr als zwei Eingaben gibt.

Joe Hass
quelle
4
Für mich ist der zweite (1 und nur 1) der einzig richtige Weg, dies zu tun - alles andere ist nicht wirklich exklusiv .
Polynom
3
Es gibt keine andere Sichtweise, beide Punkte sind technisch korrekt, aber "1, wenn genau einer der Eingänge eine 1 ist" wird nicht erweitert, wie Sie vielleicht denken. Wenn Sie 2-Eingangs-XORs kaskadieren, zeigt jeder Ausgang, der in die Pins eines dritten XORs eingespeist wird, den obigen Punkt. Multi-Input-Gatter werden von ihren 2-Input-Primitiven abgeleitet. Somit ist die 4-Eingangs-Wahrheitstabelle ((A⊕B) ⊕ (C⊕D)), was zu einer endgültigen 1-Ausgabe führt, wenn es eine ungerade Anzahl von wahren Eingaben gibt.
Kris Bahnsen
@KrisBahnsen Wie das OP hervorhob, gibt es in der Tat zwei Gesichtspunkte (versuchen Sie das Standard-XOR in Logisim, wenn Sie Beweise benötigen). Ihre Behauptung, dass Multi-Input-Gatter von 2-Input-Primitiven abgeleitet sind, wird als universelle Wahrheit angegeben, aber wir haben Ihnen bereits ein Gegenbeispiel gegeben.
Joe Hass
@ JoeHass, ich habe noch nie logisim verwendet. Ich verwende hauptsächlich LogicWorks. bei dem sich ein XOR mit mehreren Eingängen wie oben beschrieben verhält, ist eine ungerade Anzahl von wahren Eingängen eine wahre Ausgabe. Die Wiki-Seite auf XOR (en.wikipedia.org/wiki/XOR) stimmt zu, dass das, was ich gesagt habe, auch wahr ist. Ich habe auch noch nie einen XOR-IC mit mehreren Eingängen gesehen, daher kann ich mich nicht an Datenblätter wenden, um zu versuchen, meine Aussagen zu widerlegen. Logisim scheint das einzige zu sein, das das XOR-Schema mit mehreren Eingängen mit der Logik "1 if and only ..." implementiert. Wenn Sie eine andere Quelle finden, gebe ich zu, dass ich falsch liege und dass es mehrere Definitionen von XOR gibt.
Kris Bahnsen
Gute Klarstellung, danke, dass Sie sich mehr Zeit für die Erforschung der Standards genommen haben als ich.
Kris Bahnsen
11

Bei einem XOR mit zwei Gattern ist der Ausgang hoch, wenn die Eingänge unterschiedlich sind. Wenn die Eingänge gleich sind, ist der Ausgang niedrig.

Daher diese Wahrheitstabelle:

Bildbeschreibung hier eingeben

Sie können ein XOR-Gatter finden, das mehr als zwei Eingänge hat, aber eigentlich kein XOR mit drei Eingängen. Sie XOR-Eingabe A und B und das Ergebnis von ihnen "R" ist dann XOR mit Eingabe C. Und das Ergebnis von R XOR C ist dann XOR mit Eingabe 4 und so weiter.

Hier ist eine Wahrheitstabelle für die drei angezeigten Eingabe-XORs:

Bildbeschreibung hier eingeben

Ein einfacher Paritätsalgorithmus ist das XOR-Verknüpfen von Bits in einer empfangenen Nachricht über beispielsweise Ethernet. Wenn der Sender und der Empfänger wissen, dass die XOR-Verknüpfung der Nachrichtenbits 0 sein sollte (ein Bit in der Nachricht wird bereitgestellt, um eine Eins hinzufügen zu können, so dass eine Nachricht beliebiger Länge 0 sein kann, wenn XOR-verknüpft ist), kann der Empfänger wissen, ob 1 ist Bit wurde umgedreht. Dies ist eine schlechte Paritätsprüfung, da sie nur eine ungerade Anzahl von Bitänderungen findet, aber das Konzept zeigt.

iQt
quelle
1
Ich bin Mathematiker, diese Antwort erscheint mir schrecklich. Ich verstehe, dass dies die Ausgabe ist, die im Allgemeinen von einem XOR mit drei Eingängen beabsichtigt ist, aber 01101000 scheint mir weitaus logischer zu sein. + Schöne Antwort.
Ben Crossley
1

Wenn Sie 4 Eingänge nehmen und zwei zu einem XOR und zwei zu einem anderen führen, nehmen Sie die beiden XOR-Ausgänge und führen Sie sie zu einem dritten XOR, dessen Ausgang das tut, was Sie glauben (ich denke).

Andy aka
quelle
1
Ich mache mir mehr Sorgen um das Warum, nicht um das Wie. Vielen Dank für die Antwort.
Gabrieljcs
@root, eigentlich hast du gefragt "Wie soll es sich verhalten?" Sie haben nirgendwo gefragt, warum. Dies ist eine korrekte Antwort. Sie liefert ((A⊕B) ⊕ (C⊕D)), das mit einem 4-Eingangs-XOR identisch ist, das mit mehreren kaskadierten 2-Eingangs-XORs identisch ist.
Kris Bahnsen
Du hast recht. Entschuldigen Sie das Missverständnis.
Gabrieljcs
1

XOR ist nicht vollständig ein Paritätsgatter. Wenn Sie den Ausgang von XOR als 1 definieren, wenn einer und nur einer der Eingänge 1 ist, dann würde ein XOR mit drei Eingängen 0 für alle-1-Eingänge ergeben. Dies wird nicht sehr oft verwendet und daher gibt es nur wenige XOR-Gatter mit 3 Eingängen.

Was die meisten Leute meinen, wenn sie sagen, dass XOR eine Modulo-2-Addition ist, die genau ein Paritätsprüfer ist. Die meisten als 3-Input-XORs bezeichneten Gatter sind tatsächlich Modulo-2-Additionsgatter. Für zwei Eingänge ist die Modulo-2-Addition das Gleiche wie XOR, aber die 0 aus dem oben beschriebenen XOR ist stattdessen eine 1 in Modulo-2-Gattern. Modulo 2-Gatter mit einer beliebigen Anzahl von Eingängen können aus einfachen XOR-Gattern mit zwei Eingängen erzeugt werden.

Duggie
quelle
1

Ich habe ein bisschen nach Ihrer Frage gesucht und einen IC gefunden, der ein 3-Eingangs-XOR-Gatter ist. 74LVC1G386 von nxp. Der Link zur NXP-Site mit den Suchergebnissen für diese Teilenummer auf der NXP-Site lautet http://www.nxp.com/search?q=74lvc1g386&type=keyword&rows=10

Mahesh Mohandasan
quelle
2
Vielen Dank für Ihren Beitrag, aber Ihre Antwort ist wertlos, wenn NXP die Suchmaschine ändert. Bitte fasse zusammen, was du hier gefunden hast, damit es von bleibendem Wert ist.
Joe Hass
Ich habe nur gesucht, um zu sehen, ob es Hersteller gibt, die XOR mit mehr als 3 Eingängen versorgen, und habe diesen gefunden. Ich dachte, es würde mir helfen, ihn zu teilen. Hier ist ein Link zu ihrem Datenblatt nxp.com/documents/. data_sheet / 74LVC1G386.pdf
Mahesh Mohandasan
1
Bitte posten Sie keinen weiteren Link! Sagen Sie uns, wie das Ding funktioniert!
Joe Hass
Es ist ein XOR-Gatter mit 3 Eingängen, das genauso funktioniert, wie wir es studiert haben / wissen. Das heißt, es gibt ein hohes O / P für eine ungerade Anzahl von hohen Eingaben (wie aus dem Datenblatt). Das ist der Grund, warum der Link geteilt wurde. :)
Mahesh Mohandasan
1

Also bin ich hingegangen und habe getestet! Ich habe eine kleine Verilog-Datei geschrieben, simuliert und mir die Wellenform angesehen.

Es stellt sich heraus, dass die richtige Interpretation für Verilog ist: Es gibt eine ungerade Menge von Einsen in der Eingabe AKA Interpretation 2 dieses Artikels

module top (y1, y2);
output y1, y2;
reg a, b, c;
wire x1, x2;
wire t;

xor(t, a, b);
xor(x2, t, c);

assign y2 = x2;
assign y1 = x1;

xor(x1, a, b, c);

initial
begin
  $dumpfile("test.vcd");
  $dumpvars(y1, y2, a, b, c, x1, x2);

#20
#10  a = 0; b = 0; c = 0;
#10  a = 0; b = 0; c = 1;
#10  a = 0; b = 1; c = 0;
#10  a = 0; b = 1; c = 1;
#10  a = 1; b = 0; c = 0;
#10  a = 1; b = 0; c = 1;
#10  a = 1; b = 1; c = 0;
#10  a = 1; b = 1; c = 1;
#10  a = 0; b = 0; c = 0;
end

endmodule

Bildbeschreibung hier eingeben

mentatkgs
quelle
-1

Gemäß der Logik eines einfachen ODER-Gatters mit mehreren Eingängen nimmt es den höchsten Wert unter allen Eingängen an, trifft jedoch keine Entscheidung. In Bezug auf EXOR (Verwechslung mit einem Halbaddierer ist nur ein Zufall, da dies in der mehrwertigen Logik EXOR nicht der Fall ist) wird entschieden, welcher der Eingänge der höchste ist, jedoch der höchste (einschließlich 0 + 0). 1 + 1) sind gleich, wenn die Auswahl unter den Eingängen fehlschlägt, kann keine Entscheidung getroffen werden. Keine Entscheidung bedeutet, dass die Ausgabe Null ist. Wenn beispielsweise jemand gebeten wird, die maximale Anzahl von Süßigkeiten einer Marke in einem Doller zu kaufen, und wenn es zwei Marken gibt (radix = 2), kann er diejenige mit der höchsten Süßigkeitszahl auswählen, aber wenn beide Marken kostenlos erhältlich sind, kann er ebenfalls keine (Mittel 0,0) auswählen, wenn beide Marken die gleiche Nummer (1, 1) von Süßigkeiten kann er keine Entscheidung treffen, bedeutet, dass die Ausgabe Null ist. Dieselbe Logik kann für 3, 4 oder mehr Marken (höherer Radix) von Süßigkeiten erweitert werden. Dies gilt auch für mehrwertige Logik. (x + x + .. + x = 0, wobei x einen beliebigen Wert haben kann) In drei Eingängen ist das EXOR-Gatter 1 + 1 + 1 = 0 (im Gegensatz zur normalen Interpretation 1 + 1 + 1 = 1, die falsch zu sein scheint) verwechselt mit Parität). VT Ingole, PhD

Vijay Ingole
quelle
Diese Erklärung ist unnötig kompliziert und scheint die Frage ohnehin nicht definitiv zu beantworten.
Duskwuff