Netzliste - Netlist

Im elektronischen Design ist eine Netzliste eine Beschreibung der Konnektivität einer elektronischen Schaltung . In ihrer einfachsten Form besteht eine Netzliste aus einer Liste der elektronischen Komponenten in einer Schaltung und einer Liste der Knoten, mit denen sie verbunden sind. Ein Netzwerk (Net) ist eine Sammlung von zwei oder mehr miteinander verbundenen Komponenten.

Struktur, Komplexität und Darstellung von Netzlisten können erheblich variieren, aber der grundlegende Zweck jeder Netzliste besteht darin, Konnektivitätsinformationen zu übermitteln . Netzlisten bieten normalerweise nichts weiter als Instanzen, Knoten und vielleicht einige Attribute der beteiligten Komponenten. Wenn sie viel mehr ausdrücken, werden sie normalerweise als Hardwarebeschreibungssprache wie Verilog oder VHDL oder als eine von mehreren Sprachen angesehen, die speziell für die Eingabe in Simulatoren oder Hardware-Compiler entwickelt wurden .

Netzlisten können physikalische oder logische , instanzbasierten oder netzbasierten und flach oder hierarchisch . Letztere kann entweder gefaltet oder entfaltet werden .

Inhalt und Aufbau einer Netzliste

Die meisten Netzlisten enthalten oder verweisen auf Beschreibungen der verwendeten Teile oder Geräte. Jedes Mal, wenn ein Teil in einer Netzliste verwendet wird, wird dies als "Instanz" bezeichnet.

In diesen Beschreibungen werden normalerweise die Verbindungen aufgeführt, die zu diesem Gerätetyp hergestellt werden, sowie einige grundlegende Eigenschaften dieses Geräts. Diese Verbindungspunkte werden unter mehreren anderen Namen "Terminals" oder "Pins" genannt.

Eine "Instanz" kann alles sein, von einem MOSFET- Transistor oder einem Bipolartransistor bis hin zu einem Widerstand , einem Kondensator oder einem integrierten Schaltungschip .

Instanzen haben "Terminals". Bei einem Staubsauger wären diese Anschlüsse die drei Metallzinken im Stecker. Jedes Terminal hat einen Namen, und in Fortführung des Staubsaugerbeispiels könnten sie "Neutral", "Live" und "Ground" lauten. Normalerweise hat jede Instanz einen eindeutigen Namen. Wenn Sie also zwei Instanzen von Staubsaugern haben, kann eine "vac1" und die andere "vac2" sein. Abgesehen von ihren Namen könnten sie ansonsten identisch sein.

Netzwerke (Netze) sind die "Drähte", die die Dinge in der Schaltung miteinander verbinden. Den Netzen in einem Design können spezielle Attribute zugeordnet sein oder auch nicht, abhängig von der speziellen Sprache, in der die Netzliste geschrieben ist, und den Merkmalen dieser Sprache.

Instanzbasierte Netzlisten bieten normalerweise eine Liste der Instanzen, die in einem Design verwendet werden. Zusammen mit jeder Instanz wird entweder eine geordnete Liste von Netznamen bereitgestellt oder eine Liste von bereitgestellten Paaren eines Instanz-Portnamens zusammen mit dem Netznamen, mit dem dieser Port verbunden ist. Bei dieser Art der Beschreibung kann die Liste der Netze aus den Verbindungslisten gewonnen werden, und es gibt keine Möglichkeit, den Netzen selbst bestimmte Attribute zuzuordnen. SPICE ist ein Beispiel für instanzbasierte Netzlisten.

Netzbasierte Netzlisten beschreiben normalerweise alle Instanzen und ihre Attribute, beschreiben dann jedes Netz und geben an, mit welchem ​​Port sie an jeder Instanz verbunden sind. Dadurch können Attribute mit Netzen verknüpft werden. EDIF ist wahrscheinlich die bekannteste der netzbasierten Netzlisten.

Hierarchie

Bei großen Designs ist es üblich, das Design in Teile aufzuteilen, wobei jedes Teil zu einer "Definition" wird, die als Instanzen im Design verwendet werden kann. In der Staubsauger-Analogie könnte man eine Staubsauger-Definition mit ihren Anschlüssen haben, aber jetzt würde diese Definition auch eine vollständige Beschreibung der internen Komponenten der Maschine und ihrer Verbindung (Motoren, Schalter usw.) enthalten, wie es ein Schaltplan tut .

Eine Definition, die keine Instanzen enthält, wird "primitiv" (oder "Blatt" oder andere Namen) genannt; wohingegen eine Definition, die Instanzen einschließt, "hierarchisch" ist.

Eine "gefaltete" Hierarchie ermöglicht die mehrfache Darstellung einer einzelnen Definition durch Instanzen. Eine "entfaltete" Hierarchie erlaubt nicht, dass eine Definition mehr als einmal in der Hierarchie verwendet wird.

Gefaltete Hierarchien können extrem kompakt sein. Eine kleine Netzliste mit wenigen Instanzen kann Designs mit sehr vielen Instanzen beschreiben. Nehmen wir zum Beispiel an, Definition A ist ein einfaches Primitiv, wie eine Speicherzelle. Angenommen, Definition B enthält 32 Instanzen von A; C enthält 32 Instanzen von B; D enthält 32 Instanzen von C; und E enthält 32 Instanzen von D. Das Design enthält jetzt 5 Definitionen (A bis E) und 128 Instanzen. E beschreibt jedoch eine Schaltung, die über eine Million Speicherzellen enthält.

Entfaltung

In einem "flachen" Design werden nur Primitive instanziiert. Hierarchische Designs können rekursiv "explodiert" ("abgeflacht") werden, indem bei jeder Verwendung eine neue Kopie (mit einem neuen Namen) jeder Definition erstellt wird. Wenn das Design stark gefaltet ist, führt eine solche Erweiterung zu einer viel größeren Netzlistendatenbank, behält jedoch die Hierarchieabhängigkeiten bei. Bei einer gegebenen hierarchischen Netzliste spezifiziert die Liste von Instanznamen in einem Pfad von der Wurzeldefinition zu einer primitiven Instanz den einzelnen eindeutigen Pfad zu dieser primitiven Instanz. Die Pfade zu jedem Primitiv umfassen zusammengenommen eine große, aber flache Netzliste, die genau der kompakten hierarchischen Version entspricht.

Backannotation

Backannotation sind Daten, die zu einer hierarchischen Netzliste hinzugefügt werden können. Normalerweise werden sie von der Netzliste getrennt gehalten, da mehrere solcher alternativer Datensätze auf eine einzelne Netzliste angewendet werden könnten. Diese Daten können aus einem physischen Entwurf extrahiert worden sein und können zusätzliche Informationen für genauere Simulationen liefern. Normalerweise bestehen die Daten aus einem hierarchischen Pfad und einem Datenelement für dieses Grundelement oder das Finden der Werte der RC-Verzögerung aufgrund der Verbindung.

Nachlass

Ein weiteres Konzept, das häufig in Netzlisten verwendet wird, ist das der Vererbung. Angenommen, eine Definition eines Kondensators hat ein zugehöriges Attribut namens "Capacitance", das der gleichnamigen physikalischen Eigenschaft mit einem Standardwert von "100 pF" (100 Picofarad) entspricht. Jede Instanz dieses Kondensators kann auch ein solches Attribut haben, nur mit einem anderen Kapazitätswert. Und andere Instanzen assoziieren möglicherweise überhaupt keine Kapazität. Falls für eine Instanz keine Kapazität angegeben ist, "erbt" die Instanz den 100 pF-Wert aus ihrer Definition. Ein angegebener Wert "überschreibt" den Wert in der Definition. Wenn am Ende viele Attribute mit der Definition übereinstimmen, können viele Informationen "vererbt" werden und müssen nicht redundant in der Netzliste angegeben werden, was Platz spart und das Design für beide leichter lesbar macht Maschinen und Menschen.

Verweise