uvm_field_enum(tb_bool_e, tb_flag, UVM_ALL_ON) 与动态数组有关的uvm_field系列宏有: `defineuvm_field_array_enum(ARG,FLAG) `defineuvm_field_array_int(ARG,FLAG) `defineuvm_field_array_object(ARG,FLAG) `defineuvm_field_array_string(ARG,FLAG 这里只有4种,相比于前面的uvm_field系列宏少了ev...
`uvm_field_array_enum(ARG,FLAG)//枚举数组`uvm_field_array_int(ARG,FLAG)//整型数组`uvm_field_array_object(ARG,FLAG)//object数组`uvm_field_array_string(ARG,FLAG)//字符串数组 与静态数组相关的uvm_field宏有: `uvm_field_sarray_int(ARG,FLAG)`uvm_field_sarray_enum(ARG,FLAG)`uvm_field_sa...
使用如下语句后,当执行pack和unpack操作时,UVM就不会考虑这个字段了。 `uvm_object_utils_begin(my_transaction) `uvm_field_int(dmac, UVM_ALL_ON) `uvm_field_int(smac, UVM_ALL_ON) `uvm_field_int(ether_type, UVM_ALL_ON) `uvm_field_array_int(pload, UVM_ALL_ON) `uvm_field_int(crc, UVM...
下面是一个例子,我们最常看到uvm_field的使用就是下面这样的: `uvm_object_utils_begin(jelly_bean_transaction) `uvm_field_enum(flavor_e, flavor, UVM_ALL_ON) `uvm_field_enum(color_e, color, UVM_ALL_ON) `uvm_field_int (sugar_free, UVM_ALL_ON) `uvm_field_int (sour, UVM_ALL_ON) `uvm...
`defineuvm_field_array_string(ARG,FLAG) 这里只有4种,相比于前面的uvm_field系列宏少了event类型和real类型。另外一个重要的变化是enum类型的数组里也只有两个参数。 与静态数组相关的uvm_field系列宏有: 代码清单3-28来源:UVM源代码 `defineuvm_field_sarray_int(ARG,FLAG) ...
这里大家注意下,数组类型声明的是uvm_field_sarray_int, 传递参数的时候还是按照int的方式传递,只不过变量名字带了数组元素下表,并且支持星号通配符。 2.5 传递string数组和enum数组 string数组、enum数组的使用方法和int数组类似,没什么可说的。参照图9的声明方法和图10的命令行参数。
`uvm_field_array_int(pload,UVM_ALL_ON) `uvm_field_int(crc_err,UVM_ALL_ON | UVM_NOPACK) `uvm_object_utils_end 值得一提的是,最后一个变量加上了UVM_NOPACK选项,当执行pack和unpack操作时,UVM不会考虑这个字段,此外,选项还包括:UVM_NOCOPY,UVM_NOCOMPARE,UVM_NOPRINT,UVM_NORECORD。
`uvm_field_int(vlan_info3, UVM_ALL_ON) `uvm_field_int(vlan_info4, UVM_ALL_ON) end `uvm_field_int(ether_type, UVM_ALL_ON) `uvm_field_array_int(pload, UVM_ALL_ON) `uvm_field_int(crc, UVM_ALL_ON|UVM_NOPACK) `uvm_field_int(is_vlan, UVM_ALL_ON|UVM_NOPACK) ...
(ARG,FLAG) `uvm_field_array_enum (ARG,FLAG) `uvm_field_array_int (ARG,FLAG) `uvm_field_array_string (ARG,FLAG) `uvm_field_queue_int (ARG,FLAG) `uvm_field_queue_string (ARG,FLAG) `uvm_field_aa_int_string (ARG,FLAG) `uvm_field_aa_string_string (ARG,FLAG) `uvm_object_utils_...
这里使用uvm_object_utils_begin和uvm_object_utils_end来实现my_transaction的factory注册,在这两个宏中间,使用uvm_field宏注册所有字段。uvm_field系列宏随着transaction成员变量的不同而不同,如上面的定义中出现了针对bit类型的uvm_field_int及针对byte类型动态数组的uvm_field_array_int。3.3.1节列出了所有的uvm_...