有没有办法让Verilog模块的名称被实例化?

时间:2015-01-29 21:26:29

标签: verilog

我想在Verilog中进行一些模拟调试,并希望将$display添加到某些模块,但希望能够跟踪单个模块提供的输出。我希望能够获得当前模块实例化的名称,以添加到$display

例如:

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

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

然后输出看起来像:

memory_address 100 + 8
fifo_nvals 3 + 1
...

我可以这样做的一种方法是为每个模块添加instance_name参数。有更简单的方法吗?

1 个答案:

答案 0 :(得分:7)

您可以使用%m获取包含唯一实例名称的完整路径:

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

*/