我想打印出ovm_sequence_item中使用的结构。由于结构很长,我计划使用tbl_printer.knobs.value_width = 100覆盖表打印机旋钮;
这是代码片段
virtual function void do_print(ovm_printer printer);
ovm_table_printer tbl_printer;
super.do_print(printer); //print all other fields
$cast(tbl_printer, printer);
tbl_printer.knobs.value_width = 100;
tbl_printer.print_generic("ppid","CppPpid_t",$bits(CppPpid_t),
$psprintf("A=%0b,B=%0b,C=%0d,D=%0d,E=%0d,F=%0x",
struct.A,
struct.B,
struct.C,
struct.D,
struct.E,
struct.F)
);
endfunction: do_print
我收到了这个投射错误。 错误 - [DCF]动态转换失败 * .sv,58 将源类类型'SIP_SHARED_LIB.ovm_pkg.ovm_tree_printer'强制转换为 目标类类型'SIP_SHARED_LIB.ovm_pkg.ovm_table_printer'失败 键入不匹配。 请确保动态投射的匹配类型
有人可以帮我解决我做错的事吗?当我尝试使用ovm_printer时,它是如何获得ovm_tree_printer的?