Warum deklarieren wir die Eingänge unseres Designs als reg in der Testbench und die Ausgänge als Draht ?
Shashanks Antwort ist gut.
Ich möchte hinzufügen, dass in einer anspruchsvolleren Testbench alle DUT-Pin-Signale als Drähte deklariert werden könnten, da Sie vielleicht wählen, ob ein anderes Modul Ihre DUT-Eingänge ansteuern soll (dh ein Bus-funktionales Modell).
Wenn alle Ihre Stimuli direkt von der Testbench getrieben werden, ist es sinnvoll, DUT-Eingangssignale im Testbench-Modul als Reg (oder Logik) zu deklarieren.
Nur in Verilog werden Eingaben als reg
und Ausgaben als deklariert wire
. In SystemVerilog verwenden wir logic
für die 4-Zustands-Simulation und bit
für die 2-Zustands-Simulation.
In Verilog werden Eingänge als deklariert, reg
weil sie Variablen sind, die während der Simulation Werte speichern. Der Wert wird in den Eingängen des Typs gespeichert, reg
bis er durch einen anderen Wert überschrieben wird.
Der Datentyp wird für Ausgänge verwendet, da Ausgänge in der Testbench kontinuierlichwire
vom DUT (Device Under Test) angesteuert werden und während der Simulation keinen Wert speichern.
Deklarieren Sie in SystemVerilog ein Signal als wire
nur dann, wenn Sie davon ausgehen, dass es mehrere Treiber hat.
Weiterführende Literatur: Mr. Dave Richs exzellenter Blog über wire and reg auf Siemens Blogs
Shashank-VM
Forellenhund