xor
Tor, jetzt muss ich dieses Tor mit nur 4 nand
Tor bauen
a b out
0 0 0
0 1 1
1 0 1
1 1 0
das xor = (a and not b) or (not a and b)
, was
Ich kenne die Antwort, aber wie komme ich aus der Formel zum Gate-Diagramm?
BEARBEITEN
Ich meine intuitiv, für mich sollte ich dieses bekommen, wenn ich es Schritt für Schritt mache, gefolgt von der Definition xor = (a and not b) or (not a and b)
.
und xor
wird mit 5 nand
Toren gebaut (erstes # 1 Bild unten)
Meine Frage ist eher wie folgt: Stellen Sie sich vor, die erste Person in der Geschichte könnte diese Formel herausfinden, wie sie (der nand
Denkprozess) Schritt für Schritt die 4- Lösung aus dieser Formel erhalten kann.
logic
boolean-algebra
Zeitlos
quelle
quelle
Antworten:
Aus dieser Formel? Es kann getan werden. Aber es ist einfacher, mit diesem zu beginnen: (mit einer anderen Notation hier)
Ok, was jetzt? Schließlich sollten wir ableiten
~(~(~(a & b) & a) & ~(~(a & b) & b))
(was aussieht, als hätte es 5 NANDs, aber genau wie das Schaltbild hat es einen Unterausdruck, der zweimal verwendet wird).Also mach etwas, das aussieht
~(a & b) & a
(und dasselbe, aber mit einemb
am Ende) und hoffe, dass es dabei bleibt: (and
verteilt überor
)Wende einfach DeMorgan an, um diese Mitte
or
in eine zu verwandelnand
:Und das ist es.
quelle
Ich denke, Sie fordern diesen Beweis:
Obwohl anscheinend 5
NAND
s in der resultierenden Gleichung verwendet werden, wird das Duplikat!(AB)
nur einmal verwendet, wenn Sie seine Schaltung entwerfen.quelle
Da Sie bereits die Diagrammantwort haben, die Sie in Wikipedia durch Eingabe des Fragentitels in Google leicht finden können , und zwar als .png-Diagramm, das mit Ihrem identisch ist, sollte es für Sie einfach sein, die Formel zu finden, indem Sie sie aus diesem Diagramm extrahieren. Angesichts der Definition als NAND -NAND(A,B)=AB¯¯¯¯¯¯¯¯ :
Das am weitesten links liegende Gate ergibt ;C=AB¯¯¯¯¯¯¯¯
Das obere Gate gibt ;D1=AC¯¯¯¯¯¯¯¯
Das obere Gate gibt , da die NAND commutatve ist wie die UND - ;D2=BC¯¯¯¯¯¯¯¯
Das rechte Tor gibt .E=D1D2¯¯¯¯¯¯¯¯¯¯¯¯
Wenn wir alles zusammenfassen, bemerken wir das zuerst
Ähnlich:D2¯¯¯¯¯¯=BA¯¯¯¯
So ist
E=D1D2¯¯¯¯¯¯¯¯¯¯¯¯=D1¯¯¯¯¯¯+D2¯¯¯¯¯¯=AB¯¯¯¯+BA¯¯¯¯
Welches ist genau die Definition von XOR. Sie können dies alles einfach rückgängig machen, wenn Sie von Ihren ursprünglichen Daten ausgehen möchten, anstatt nur die Antwort zu überprüfen.
Die Antwort ohne Vorkenntnisse finden
Hiermit soll die explizite Anfrage beantwortet werden, die als Bearbeitung der Frage hinzugefügt wurde, um die Lösung von Grund auf zu finden. Da es sich bei der Frage um einen Denkprozess handelt, gebe ich alle Details an.
Wir können also versuchen zu erraten, welche Art von Eingang zu diesem Gatter den gewünschten Ausgang erzeugen würde.
Wenn wir diese letzte Formel mit dem Ergebnis vereinen , das wir erhalten müssen, erhalten wir:
Beachten Sie, dass dies nur die einfachste Möglichkeit ist. Es gibt andere Eingangspaare, die das gewünschte Ergebnis liefern würden, da wir keine freie Algebra vereinen, da NAND gleichwertige Eigenschaften hat. Aber das versuchen wir erst einmal.
Wir könnten versuchen, die Vereinigungsprozedur zu wiederholen (ich tat es), aber dies wird uns natürlich dazu führen, vier weitere Tore zu verwenden, daher zu einer 5-Tore-Lösung.
Das ist leicht zu überprüfen
SimilarlyNAND(Z,B)=Y
Hence we can compose these four gates to get the desired result, i.e., the XOR function.
quelle
I take the input(0,0) as an example.
ForXOR , the desired output is 0. However, NAND(0,0)=1 .
Because the only way to get a 0 usingNAND is (at the last layer) NAND(1,1)=0 , you should first produce two 1's.
Only fourNAND s are involved. But it is only correct for the input (0,0) so far. So you need to check other inputs (0,1),(1,0), and (1,1) against the solution and find that it just works. Lucky.
quelle
I tried my best to give the answer using formula as asked.Hope you appreciate it.
Z=AB'+A'B
Z=AA'+AB'+BB'+A'B --->BB'=AA'=0
Z=A(A'+B')+B(B'+A')
Z=A(AB)'+B(AB)' --> Hint
so now (AB)' can get through 1st NAND gate,then in 2nd and third NAND gate the output of 1st NAND gate pass through with one of the input as A and B.After this we need one more complement so use fourth NAND gate.
NAND(1st)=(AB)'=A'+B'
NAND(2nd)=(A(AB)')'=(A(A'+B'))'=(AB')'=A'+B
NAND(3rd)=(B(AB)')'=(B(A'+B'))'=(A'B)'=A+B'
NAND(4th)=[(A'+B)(A+B')]' =[A'B'+AB]'=(A+B)(A'+B')=AB'+A'B
Happy!
quelle
The formula: XOR = (a and not b) or (not a and b).
Thats' not what you want, you want a formula that is a NAND. Remember that not (a or b) = not a and not b, and therefore (a or b) = not (not a and not b). Therefore
(a and not b) or (not a and b) =
not (not (a and not b) and not (not a and b)) =
not ((not a or b) and (a or not b)) =
NAND (not a or b, a or not b).
So we used one NAND gate, and have to calculate (not a or b) and (a or not b) using three NANDs. We turn each expression into a NAND:
not a or b = not (a and not b) = NAND (a, not b)
a or not b = not (not a and b) = NAND (not a, b)
Nun stellen wir fest, dass (x und y) = x und (nicht x oder y): Wenn x falsch ist, dann sind beide Seiten falsch. Wenn x wahr ist, dann ist (nicht x oder y) = (falsch oder y) = y. Dies gilt für NAND genauso wie für AND. Deshalb
NAND (a, nicht b) = NAND (a, nicht a oder nicht b) = NAND (a, NAND (a, b))
NAND (b, nicht a) = NAND (b, nicht b oder nicht a) = NAND (b, NAND (a, b)).
Wir finden also zuerst mid = NAND (a, b), left = NAND (a, mid) und right = NAND (b, mid), schließlich XOR = NAND (left, right).
quelle
* Von links nach rechts - D1, D2, D3, D4 ** D1 = (AB) 'ODER (A' + B ')
annehmen
(AB) '= C
D2 = (AC) '= A' + C '
D3 = (BC) '= B' + C 'dann
D4 = (D2.D3) '
D4 = ((AC) '. (BC)') '
D4 = (AC) '' + (BC) ''
D4 = (AC) + (BC)
D4=A.(A'+B')+B.(A'+B')
D4=AB'+BA' {A.A'=B.B'=0}**
quelle