Ich habe mich gefragt, ob System Verilog eine Fähigkeit hat, die Variablennamen im laufenden Betrieb zu ändern. Zum Beispiel habe ich den folgenden Code:Änderung der Variablenbezeichnung im SystemVerilog
var1 = 1;
var2 = 2;
var3 = 3;
und ich mag die folgenden Prüfungen
if(var1 == 1)
$display("var1 matched");
if(var2 == 2)
$display("var2 matched");
if(var3 == 3)
$display("var3 matched");
So im obigen Fall tun, wenn ich ‚n‘ Variablen, werde ich ' n Schecks.
Also aus diesem Grund, ich war auf der Suche nach einer Alternative, die so etwas wie dies funktioniert:
for(int i=0; i<=3;i++)
if($sformatf("var%0d", i) == i) //here the variable name changes on the fly
$display("var%0d matched", i);
ich den obigen Code versucht, und es gab keine Fehler, aber es benahm sich nicht wie erwartet.
Ich habe auch versucht, einen String-Verkettung wie so
for(int i=0; i<=3;i++)
if({var,$sformatf("%0d", i)} == i)
$display("var%0d matched", i);
Überraschenderweise gab diese auch keine Fehler. Aber es war ein Vergleich von mir, also geht es immer weiter.
Kann mir jemand sagen, ob es etwas im System Verilog gibt, das ich verwenden könnte?
Dank
Sie können ein Array verwenden. – toolic