在SystemVerilog中,是否可以使用属性打印整个对象? (这里我不知道在我的父类中声明了多少变量。)
答案 0 :(得分:6)
虽然LRM没有提到它,但是一些模拟器允许你使用$display("%p", object_handle);
。
这很可能是对象的浅色打印,这意味着它不会打印对象包含的任何类对象。它也不允许您格式化单个属性,例如radix。出于这些原因,您应该只使用它来进行快速调试。
大多数方法,如UVM,都要求您在所有类中提供一组虚拟方法,例如convert2string()或print()。这样,您可以在类的print()方法中调用super.print()
来打印基类中的所有属性,并且可以通过类property_handle.print()
来打印包含类的所有成员。