Erhöht die Verwendung von nur NAND/NOR-Gattern die Schaltungsverzögerung?

Ich erinnere mich, dass ich in der Schule gelernt habe, dass man jede logische Schaltung nur aus NANDoder - NORGattern konstruieren kann.

Zunächst frage ich mich, ob es tatsächlich so gemacht wird: dh wenn Intel eine CPU herstellt, bauen sie dann alle Register usw. mit NAND/ NORgates oder haben sie eine andere ausgefallenere Art, Dinge zu tun?

Zweitens frage ich mich, ob die Konstruktion von allem auf diese Weise die Ausbreitungsverzögerung im Vergleich zu einer Schaltung erhöht, die auch mit //- ANDGattern ORerstellt wurde NOT.

Ich weiß, dass bei der Verwendung von PMOS/ NMOS-Konfigurationen zum Erstellen von Gates ein ANDoder an ORals 2 Stufen herauskommt, im Gegensatz zu a NANDoder a NOR, die beide nur 1 sind. Da ich weiß, dass Sie eine ANDaus 2 kaskadierten NANDs und eine ORaus 2 kaskadierten NORs machen können, it scheint, als würde die Ausbreitungsverzögerung nicht zunehmen, solange die Hersteller sowohl NANDs als auch NORs verwenden.

Hat jemand einen Einblick in all dies, insbesondere was wirklich mit hergestellten ICs gemacht wird?

Antworten (2)

Zunächst frage ich mich, ob es tatsächlich so gemacht wird: dh wenn Intel eine CPU herstellt, bauen sie dann alle Register usw. mit NAND/ NORgates oder haben sie eine andere ausgefallenere Art, Dinge zu tun?

Register bestehen nicht aus Gattern, meistens sind es dedizierte Schaltkreise. Sie können als mit Invertern hergestellt angesehen werden ( NOT), aber nur bis zu einem gewissen Grad.

In der CMOS-Technologie basiert die Everlogic-Schaltung auf dem Inverter: NORUnd NANDGates sind im Grunde nur Inverter mit mehreren Eingängen, die auf clevere Weise angeordnet sind. Die invertierenden Gatter sind also schneller als die nicht invertierenden, die nur invertierende Gatter mit a NOTam Ausgang sind.

Auch in der dynamischen Logik ist es einfacher, zwei invertierende Blöcke zu kaskadieren, als NOTüberall Gatter zu platzieren.

Beachten Sie, dass in einigen Fällen eine Schaltung aus getrennten Blöcken bestehen kann, sodass es einen Fall geben kann, in dem der Ausgang über einen oder mehrere Inverter zum Puffern verbunden ist.

Und das hat noch einen weiteren Vorteil: Integration . Eine kleine Anzahl unterschiedlicher Gates hilft bei der Gestaltung der Schaltung und der Vereinheitlichung der Leistung. Häufig enthalten Bibliotheken Logikblöcke auf unterschiedlichen Komplexitätsstufen: Transistor, Gatter, Operator oder höher.

Kurz gesagt, ja, schnelle Prozessoren verwenden meistens invertierende Gatter.

Okay, ich denke, das macht Sinn für mich. Zur Überprüfung - nehmen wir an, ich wollte einen einfachen (z. B. 4-Bit-) Addierer mit kombinatorischer Logik erstellen (dh nicht durch Verknüpfen von Halbaddierern). Würde ich dieses Problem angehen und versuchen, nur NANDund NORGates zu verwenden, und so wenige davon wie möglich? Wird dies fast immer zu einem besseren Design führen (in Bezug auf die Anzahl der Verzögerungen/Gatter), als wenn ich das Problem mit einem vollständigen Repertoire an Gattern angehen und dann // Gatter durch ihre / -Äquivalente ersetzen ANDwürde ? ORNOTNANDNOR
@llakais in fast jedem Fall, ja. Und zumindest wird es gleich sein. Aber zum Beispiel habe ich einen Addierer für einen Universitätskurs entworfen und zwei Dinge getan: erstens habe ich 4:2-Addiererblöcke mit Volladdierern verwendet (Blöcke gewinnen!), und zweitens habe ich ' Ich habe den Volladdierer mit Durchgangstransistor-XOR-Gattern implementiert, daher gibt es manchmal unterschiedliche Lösungen.
Ich möchte erwähnen, dass es für Addierer normalerweise am schnellsten ist, eine Volladdiererzelle zu haben, nicht eine Kombination von Gattern.
@W5VO Nun, ein Volladdierer ist im Grunde eine Kombination aus einem XOR und einem AND-Gatter ... aber tatsächlich kann das XOR auf clevere Weise erstellt werden, ohne die grundlegenden Gatter zu verwenden

Bei CMOS neige ich dazu, mir einen Grundbaustein als einen Inverter vorzustellen, dem eine willkürliche Kombination aus unabhängigen „und“- und „oder“-Gattern ohne Zwischenverbindungen zwischen ihnen vorangeht; alle folgenden Funktionen:

not (X and (Y or Z))
not (X or (Y and Z))
not (X and Y and Z)
not (X or Y or Z)

haben im Wesentlichen die gleichen Siliziumkosten, obwohl nur die beiden letzteren Namen haben. Der Versuch, die ersten beiden Funktionen mit einer Kombination von NAND- oder NOR-Gattern zusammenzusetzen, würde etwas ergeben, das viel größer und langsamer wäre als eine direkte Realisierung.