【发布时间】:2013-12-02 10:44:40
【问题描述】:
在 SystemVerilog 中,是否可以打印带有属性的整个对象? (这里不知道我的父类中声明了多少变量。)
【问题讨论】:
在 SystemVerilog 中,是否可以打印带有属性的整个对象? (这里不知道我的父类中声明了多少变量。)
【问题讨论】:
虽然 LRM 没有提及,但某些模拟器允许您使用$display("%p", object_handle);。
这很可能是您的对象的浅打印,这意味着它不会打印您的对象包含的任何类对象。它也不允许您格式化单个属性,例如基数。由于这些原因,您应该只将其用于快速调试。
大多数方法,如 UVM,要求您在所有类中提供一组虚拟方法,如 convert2string() 或 print()。这样,您可以在类的 print() 方法中调用 super.print() 以打印基类中的所有属性,并且您可以对 property_handle.print() 进行类以打印包含的类的所有成员。
【讨论】: