我想在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
参数。有更简单的方法吗?
答案 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
*/