如何测试当前实例名称?

问题描述 投票:1回答:2

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

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

在Verilog或SystemVerilog中有什么方法可以做到这一点?我知道%m,但是它只允许打印实例名称。

谢谢。

instance verilog system-verilog
2个回答
3
投票

执行此操作的方法是

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

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

0
投票

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

function string current_instance_name();
return $psprintf("%m");
endfunction
© www.soinside.com 2019 - 2024. All rights reserved.