2015-01-29 2 views
5

Ich möchte einige Simulation Debugging in Verilog tun und möchte hinzufügen, dass einige Module hinzufügen, aber in der Lage sein möchten, die Ausgabe eines einzelnen Moduls zu verfolgen. Ich möchte in der Lage sein, den Namen zu erhalten, mit dem das aktuelle Modul instanziiert wurde, um das hinzuzufügen.Gibt es eine Möglichkeit, den Namen zu erhalten, mit dem ein Verilog-Modul instanziiert wurde?

Zum Beispiel:

module adder (...) 
    ... 
    $display($magic_instance_name, " ", in0, " + ", in1); 
    ... 

adder memory_address (...); 
adder fifo_nvals (...); 

Und dann würde die Ausgabe wie folgt aussehen:

memory_address 100 + 8 
fifo_nvals 3 + 1 
... 

Ein Weg, ich dies tun könnte, ist ein instance_name Parameter zu jedem Modul hinzuzufügen. Gibt es einen leichteren Weg?

Antwort

7

Sie können %m verwenden Sie den vollständigen Pfad einschließlich der eindeutigen Instanznamen zu erhalten:

module tb; 
    adder memory_address(); 
    adder fifo_nvals(); 
    initial #5 $finish; 
endmodule 

module adder; 
    initial $display(" hello from ... %m"); 
endmodule 

/* 

Prints: 

    hello from ... tb.memory_address 
    hello from ... tb.fifo_nvals 

*/