我需要在generate if条件中使用当前实例名称(完整的层次结构名称):
generate
if (current_instance_name() == "a.b.c.foo")
...
在Verilog或SystemVerilog中有什么方法可以做到这一点?我知道%m,但是它只允许打印实例名称。
谢谢。
执行此操作的方法是
localparam string current_path = $sformatf("%m");
generate
if (current_path == "a.b.c.foo") begin ...
您仍然可以通过将%m传递到$ psprintf来使用它,它会返回一个字符串。以下功能可以解决您的问题:
function string current_instance_name();
return $psprintf("%m");
endfunction