Umschreiben eines booleschen Ausdrucks nur mit NAND

Also hatte ich eine Wahrheitstabelle und mit einer Karnaugh-Karte habe ich eine Funktion vereinfacht. Ich habe erhalten.

F = A 3 ¯ A 2 A 1 ¯ + A 2 ¯ A 0 ¯ + A 3 A 0 ¯

Verwenden Sie dann die Verteilungseigenschaft der booleschen Algebra:

F = A 3 ¯ A 2 A 1 ¯ + A 0 ¯ ( A 2 ¯ + A 3 )

Ok, damit haben wir das Minimum an Logikgattern zu verwenden.

Jetzt muss ich das in NAND umwandeln. Was mir einfacher erschien, war, das Logigramm (oder elektrische Schema) zu nehmen und die Gates mit NAND direkt in ihre Äquivalente zu ändern. Ich habe erhalten:

F = A 3 ¯ A 2 A 1 ¯ ¯ A 0 ¯ A 2 A 3 ¯ ¯ ¯ ¯

Nun habe ich zwei Fragen dazu:

  • Wie soll ich algebraisch vorgehen, um von einem Ausdruck zum anderen überzugehen (ich weiß, dass ich die DeMorgan-Gesetze anwenden oder das Komplement der Funktion verwenden muss ... Ich würde mich freuen, wenn jemand einen Tipp oder etwas geben kann, wie man damit beginnt.

  • Ich denke, ob es eine Möglichkeit gibt, den NAND-Ausdruck zu vereinfachen ... Ich sehe, dass ich es getan habe A 2 zweimal und auch A 3 ¯ zweimal ... Ich überlege, ob es eine Möglichkeit gibt, bei der Vereinfachung noch weiter zu gehen ... Wenn jemand auch einen Tipp geben könnte, wie man vorgehen kann, um die Regel, nur NAND zu verwenden, nicht zu ruinieren. Vielen Dank!

Was bedeutet „einen Ausdruck an einen anderen übergeben“?

Antworten (2)

Nur 2-in-NANDs?

Ich sehe keinen Grund, warum Sie zwei NANDs verschwenden müssen, um dasselbe Signal zweimal zu invertieren, wenn dies Teil Ihrer Frage war.

Aber ich bin mir nicht ganz sicher, welche Frage Sie stellen.


Die Art und Weise, wie ich Ihr Problem angegangen bin, war, eine Tabelle zu erstellen:

A 3     A 2                           A 1   A 0     00 01 10 11 00 1 1 1 1 01 0 1 0 0 10 1 0 1 1 11 0 0 0 0

Daraus war ziemlich leicht zu erkennen, dass drei der Säulen identisch waren und durch ersetzt werden konnten A 0 ¯ und dass die verbleibende Spalte gerecht war A 1 ¯ . Die neue Tabelle wurde also:

A 3     A 2                       00 01 10 11 A 0 ¯ A 1 ¯ A 0 ¯ A 0 ¯

Das Ergebnis ist folgendes:

Geben Sie hier die Bildbeschreibung ein

(Natürlich müssen Sie die Inverter durch NAND-Gatter ersetzen. Es gibt also insgesamt 7 davon.)

Der erste Inverter und das NAND-Gatter auf der linken Seite akzeptieren A 2 Und A 3 , liefert ein aktives LOW, um anzuzeigen, wann A 3   A 2 = 01 . Wenn es LOW ist, dann deaktiviert diese Tatsache das NAND-Gatter A 0 geht hinein, ganz unten. Aber es aktiviert das NAND-Gatter wo A 1 ankommt. Beide werden dann kombiniert (und schließlich invertiert), um die gewünschte Ausgabe zu erhalten.


Vielleicht versucht sich noch jemand daran. Aber so könnte ich es angegangen sein.

Sie können auch einen vollständig algebraischen Ansatz wählen. Sie sagen, Sie kennen DeMorgan's. Sie können also mit dem Ausdruck herumspielen, den Sie haben, um eine Reihe von beidem zu konstruieren A   B ¯ oder aber A ¯ + B ¯ identifizierbare Begriffe in Ihrem Ausdruck und nehmen Sie Anpassungen vor, wenn Sie etwas sehen, das nicht dieser Grundform entspricht.

Ich entschied mich für einen anderen Ansatz.

Ich halte mich hier aber nicht als Experte. Vielleicht tritt ein solcher ein und bietet Ihnen einen gründlicheren und eiserneren, rigoroseren Ansatz. Vielleicht lerne ich auch daraus.

Hallo @Jonk! Vielen Dank für Ihre Antwort und entschuldigen Sie, wenn das, was ich gefragt habe, nicht ganz klar war. Was ich wirklich wissen möchte, ist, ob es eine Möglichkeit gibt, die Anzahl der NAND-Gatter in unserer Schaltung (die Sie dort eingefügt haben) zu reduzieren?
Können Sie mir auch sagen, wo Sie diese Zeichnung der Schaltung gemacht haben? Vielen Dank!
@GrangerObliviate Es ist von Logic Friday. Es ist nicht gut darin, Schaltpläne zu optimieren, aber es verwendet Espresso, um Ausdrücke zu optimieren. Aber es wird zum Beispiel nicht gut für Nur-NAND-Schaltungen optimiert. Es ist frei.
@GrangerObliviate Mir ist nicht mehr bewusst, als eine Reihe alternativer Wege zu erkunden. Ich kenne keinen garantierten Algorithmus, der von einer logischen Aussage, geleitet von den von Ihnen auferlegten Einschränkungen, zu einer notwendigerweise optimalen Antwort führt. Ich denke, das Problem ist im Allgemeinen NP-vollständig, aber ich habe kein Papier darüber, das ich zitieren könnte, das dies beweist. Ich kann mich irren und es ist nur meine Unerfahrenheit, die spricht.

Ich habe anhand eines Beispiels in dieser Antwort ausführlich erklärt, wie man einen booleschen Ausdruck algebraisch in eine NAND-Form umwandelt .

F = A 3 ¯ A 2 A 1 ¯ + A 2 ¯ A 0 ¯ + A 3 A 0 ¯

Es ist eine sehr einfache und kurze Methode, also werde ich es auch für Ihren Ausdruck tun:

  1. Nehmen Sie die doppelte Ergänzung

    F = A 3 ¯ A 2 A 1 ¯ + A 2 ¯ A 0 ¯ + A 3 A 0 ¯ ¯ ¯

  2. Wenden Sie das Gesetz von De Morgan für den inneren Ausdruck an (das äußere Komplement bleibt unverändert), um es in NAND-Form zu erhalten:

    F = A 3 ¯ A 2 A 1 ¯ ¯ . A 2 ¯ A 0 ¯ ¯ . A 3 A 0 ¯ ¯ ¯

Ja, das habe ich inzwischen auch gelernt. Mein Schreiben war vor fast vier Jahren und ich hatte damals wirklich nicht viel darüber nachgedacht. Zum Glück reichte mir damals die Intuition. ;) +1 für den Zusatz.