Warum deklarieren wir die Eingänge unseres Designs in der Testbench als Reg und die Ausgänge als Draht?

Warum deklarieren wir die Eingänge unseres Designs als reg in der Testbench und die Ausgänge als Draht ?

Antworten (2)

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.

DUT- Pin-Signale als Draht deklariert? Bist du sicher, dass du das gemeint hast?
Ich hätte wahrscheinlich nicht den Begriff "Pin" verwenden sollen. Ich meinte, dass alle Netze, die an Ports des DUT angeschlossen sind, als Drähte deklariert werden könnten, falls die DUT-Eingänge von einem anderen Strukturmodell angesteuert werden, das in der Testbench instanziiert wird. (anstatt sie aus Verhaltenscode in der Testbench zu steuern).

Nur in Verilog werden Eingaben als regund Ausgaben als deklariert wire. In SystemVerilog verwenden wir logicfür die 4-Zustands-Simulation und bitfür die 2-Zustands-Simulation.

In Verilog werden Eingänge als deklariert, regweil sie Variablen sind, die während der Simulation Werte speichern. Der Wert wird in den Eingängen des Typs gespeichert, regbis 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 wirenur 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