可以看到uvm_default_printer本质上是一个uvm_table_printer类型的全局变量,进一步查看uvm_table_printer的定义,如图12所示 图12 uvm_printer.svh中uvm_table_printer的定义 从图12中不难看出uvm_table_printer继承自uvm_printer,uvm_table_printer规定了打印出来的格式类似于一张表格,并且为了进行格式的对其使用calculate...
在test的build_phase中,添加如下code: uvm_default_printer.knobs.begin_elements = 2; uvm_default_printer.knobs.end_elements=3; 如下图所示: 4.2 打印的数量和样式 5.uvm_default_printer 6.uvm_table_printer 7.uvm_printer 审核编辑:汤梓红
printer是个uvm_printer类型的对象,关于uvm_printer的定义如下: 这是一个virtual类,所以他的所有的内部的函数都是在它的子类中实现的 我们在调用print_topology()的时候没有传入任何参数,所以printer为null,那么printer就会被赋值为uvm_default_printer,我们再看看uvm_default_printer的定义 可以看到uvm_default_printer是...
uvm_default_line_printer : 可以将对象数据打印到一行上; uvm_default_table_printer : 可以将对象按照表格的方式打印; uvm_default_printer : UVM坏境默认的打印设置,该句柄默认指向了 uvm_default_table_printer • 通过给全局打印机uvm_default_printe赋予不同的打印机句柄, 就可以在调用行何uvm_object的prin...
只要在field automation中声明过的域,在稍后的print()函数执行时,都将打印出它们的类型、大小和数值。如果用户不对打印的格式做出修改,那么在打印时,UVM会按照UVM_default_printer规定的格式来打印。 uvm_pkg所包含的用于打印的全局对象,它们分别是: ※ uvm_default_tree_printer: 可以将对象按照树状结构打印。
1.uvm_printer使用示例 (1) 在调用uvm_top.print_topology()函数时,可以不指定uvm_printer参数; (2) 在不指定uvm_printer参数的情况下,会使用uvm_default_table_printer; (3) 如果有需要指定uvm_printer参数,可以指定为其他参数,如uvm_default_tree_printer, uvm_default_line_printer或其他用户自定义的printer;...
print – print方法基于给定的print参数,以特定的格式和风格,详尽地打印该对象的属性。如果没有提供参数,那么就使用全局对象uvm_default_printer. UVM还提供了很多策略诸如uvm_line_printer/uvm_tree_printer/uvm_table_printer等等。 sprint – sprint方法跟print方法基本一致,区别是sprint会把结果作为字符返回,而不是...
默认的printer,为table_printer,在uvm内部被显示的new之后,typedef为default printer; 三种printer,之间可以相互重载,单独封装,相互替代,这种在设计模式中,也被称为strategy,或policy; 一个最重要的变量: 1)uvm_printer_row_info m_rows[$],结构体类型,内部包含:level,name,type_name,size,value信息; ...
uvm_default_printer.knobs.size=0;// Will not display the size columnuvm_default_printer.knobs.indent=4;// Indents to the right by 4 spaces instead of the default 2uvm_default_printer.hex_radix="0x";// Replaces the hex radix of 'h with 0x ...
在uvm_pkg中例化了不少全局对象,在本节中我们会使用到的全局配置对象包括有uvm_default_comparer, uvm_default_printer和uvm_default_packer。 如果用户不想使用默认的比较配置,而是想自己对比较 进行设定,可以考虑创建一个uvm_comparer对象,或者修改全局的uvm_comparer对象。