Ich habe eine komplexe Ausgabefunktion in der booleschen Algebra (wobei '~' NICHT bedeutet):
F=~( (ac ~d) + (a ~c ~d) + (~ac) + (~ acd) + (ac ! db) )
Ich weiß, dass dies vereinfacht werden kann zu:
F = (~a ~c) + (ad)
Jetzt kann die vereinfachte Version in CMOS mit 8 Transistoren und benutzerdefinierten Gates implementiert werden. (dh nicht ausschließlich NAND und NOR)
Wenn ich das Vereinfachte in CMOS nur mit NAND- oder NOR-Gattern implementieren würde, wie viele Transistoren gäbe es? Gibt es eine einfache Möglichkeit zu zählen, indem man sich nur die Funktion ansieht?
Das habe ich mir gedacht
Das heißt, die vereinfachte Version kann aus 28 Transistoren bestehen?
BEARBEITEN:
Wenn ich also Demorgane verwende: F=~( ~(~a ~c) ~(ad) )
Ihre Logik sieht aus wie eine Summe von Produkten (UNDs, die in ein ODER eingespeist werden). In diesem Fall können Sie sowohl das UND als auch das ODER durch NAND-Gatter ersetzen. Außerdem können Sie (~a ~c) durch ~(a + c) ersetzen, was ein Gate spart. Zusammengenommen ergibt das 1 NOR, 1 NOT und 2 NAND für insgesamt 14 Transistoren.
Komplexe CMOS-Gatter ergeben bei dieser Art der Faktorisierung bessere Transistorzahlen und weniger Gatterverzögerungen.
F = (!a && !c) || (Anzeige)
F = !( !(!a && !c) && !(a && d))
F = !( (a && c) && !(a && d) )
Das ist ein OAI21 und ein NAND2 – 6 FETs im OAI und 4 FETs im NAND2. 10 insgesamt.
Die unterschwellige Leckage wäre wahrscheinlich auch geringer.
Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan
sergiol