Frage:
Warum sind Produkt-Summen-Implementierungen beliebter als Produkt-Summen-Implementierungen?
Steven Roose
2012-06-23 16:18:17 UTC
view on stackexchange narkive permalink

In meinem Buch über Schaltungsdesign ( Grundlagen der digitalen Logik mit VHDL von Stephen Brown und Zvonko Vranesic ) bevorzugen die Autoren immer eine Produktsumme für die Darstellung und Implementierung einfacher Schaltungen.

In der Booleschen Algebra wird diese Präferenz ebenfalls verwendet, aber ich denke hauptsächlich, weil das Schreiben von Produktsummen einfacher und kürzer ist. Und vielleicht für Leser leichter zu verstehen.

Aber bei der Implementierung mit Logikgattern würde ich annehmen, dass auch andere Überlegungen als diese angestellt werden. Wie Kosten und Verzögerungen der Tore.

Gibt es also einen bestimmten Grund, warum vorzugsweise Implementierungen von Produktsummen durchgeführt werden? F.e. Sind UND-Gatter billiger als ODER-Gatter? Ich habe über die Transistorrealisierung dieser Gates gelesen, kann mich aber nicht an eine solche Aussage erinnern.

Fünf antworten:
Shamtam
2012-06-23 21:47:42 UTC
view on stackexchange narkive permalink

Nach dem, was ich in meinen Kursen für digitale Logik gelernt habe, wird alles in der Regel mit NAND erstellt, da diese billiger sind und jede Boolesche Funktion mit NAND (oder NOR) realisiert werden kann. Ich würde mir vorstellen, dass Implementierungen von Produktsummen (UND- und ODER-Gatter) aus diesem Grund nicht besonders allgegenwärtig sind.

Hmm, ich habe gelesen, wie UND- und ODER-Gatter mit NAND-Gattern realisiert werden können, ja. Wahrscheinlich erfordert ein UND-Gatter weniger NANDs als ein ODER. Was vernünftig erscheint: P Aber sind NANDs billiger als NORs?
@StevenRoose In einem Standard-CMOS-Prozess ja. PFETs sind normalerweise schlechter als NFETs, daher müssen die PFETs größer sein, um den NFET-Pulldowns zu entsprechen. Bei einem NOR-Gatter sind zwei PFETs in Reihe geschaltet und sollten doppelt so groß sein. Für ein NAND-Gatter hätten Sie eine aktive Fläche von beispielsweise 8-10 Einheiten, und ein NOR-Gatter hätte eine Fläche von vielleicht 14-20, abhängig von der relativen Stärke der PFETs und NFETs.
Es ist erwähnenswert, dass "(a und b) oder (c und d)" gleichbedeutend ist mit "(a und b) n und (c und d)".
supercat
2012-12-07 04:16:59 UTC
view on stackexchange narkive permalink

Obwohl Produkt-aus-Summen und Produkt-Summe im Wesentlichen eine gleichwertige Komplexität aufweisen (eines kann durch Invertieren aller Ein- und Ausgänge in das andere umgewandelt werden), fällt es den meisten Menschen meiner Meinung nach leichter, mit Produktsummen zu arbeiten. Angenommen, ein ROM-Chip soll an den Speicheradressen [während derer MREQ aktiv ist] bei 0xC000-0xFFFF ausgewählt werden und soll auch an der Adresse 0x0000-0x3FFF ausgewählt werden, wenn BANKSEL nicht gesetzt ist. Die Auswahlgleichung könnte in Form einer Produktsumme wie folgt geschrieben werden:

  UseROM = (MREQ & A15 & A14) # (MREQ &! A15 &! A14 &! BANKSEL)  

Die entsprechende Summenproduktform wäre bei gleicher Ausgangspolarität

  UseROM = MREQ & (A15 #! A14) & (! A15 # A14) & (A14 #! BANKSEL)  

Die Form der Produktsumme identifiziert effektiv die Umstände, unter denen die Ausgabe aktiv sein sollte, während das Produkt der Summe effektiv die Umstände identifiziert, unter denen die Ausgabe erfolgt sollte inaktiv sein. Im ersteren gibt es zwei Produktbegriffe, von denen jeder eindeutig mit dem Zugriff in einem der beiden Bereiche verbunden ist. In letzterem gibt es vier Faktoren, von denen nur einer eine offensichtliche Beziehung zum gewünschten Verhalten hat. Man könnte den Sinn der Ein- und Ausgänge umkehren und etwas ähnlicheres erhalten:

  DontUseROM = (! MREQ #! A15 #! A14) & (! MREQ # A15 # A14 # BANKSEL )  

Dadurch wird die Komplexität auf das erste Beispiel reduziert, aber es ist weitaus weniger intuitiv. In der Tat besteht der einzige Weg, dies zu verstehen, darin, herauszufinden, was passieren muss, damit DontUseROM niedrig wird, d. H. Entweder der erste ODER der zweite Faktor muss niedrig sein. Und jeder Faktor wird nur dann niedrig, wenn die Eingänge ALLE dafür erforderlichen Bedingungen erfüllen. Mit anderen Worten, zurück zur Produktsumme.

Kaz
2012-12-07 07:30:09 UTC
view on stackexchange narkive permalink

Invertierte Logik kann unnatürlich sein. Gehen wir zur quantifizierten Logik über:

$$ \ forall x: ({duck} (x) \ land {quacks} (x)) \ lor ({ Hund} (x) \ land {bellt} (x)) \ lor (\ lnot {duck} (x) \ land \ lnot {dog} (x)) $$ span>

" Alles ist entweder eine Ente (und Quacksalber) oder ein Hund (und bellt) oder es ist weder Ente noch Hund. "

Wenn Sie das Dual aufschreiben, verwenden Sie DeMorgan's, um die Logik umzudrehen erhalten wir etwas Unnatürliches:

Dual (soweit so gut):

$$ \ lnot \ existiert x: \ lnot (( ({Ente} (x) \ Land {Quacksalber} (x)) \ lor ({Hund} (x) \ Land {Rinden} (x)) \ lor (\ lnot {Ente} (x) \ Land \ lnot { Hund} (x))) $$ span>

DeMorgan's, Schritt 1:

$$ \ lnot \ existiert x: \ lnot (({Ente} (x) \ Land {Quacksalber} (x)) \ Land \ lnot ({Hund} (x) \ Land {Rinden} (x) \ Land \ lnot (\ lnot {Ente} (x) ) \ land \ lnot {dog} (x)) $$ span>

Schritt 2:

$$ \ lnot \ existiert x: (({\ lnot duck} (x) \ lor {\ lnot quacks} (x)) \ land ({\ lnot dog} (x) \ lor {\ lnot barks} (x) \ land ({duck } (x) \ lor {dog} (x)) $$ span>

"The Es gibt keine Sache, die gleichzeitig:

  • entweder ein Nicht-Quacksalber oder eine Nicht-Ente ist; und
  • ist entweder ein Nicht-Marktschreier oder ein Nicht-Hund; und
  • ist entweder eine Ente oder ein Hund oder beides. "

Was sagen? :)

Die Summe der Produkte geht Hand in Hand mit Teilen und Erobern. Eine Produkt-Summen-Darstellung eines Satzes unterteilt ihn in alle Fälle, die unabhängig ihn wahr machen. Satz P ist wahr, wenn so und so; oder eine Situation; oder in diesem anderen Fall. Die Aufteilung in unabhängige Fälle trägt zur Klarheit der Argumentation bei.

Darüber hinaus beschäftigen wir uns in der Prädikatenlogik und den damit verbundenen Überlegungen normalerweise mit Positiven wie "Ente" und weniger mit Negativen wie "Nicht-Ente". "Nicht-Ente" ist keine Objektklasse. Dinge werden anhand positiver Attribute klassifiziert, die sie haben, nicht anhand dessen, was sie nicht haben. Der Raum der Dinge, die "Nicht-Ente" sind, ist unbegrenzt. Das Denken mit solchen Negativen ist verwirrend.

In der Aussagenlogik, wie in der Logik nullter Ordnung ohne Quantifizierer, wie wir es in Logikschaltungen tun kann die komplette Wahrheitstabelle aufschreiben. Es kann sich herausstellen, dass der negative Raum einer Funktion tatsächlich einfacher zu charakterisieren ist.

Beispielsweise hat eine Boolesche Formel über vier Variablen nur eine Tabelle mit 16 Zeilen. Angenommen, es gibt drei Zeilen, für die es wahr ist, und es ist überall falsch. Dann wird eine einfache Formel erstellt, indem diese drei Kombinationen von vier Variablen angegeben und mit oder kombiniert werden.

Nehmen wir jedoch an, dass die Formel nur in drei Zeilen falsch ist. Dann kann es bequemer und natürlicher sein, diese Ausnahmen zu charakterisieren und so auszudrücken: Die Formel ist wahr, wenn die Variablen nicht in dieser Kombination sind, und nicht in dieser anderen Kombination, und nicht in dieser dritten Kombination. Die Operatoren nicht können dann in die Kombinationen verteilen und ergeben ein Produkt über Summen.

Positives Beispiel:

  ABCD P0 0 0 0 0 0 0 0 1 00 0 1 0 00 0 1 1 00 1 0 0 1 * 0 1 0 1 00 1 1 0 00 1 1 1 1 * Summe der Produkte: 1 0 0 0 0 P = A'BC'D '+ A. 'BCD + ABC'D1 0 0 1 01 0 1 0 01 0 1 1 01 1 0 0 01 1 0 1 1 * 1 1 0 01 1 1 1 0  

Negatives Beispiel:

  ABCD P0 0 0 0 1 0 0 0 1 10 0 1 0 10 0 1 1 10 1 0 0 0 * 0 1 0 1 10 1 1 0 10 1 1 1 0 * Produkt von Summen: 1 0 0 0 1 P = (A'BC'D '+ A'BCD + ABC'D)' 1 0 0 1 1 P = (A'BC'D ')' (A'BCD) '(ABC 'D)' 1 0 1 0 1 P = (A + B '+ C + D) (A + B' + C '+ D') (A '+ B' + C + D ') 1 0 1 1 1
1 1 0 0 1 Summe der Produkte: 1 1 0 1 0 * A'B'C'D '+ A'B'C'D + A'B'CD' ... (10 weitere Begriffe) 1 1 1 0 11 1 1 1 1  

Trotz ihrer Einfachheit ist es etwas schwierig, die dritte Formel (Produkt aus Summen) im Vergleich zur zweiten Formel (Produkt aus) zu verstehen negierte Produkte). Die alternative, nicht vereinfachte Summe von 13 Produkten ist jedoch aufgrund der großen Anzahl von Begriffen ebenfalls schwer zu verstehen.

Ich würde hinzufügen, dass selbst wenn Dinge in Form von Summen ausgedrückt werden, die normale Methode zur Bewertung durch den Menschen darin besteht, sie umzukehren, um ein Produkt aus Summen zu erhalten. Wenn es nichts gibt, das alle drei Kriterien erfüllt, bedeutet dies, dass mindestens eines alles „scheitern“ muss. Nur quakende Enten scheitern am ersten, nur bellende Hunde scheitern am zweiten, und Dinge, die weder Hunde noch Enten sind, scheitern am dritten. Mit anderen Worten, zurück zur Produktsumme.
Für Ihr zweites Beispiel würde ich vorschlagen, dass die natürlichste Beschreibung darin besteht, es so zu beschreiben, dass P falsch ist, die Summe der Produkte verwendet und das Ergebnis invertiert. Selbst bei nicht invertierter SOP sind 13 Begriffe nicht erforderlich. Ich denke, es werden nur fünf benötigt: `! B + C! D + A! D + AC +! A! CD` zum Beispiel.
Ich habe "ist entweder eine gegrabene Ente oder ein Hund" umformuliert, weil ich dachte, "gegraben" sei ein Tippfehler, dann wurde mir klar, dass "gegraben" etwas sein soll, das sowohl eine Ente als auch ein Hund ist.Entschuldigung, wenn es Verwirrung gibt.
Ich denke, DeMorgans Schritt 1 ist auch falsch.
clabacchio
2012-12-07 05:08:50 UTC
view on stackexchange narkive permalink

Zunächst einmal: Wie bereits erwähnt, ist es möglich, alle Logikfunktionen mit eindeutigen NAND- oder NOR-Gattern zu implementieren.

Aufgrund seiner statischen CMOS-Implementierung ist das NAND-Gatter nun tendenziell schneller als die NOR. Dies liegt daran, dass das NAND-Gatter den kritischen Pfad als eine Reihe von N nMOS-Transistoren hat, wobei N das Fan-In ist:

NOR hat stattdessen den kritischen Pfad mit einer Reihe von N pMOS-Transistoren.

enter image description here

Unter den gleichen Bedingungen aufgrund der geringeren Mobilität Von Löchern als Elektronen ist pMOS weniger leitend als nMOS und daher ist es vorzuziehen, NAND-Gatter zu verwenden

Ich denke, die Aspekte der menschlichen Analyse sind weitaus relevanter als die Unterscheidung zwischen NAND- und NOR-Gattern. SOP ist gleichbedeutend mit POS mit invertierten Ein- und Ausgängen, und in vielen Zusammenhängen kann man Ein- und Ausgänge "kostenlos" invertieren. Wenn man ein Stück Papier hat, das bis auf einige schwarze geradlinige Formen weiß ist, kann man entweder den Inhalt des Papiers beschreiben, indem man die dunklen Bereiche (Formen) beschreibt oder indem man alle weißen Bereiche (Zwischenräume um und zwischen ihnen) beschreibt. In den meisten Fällen ist die frühere Beschreibung einfacher.
@supercat Es ist wahr, dass die Inversion fast kostenlos ist, aber es ist auch wahr, dass ein NOR-Gatter mit zwei Eingängen, wenn ein pMOS die Hälfte der Transkonduktanz eines nMOS hat, viermal größere pMOS benötigt, um ausgeglichen zu werden, und Sie zahlen mit Eingangskapazität. Und ich denke, dass der Grund für die Analyse des Menschen ziemlich subjektiv ist.
Auf jeder CPLD, die ich gesehen habe, ist jede Eingabe in normaler und invertierter Form verfügbar, und fast jede Ausgabe von Produktsummen ist es auch (obwohl einige Ausgaben mit einem Produktterm dies nicht tun), und viele Logik-Compiler werden dies tatsächlich tun Übersetzen Sie die Logik von einer Form in eine andere, wenn dies die Dinge effizienter machen würde (z. B. Konvertieren des Drei-Terms "Q = W # X # (Y & Z)" in den Zwei-Term "! Q = (! W &! X &") ! Y) # (! W &! X &! Z) `). Die Affinität zur Produktsumme basiert nicht auf der Hardware, da die Wahl der Hardwaredarstellung möglicherweise überhaupt nicht von der Quellcodedarstellung abhängt.
@clabacchio Wie werden Sie mit der Kapazität spielen und wie hilft es im Fall des NOR-Gatters?
ram
2012-12-06 17:35:06 UTC
view on stackexchange narkive permalink

Die Ausbreitungsverzögerung zum UND-Gatter ist geringer als das ODER-Gatter, sodass die Implementierung der Logik in der SOP besser ist als im POS. Der zweite Punkt sind die Kosten des Gatters, und das UND-Gatter ist billiger als das ODER-Gatter.

Keine dieser Aussagen ist im Allgemeinen richtig. Können Sie eine mit einer Referenz oder einem Zitat belegen?
Die normale SOP-Implementierung für Ausdrücke "(A und B) oder (C und D)" in Hardware ist weitaus wahrscheinlicher "(A nand B) nand (C nand D)" als positiv-logische Gatter. Wenn man einen invertierten Ausgang benötigt, kann die Realisierung "(A und B) noch (C und D)" nützlich sein (implementiert als ein Gatter mit vier Eingängen, das eine Kreuzung zwischen "nand" und "nor" ist), aber im Allgemeinen ein "AND" - oder "OR" -Tore müssen aus einem "NAND" oder "NOR" gefolgt von einem Wechselrichter bestehen.
@supercat Wie hängt Ihr Kommentar mit dieser Antwort zusammen?
@SD7: AND- und OR-Gatter werden weitaus seltener verwendet als NAND-, NOR- und Hybrid-Gatter.Wenn eine unter Verwendung von UND und ODER beschriebene Schaltung tatsächlich unter Verwendung von NAND-Gattern implementiert wird, scheint die Ausbreitungsverzögerung, die sie bei Implementierung unter Verwendung von UND- und ODER-Gattern hätte, nicht sehr relevant zu sein.


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...