`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系列宏少了event类型和real类型。另外一个重要的变化是enum类型的数组里也只有两个 参数。 与静态数组相关的u...
`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系列宏少了event类型和real类型。另外一个重要的变化是enum类型的数组里也只有两个参数。 与静态数组相关的u...
`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...
因为命令行参数后面赋值会覆盖掉前面的赋值,所以data[88]最终传递的是1. 这里大家注意下,数组类型声明的是uvm_field_sarray_int, 传递参数的时候还是按照int的方式传递,只不过变量名字带了数组元素下表,并且支持星号通配符。 2.5 传递string数组和enum数组 string数组、enum数组的使用方法和int数组类似,没什么可说的。
`define uvm_field_string(ARG,FLAG) `define uvm_field_queue_enum(ARG,FLAG) `define uvm_field_queue_int(ARG,FLAG) `define uvm_field_queue_object(ARG,FLAG) 1. 2. 3. 4. 5. 6. 7. 8. 注册示例代码如下: 折叠代码块 class my_transaction extends uvm_sequence_item; ...
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。
`uvm_field_array_int(pload, UVM_ALL_ON) `uvm_field_int(crc, UVM_ALL_ON) `uvm_object_utils_end function new(string name = "my_transaction"); super.new(); endfunction endclass `endif 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ...
1 2 3 4 5 6 7 `uvm_object_utils_begin(my_transation) `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_ALL_ON) `uvm_object_utils_end...
即可。2.最简单的UVM 平台,一个interface ,一个DUT ,一个TOP ,一个test ,一个ENV 就可以工作了,然后慢慢的添加各个component ;3.写interface 4.写top module ,在top 中例化DUT ,interface 和DUT 在top 中 include uvm_config_db#(virtual ubus_if)::set(uvm_root::get(),"*","vif",vif);
28、#39;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)'uvm_ob...