2017-03-03 3 views
2

Ich bin ein Anfänger in der Schaltungssynthese, und ich stieß auf das Wort net viel, aber ich bin nie in der Lage, seine Standarddefinition zu finden. Es scheint mir, dass es sich auf irgendeine Art von "Black Box" bezieht, wo es Eingaben empfängt und Ausgaben produziert. Es kann also eine Unterschaltung innerhalb einer großen Schaltung sein und es kann eine Anordnung von Gattern sein. Ist mein Verständnis richtig?Was ist "net" in HDL-Synthese

Antwort

5

Nein, Ihr Verständnis ist nicht korrekt.

Verilog

in Verilog, net hat eine präzise Definition:

IEEE 1800-2012 Zustände:

6,5 Nets und Variablen

Es gibt zwei Hauptgruppen von Datenobjekten: Variablen und n ets. Diese beiden Gruppen unterscheiden sich in der Art und Weise, in der sie zugewiesen sind und Werte halten.

Ein Netz kann durch eine oder mehrere fortlaufende Zuweisungen , durch primitive Ausgaben oder durch Modulanschlüsse geschrieben werden. Der resultierende Wert mehrerer Treiber wird durch die Auflösungsfunktion des Netztyps bestimmt. Ein Netz kann nicht prozedural zugeordnet werden.

Ein Netz kann eine von vielen Arten, zum Beispiel: wire, supply0, wand, aber bei weitem die häufigste Art ist wire.

IEEE 1800-2012 geht weiter:

Variablen können durch eine oder mehr Verfahrenserklärungen geschrieben werden, einschließlich prozeduralen kontinuierlichen Zuweisungen. Der letzte Schreibvorgang bestimmt den Wert. Alternativ können Variablen durch eine fortlaufende Zuweisung oder einen Port geschrieben werden.

Der wesentliche Unterschied zwischen dem Verhalten einer Variablen und einem Netz ist ihr Verhalten, wenn sie von mehr als einem Ort zugeordnet, wie durch den fett gedruckten Text in den beiden Zitate hervorgehoben:

Für eine Netto- Wenn Sie ihm mehr als einen Platz zuweisen, wird sein resultierender Wert durch eine Auflösungsfunktion bestimmt, die für die integrierten Netztypen (wire usw.). Das Verhalten der Auflösungsfunktion hängt vom Netztyp ab und ist der Unterschied zwischen den Netztypen. Wenn also zum Beispiel wire1'b0 und 1'b1 zugewiesen werden, lautet der resultierende Wert 1'bx (unbekannt), wenn beide Zuweisungen Werte mit derselben Stärke zuweisen. Die Auflösungsfunktion soll reale Elektronik modellieren. (Es gibt auch die zusätzliche Komplikation von benutzerdefinierten Netztypen und Laufwerkstärken, aber lass diese für diese Diskussion aus.)

Für eine Variable, wenn Sie mit dem, was auch immer Wert geschrieben zuletzt (wie eine normale Software-Variable) vergeben wird, um es von mehr als einem Ort, dessen resultierende Wert bestimmt. Wenn also beispielsweise eine 1'b0 zugewiesen wird und dann eine 1'b1 zugewiesen wird, lautet der resultierende Wert 1'b1, da dieser Wert zuletzt zugewiesen wurde. Es ist weder eine Auflösungsfunktion noch ein Konzept der Antriebsstärke vorhanden.

Beide Netze und Variablen werden verwendet, um kombinatorische Logik und sequentielle Logik zu modellieren. Es gibt Regeln dafür, wann Sie ein Netz benutzen dürfen und wann Sie eine Variable verwenden können und deren Wahl durch diese Regeln (in den obigen Zitaten angegeben) geregelt wird. Diese waren streng in Verilog, wurden aber in System-Verilog in einem solchen Maße gelockert, dass Sie, wenn Sie nicht mit Tristate-Logik arbeiten, in System-Verilog keine Netze benötigen.

VHDL hat genau die gleiche Unterscheidung. Das VHDL-Äquivalent eines Verilog-Netzes ist ein Signal; Das VHDL-Äquivalent einer Verilog-Variablen ist eine Variable. Die Regeln, in VHDL zu verwenden, sind jedoch anders und strenger (keine Überraschung).

Electronics

In der Elektronik ein net bedeutet ein Stück Metall durch den Strom fließt. Mit anderen Worten, ein Netz ist die Verbindung zwischen einem Ort und einem anderen. Physikalisch könnte es eine Leiterbahn, ein Kabel, ein Bonddraht oder eine Metallverbindung auf einem IC sein. Im Allgemeinen ist es in der digitalen Elektronik am meisten eine Metallverbindung auf einem IC zu sein.

Synthese

, also Ihre Frage zu beantworten, wenn jemand den Begriff „Netz“ verwendet, wenn über den Ausgang einer Logik-Synthesizer sprechen (die Gate-Level-Netzliste), meinen sie mit ziemlicher Sicherheit der zweite Idee: das Konstrukt in welchem ​​Format auch immer diese Gate-Level-Netzliste verwendet, die die Verbindung zwischen einem Gate und einem anderen modelliert. Da es für Synthesizer üblich ist, ihre Gate-Level-Netzliste als Verilog auszugeben, werden diese Verbindungen zwischen Gates wahrscheinlich unter Verwendung von Verilog-Netzen auf jeden Fall modelliert (wahrscheinlich wire s).