Ich bin neu im System Verilog und UVM, und ich habe bereits diesen Thread gesehen:Erzwingen mehrere Drähte in Ausführung SV/UVM
Ich kann nicht überall ein gutes Beispiel finden auf Welche Art von Syntax sollte ich verwenden, um mehrere Drähte in einem Entwurf mit regulären Ausdrücken/Platzhaltern zu erzwingen.
Zum Beispiel:
Lassen Sie uns sagen, ich habe ein Modul namens my_fifo, die in den Entwurf mehrfach instanziert:
top.dut.my_fifo_in
top.dut.master.my_fifo_a
top.dut.slave.axi.my_fifo_out
und der Block my_fifo enthält einen Draht genannt:
wire force_me_to_1 = 1'b0;
Ich möchte diese Leitung in allen Instanzen erzwingen, die mit "my_fifo" beginnen. So etwas wie (entschuldigen Sie mich für die Syntax, es ist nur meine Absichten für die Klärung):
force "*my_fifo*.force_me_to_1" = 1'b1;
Und es wird, dass Draht 1 in allen oben genannten Fällen machen.
Es gibt keine Möglichkeit von außerhalb des Moduls in der Sprache zu tun. – Serge
Ich stimme zu. Ich habe mich gefragt, ob 'uvm_hdl_force' eine Wildcard nehmen könnte, aber es sieht nicht so aus. –
Vielen Dank für die Antworten. Was meinen Sie mit außerhalb des Moduls? Meinst du, dass es nicht als Teil der Schnittstelle zu einem DUT getan werden kann? Was ist mit der Verwendung von Assign anstelle von Kraft? Und zuletzt - was würden Sie stattdessen vorschlagen? – EEliaz