`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类型。另外一个重要的变化
`uvm_field_array_int(data, UVM_DEFAULT) `uvm_field_array_int(wait_state, UVM_DEFAULT) `uvm_field_int (error_pos, UVM_DEFAULT) `uvm_field_int (transmit_delay, UVM_DEFAULT) `uvm_field_string (master, UVM_DEFAULT|UVM_NOCOMPARE) `uvm_field_string (slave, UVM_DEFAULT|UVM_NOCOMPARE) `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,...
因为命令行参数后面赋值会覆盖掉前面的赋值,所以data[88]最终传递的是1. 这里大家注意下,数组类型声明的是uvm_field_sarray_int, 传递参数的时候还是按照int的方式传递,只不过变量名字带了数组元素下表,并且支持星号通配符。 2.5 传递string数组和enum数组 string数组、enum数组的使用方法和int数组类似,没什么可说的。
六、field_automation机制 常用UVM_field宏: `define uvm field int (ARG,FLAG) `define uvm field real(ARG,FLAG) `define uvm field enum(T,ARG,FLAG) `define uvm field object(ARG,FLAG) `define uvm field event(ARG,FLAG) `define uvm field string(ARG,FLAG) ...
`defineuvm_field_array_string(ARG,FLAG) 这里只有4种,相比于前面的uvm_field系列宏少了event类型和real类型。另外一个重要的变化是enum类型的数组里也只有两个参数。 与静态数组相关的uvm_field系列宏有: 代码清单3-28来源:UVM源代码 `defineuvm_field_sarray_int(ARG,FLAG) ...
`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; ...
(my_transaction)31`uvm_field_int(dmac,UVM_ALL_ON)32`uvm_field_int(smac,UVM_ALL_ON)33`uvm_field_int(ether_type,UVM_ALL_ON)34`uvm_field_array_int(pload,UVM_ALL_ON)35`uvm_field_int(crc,UVM_ALL_ON)36`uvm_object_utils_end3738functionnew(stringname ="my_transaction");39super.new()...
static uvm_pool#(string,uvm_resource#(T)) m_rsc[uvm_component]; ... static function bit get(uvm_component cntxt, string inst_name, string field_name, inout T value); //TBD: add file/line int unsigned p; uvm_resource#(T) r, rt; uvm_...
这里使用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_...