如果不使用宏注册的话,那么当调用print函数时,在显示结果中就看不到其值,但是如果使用了宏,结果就是这个根本就不需要在pack和unpack操作中出现的字段出现了,采用在后面的控制域中加入UVM_NOPACK的形式来实现:`uvm_field_int(crc_err, UVM_ALL_ON | UVM_NOPACK)...
pack_ints:将所有的字段打包成int(4个byte,或者dword)流。 unpack_ints:将一个int流逐一恢复到某个类的实例中。 print:打印所有的字段。 标志位的使用 //关闭pack与unpack操作 `uvm_field_int(crc_err, UVM_ALL_ON|UVM_NOPACK) 1. 2. 类似的还有UVM_NOCOMPARE、UVM_NOPRINT、UVM_NORECORD、UVM_NOCOPY...
若对某个注册的字段不想执行pack/unpack功能,则可将它的FLAG设置为UVM_ALL_ON | UVM_NOPACK,则该参数变为17'b0000_0110_1010_101,这样UVM在执行pack操作时,首先检查第9位bit no_pack,发现其为1,则直接忽略第8位bit代表的UVM_PACK。uvm_field宏的标志位具体情况如下图所示: 除了以上普通类型的uvm_field宏,...
uvm_field_array_int(pload, UVM_ALL_ON) uvm_field_int(crc, UVM_ALL_ON) uvm_field_int(crc_err, UVM_ALL_ON | UVM_NOPACK) uvm_object_utils_end function new(string name = "my_transaction"); super.new(); endfunction uvm_object_utils_begin(my_transaction) uvm_field_int(smac, UVM_AL...
若对某个注册的字段不想执行pack/unpack功能,则可将它的FLAG设置为UVM_ALL_ON | UVM_NOPACK,则该参数变为17'b0000_0110_1010_101,这样UVM在执行pack操作时,首先检查第9位bit no_pack,发现其为1,则直接忽略第8位bit代表的UVM_PACK。uvm_field宏的标志位具体情况如下图所示:...
`uvm_field_int(crc, UVM_ALL_ON | UVM_NOPACK) `uvm_field_int(is_vlan, UVM_ALL_ON | UVM_NOPACK) `uvm_object_utils_end 在调用过程中,可使用seq的uvm_do_with宏进行约束定义, 或在seq中手动实现tr的实例化,实例化使用randomize时候提供with约束。 打印冗余度设置 设置了当前的component冗余度,base...
parameter UVM_NOPACK = (1<<9); //parameter UVM_DEEP = (1<<10); //parameter UVM_SHALLOW = (1<<11); //parameter UVM_REFERENCE = (1<<12); parameter UVM_PHYSICAL = (1<<13); parameter UVM_ABSTRACT = (1<<14); parameter UVM_READONLY = (1<<15); ...
UVM考虑到了这一点,它采用在后面的控制域中加入UVM_NOPACK的形式来实现: 代码清单3-4229`uvm_object_utils_begin(my_transaction)30`uvm_field_int(dmac, UVM_ALL_ON)31`uvm_field_int(smac, UVM_ALL_ON)32`uvm_field_int(ether_type, UVM_ALL_ON)33`uvm_field_array_int(pload, UVM_ALL_ON)34`uv...
UVM_ALL_ON|UVM_NO_PACK这样就会忽略掉packbit field-automation的macro可以和if结合起来,参考3.3.4的代码 这个is_vlan变量可以在sequence里约束成0或1,来实现vlan或非vlan ps:我觉得这个地方代码其实写成像3.3.3里的有一个crc_error的randbit的更合理一些。然后crc_error是UVM_ALL_ON|UVM_NOPACK,而crc是UVM_...
然后 crc_error uvm_field_int(smac, UVM_ALL_ON)是 UVM_ALL_ON|UVM_NOPACK ,而 crc 是 UVM_ALL_ON if( is_vlan)begin3.4 UVM 打印信息控制uvm_field_int(vlan_info1, UVM_ALL_ON)get_report_verbosity_level()uvm_field_int(vlan_info2, UVM_ALL_ON)set_report_verbosity_level( 15、UVM_HIGH)...