如何测试当前实例名称?

时间:2014-09-30 08:24:23

标签: instance verilog system-verilog

我需要在generate if条件中使用当前实例名称(完整层次名称):

generate
   if (current_instance_name() == "a.b.c.foo")
   ...

在Verilog或SystemVerilog中有没有办法做到这一点? 我知道%m,但它只允许打印实例名称。

感谢。

2 个答案:

答案 0 :(得分:3)

这样做的方法是

localparam string current_path = $sformatf("%m");

generate
if (current_path = "a.b.c.foo") begin ...

答案 1 :(得分:0)

你仍然可以通过将%m传递给$ psprintf来使用它,这将返回一个字符串。以下功能可以解决您的问题:

function string current_instance_name();
return $psprintf("%m");
endfunction