uvm_object具有许多常见功能,如打印、复制和比较,这些功能可用于其所有子类,如果在类定义中使用uvm自动化宏,则可以开箱即用。在前一篇文章中,讨论了print、do_print和使用自动化宏进行打印。
名为Packet的类使用单个变量定义,并使用uvm_object_utils_begin 和uvm_object_utils_end之间的UVM自动化宏进行注册。与UVM_DEFAULT设置一起使用的变量意味着该变量将包含在所有自动方法中,如复制(copy)、打印(print)等,除非特别提及。
Packet的一个对象在另一个名为Object的类中实例化,同时还有一堆不同数据类型的其他变量。与Packet class 类似,对象中的所有变量都使用相应的宏类型向UVM自动化宏注册。例如,字符串变量需要“uvm_field_string”。