gpt4 book ai didi

object - 如何使用在 SystemVerilog 中对其进行操作的方法获取实例的名称?

转载 作者:行者123 更新时间:2023-12-04 21:59:04 24 4
gpt4 key购买 nike

有什么方法可以获取它在 SystemVerilog 中操作的对象的名称?

就像实现

object1.printName()  

应该打印字符串
object1

最佳答案

不,语言中没有为类执行此操作的机制。

对于模块,您可以使用 %m用于显示分层名称的格式说明符。但是对于类,输出使用 %m显示类类型名称,而不是实例名称。 (至少那是 Incisive 和 Questa 观察到的行为。)还要注意 %m如果从函数中调用,将包括函数名称。

例子:

module test;

// Print %m in a module
function void printName();
$display("%m");
endfunction

class foo;

// Print %m in a class
virtual function void printName();
$display("%m");
endfunction

endclass

foo foo_inst = new;

endmodule

module top;
test test_inst();

initial begin
test_inst.foo_inst.printName();
test_inst.printName();
end
endmodule

输出:
top.test_inst.foo.printName
top.test_inst.printName

如果 %m 的输出很有用,您可以使用 $sformatf 在字符串中捕获它然后对其进行修改或做任何事情。

关于object - 如何使用在 SystemVerilog 中对其进行操作的方法获取实例的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12609036/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com