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

12

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

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

Zweitens frage ich mich , wenn alles auf diese Weise erhöht sich die Ausbreitungsverzögerung im Vergleich zu einer Schaltung konstruieren , die unter Verwendung AND/ OR/ NOTals auch Tore.

Ich weiß , dass bei der Verwendung von PMOS/ NMOSKonfigurationen zu bauen Tore, ein ANDoder ORkommt als 2 Stufen aus im Gegensatz zu einer NANDoder eine , NORdie beide nur 1. Da ich weiß , dass du ein machen ANDaus zwei kaskadierten NANDs und einer ORvon zwei kaskadierten NORs, es Es scheint, als würde die Ausbreitungsverzögerung nicht zunehmen, solange die Hersteller sowohl NANDs als auch NORs verwenden.

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

llakais
quelle

Antworten:

10

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

Register bestehen nicht aus Gates, sondern sind meistens dedizierte Schaltkreise. Sie können als mit Invertern ( NOT) erstellt angesehen werden, jedoch nur bis zu einem gewissen Grad.

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

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

Bedenken Sie, dass in einigen Fällen eine Schaltung aus getrennten Blöcken bestehen kann. In diesem Fall kann der Ausgang über einen oder mehrere Inverter zum Puffern verbunden sein.

Ein weiterer Vorteil ist die Integration . Eine kleine Anzahl verschiedener Gates hilft beim Aufbau der Schaltung und beim Vereinheitlichen der Leistung. Oft enthalten Bibliotheken Logikblöcke mit unterschiedlichen Komplexitätsebenen: Transistor, Gate, Operator oder höher.

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

Clabacchio
quelle
Okay, ich denke das macht Sinn für mich. Zur Kontrolle - sagen wir, 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 nähern versuchen , nur zu verwenden NANDund NORTore, und so wenig wie möglich von diesen? Wird dies ergeben fast immer ein besseres Design (in Bezug auf die Verzögerung / gate count) , als wenn ich das Problem mit ein vollständiges Repertoire von Toren näherte und dann ersetzt AND/ OR/ NOTmit ihren Toren NAND/ NORÄquivalente?
Llakais
@llakais auf fast jeden 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 Haben Sie den Volladdierer mit Pass-Transistor-XOR-Gattern implementiert, so gibt es manchmal unterschiedliche Lösungen.
Clabacchio
Ich werde erwähnen, dass für Addierer eine Volladdiererzelle normalerweise die schnellste ist, nicht eine Kombination von Toren.
W5VO
@ W5VO Nun, ein Volladdierer ist im Grunde eine Kombination aus einem XOR- und einem UND-Gatter ... aber in der Tat kann das XOR auf clevere Weise ohne Verwendung der grundlegenden Gatter erstellt werden
clabacchio
3

Meine Neigung zu CMOS besteht darin, mir einen Grundbaustein als Wechselrichter vorzustellen, dem eine willkürliche Kombination von unabhängigen "und" und "oder" Gattern ohne gegenseitige Verbindung vorausgeht. 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 Kosten in Silizium, obwohl nur die beiden letzteren Namen haben. Der Versuch, die ersten beiden Funktionen unter Verwendung einer Kombination von NAND- oder NOR-Gattern zu komponieren, würde etwas ergeben, das viel größer und langsamer ist als eine direkte Realisierung.

Superkatze
quelle