System verilog 不同的UVM包装方法有什么区别?
我想知道使用这两个有什么区别System verilog 不同的UVM包装方法有什么区别?,system-verilog,uvm,System Verilog,Uvm,我想知道使用这两个有什么区别 function void do_pack(uvm_packer packer); super.do_pack(packer); packer.pack_field_int(correct_data_in,$bits(correct_data_in)); packer.pack_field_int(valid_in,$bits(valid_in)); endfunction function void do_pack(uvm_packer packe
function void do_pack(uvm_packer packer);
super.do_pack(packer);
packer.pack_field_int(correct_data_in,$bits(correct_data_in));
packer.pack_field_int(valid_in,$bits(valid_in));
endfunction
function void do_pack(uvm_packer packer);
super.do_pack(packer);
`uvm_pack_intN(correct_data_in);
`uvm_pack_intN(valid_in);
endfunction
如果我们不打包/解包信号并直接将其驱动至DUT,会发生什么情况
此外,我们什么时候使用pack()和do_pack()。请举例说明。通常,在总线协议中,特定总线事务上会有大量数据,因此很难从该总线事务中提取特定字段值 因此,您可以在更高的级别上使用类,以便通过使用不同的字段,可以轻松地控制这些字段的值 但在真正的硬件中,一切都是以位模式的形式进行的,因此您需要根据协议将类字段转换为有效的位模式,并沿总线传输它们 为此,您需要
pack
和unpack
方法。您可以在发送器侧包装物品,并在接收器侧打开物品