Sind die Bausteine ​​komplexer Schaltungen aus Gattern oder Transistoren aufgebaut?

Ich kann wahrscheinlich das Design einer Vollotter als Netzwerk von Toren auf den Kopf stellen. Und in ein paar Minuten kann ich wahrscheinlich Schaltpläne für alle beteiligten Gatter geben.

Aber werden so wirklich Bausteine ​​größerer Designs zusammengesetzt? Als Programmierer verbringe ich die meiste Zeit in einer Hochsprache, aber ich bin dafür bekannt, dass ich für enge innere Schleifen auf Assembler zurückgreife, einfach weil die Abstraktionen ein wenig Effizienz kosten und in manchen Bereichen jeder Zyklus zählt .

In ähnlicher Weise könnte ich mir eine Situation vorstellen, in der ein Addierer nicht aus diskreten und trennbaren Gattern, sondern als komplexere Verschmelzung einzelner Transistoren konstruiert wäre, um den Stromverbrauch / die Latenzzeit / was auch immer zu verbessern.

Lohnt es sich möglicherweise und wird es in der Praxis praktiziert, Module wie Addierer auf Transistorebene zu entwerfen, oder ist alles nur Gatter?

Zum größten Teil wird alles in einer Hardwarebeschreibungssprache (Verilog oder VHDL) gemacht, nicht auf Gate-Ebene. Diese Sprachen ermöglichen ein modulares und hierarchisches Design. Während der Synthese, die ein automatisierter Schritt ist, würden Optimierungen verwendet, um Logik zu eliminieren, die keinen Zweck erfüllt. Ich glaube, dass dies in Hardware einfacher zu erkennen ist als in Software (Compiler tun ihr Bestes, lassen aber manchmal ungenutzten Code zurück). Ich wäre nicht überrascht, wenn einige Teile eines Hardwaredesigns manchmal manuell angepasst werden, um das Timing oder ähnliches einzuhalten. Aber in einem großen Design gibt es sehr viele Transistoren.
Bei ASICs reicht die Frage sogar bis auf die Ebene der Produktionsmasken. Da die Merkmalsgrößen geschrumpft sind, sehen die Masken wegen der optischen Beugung nicht mehr sehr wie die resultierende Maske auf dem Wafer aus. Es gibt einen Algorithmus, um die Masken selbst zu optimieren, damit sie am Ende das Richtige produzieren, und dieser Algorithmus ist sehr spezifisch für die Fabrik und den Prozess. Aber wenn ein "Konzept" wichtig genug ist und/oder oft genug verwendet wird, ist es immer möglich, dem Compiler beizubringen, es zu erkennen und einen vorgefertigten Ansatz auf einer angemessenen Abstraktions- oder Konkretheitsebene anzuwenden. Dasselbe gilt für das Entwerfen von Elektronik.
Kosten-Nutzen-Analysen sind König. Es kommt nicht oft vor, dass es die Zeit wert ist, einen Transistor von einer Schaltung zu entfernen, um ihn auf diese Weise zu modellieren. Ich erinnere mich jedoch an einen bestimmten Cache aus dem DEC Alpha, der ungetaktet war. Es beruht auf der Kenntnis der genauen Ausbreitungsverzögerungen durch die Transistoren, um sicherzustellen, dass die Daten zum richtigen Zeitpunkt ausgegeben werden. Machte es wirklich schnell ... und schlecht skaliert. Innerhalb weniger Jahre dominierten die traditionelleren Caches.
Um Ihre Frage einfach zu beantworten, ja, es läuft alles auf Transistoren hinaus. MOSFETs, speziell. Die Verwendung diskreter Transistoren ist nicht unbedingt effizienter als vorgefertigte ICs und wäre wahrscheinlich auch teurer.

Antworten (2)

Absolut. Wenn Sie ein hochleistungsfähiges, vollständig kundenspezifisches Chipdesign durchführen, wird alles getan, um einen Vorteil zu erzielen, einschließlich des Designs kritischer Blöcke auf Transistorebene. Aber selbst auf der Ebene einer Standardzellenbibliothek werden Dinge wie Addierer mit komplexeren Blöcken als einfachen UND- und ODER-Gattern implementiert. Ein Volladdierer kann aus einer spezialisierteren Sammlung von Transistoren aufgebaut werden, als das, was direkt den äquivalenten Logikgattern entsprechen würde. Eine Standardzellenbibliothek enthält mehrere Variationen von Voll- und Halbaddiererzellen neben den einfacheren Gattern AND, OR, NOT, XOR usw. sowie einige gängige Kombinationen wie And-or-Invert (AOI) und ähnliches relativ häufig und können auf Transistorebene effizienter aufgebaut werden. Gleiches gilt für Riegel und Flip-Flops. Sie werden kein Paar kreuzverbundener Tore für einen Riegel verwenden,

Ich habe Freunde, sehr stark in Verilog und VHDL, die mir von verschiedenen Optimierungsschaltern erzählen: schnellste, niedrigste Fläche, niedrigste Leistung usw. Das Synthesizer-Tool kann unterschiedlich gestaltete Gates haben, vielleicht die gleiche Topologie, aber mit unterschiedlichen Transistoren, für unterschiedliche Zwecke.

Es sind "Synthese"-Werkzeuge ... Synthesizer-Werkzeuge dienen zum Erstellen von 12-minütigen Soli von Emerson Lake und Palmer