这些用于域的自动化的宏声明应在 uvm_object 或 uvm_ component 注册时发生, 即在`uvm_object_utils_begin 和uvm_object_ utils_end 之间,或者在'uvm_ component_ utils_ begin 和 uvm_ component_ utils _ end 之间声明要自动化的域。在声明自动化的域时,除了要注意运用正确的宏来匹配域的成员类型 (ARG)...
super.build_phase(phase); my_obj = my_object::type_id::create("my_obj"); endfunction endclass ``` 通过以上步骤,你已经成功实现了“uvm_object_utils_begin”,具体步骤如下所示: 1. 创建一个新的UVM对象类,并添加所需的数据成员和方法。 2. 在UVM对象类中添加“uvm_object_utils_begin”宏,以支...
同时默认的pack_bytes(tr中的各个字段转换成byte流)和unpack_bytes(byte流转换成tr中的各个字段)也简化了driver、monitor的实现。 使用uvm_object_utils_begin和uvm_object_utils_end来实现my_transaction的factory注册,在这两个宏中间,使用uvm_field宏注册所有字段。 `uvm_object_utils_begin(my_transaction) `uvm_...
在(一)中我们知道了uvm_field_utils_begin到uvm_field_utils_end以及中间的一些列uvm_field宏的作用是组成了一个叫某某automation的函数,而这一系列的宏完成的不止于此。因为uvm_field_utils_begin是uvm_object_utils_begin这个宏的最后一句话,从uvm_object_utils_begin开始到uvm_field_utils_begin,中间系统还做了...
使用uvm_object_utils_begin和uvm_object_utils_end来实现my_transaction的factory注册,在这两个宏中间,使用uvm_field宏注册所有字段。 `uvm_object_utils_begin(my_transaction) `uvm_field_int(dmac, UVM_ALL_ON) `uvm_field_int(smac, UVM_ALL_ON) ...
uvm_object_utils:用于将一个直接或间接派生自uvm_object的类注册到factory中。 uvm_object_utils_begin:使用这个宏来开启field_automation机制。 uvm_object_utils_end:与uvm_object_*_begin成对出现,作为factory注册的结束标志。 与uvm_component相关的factory宏有: ...
`uvm_object_utils_begin(my_transaction) `uvm_field_int(dmac, UVM_ALL_ON) `uvm_field_int(smac, UVM_ALL_ON) if(is_vlan)begin `uvm_field_int(vlan_info1, UVM_ALL_ON) `uvm_field_int(vlan_info2, UVM_ALL_ON) `uvm_field_int(vlan_info3, UVM_ALL_ON) `uvm_field_int(vlan_info4,...
uvm_object_utils:用于把一个直接或间接派生自uvm_object的类注册到factory中。 uvm_object_param_utils:用于把一个直接或间接派生自uvm_object的参数化的类注册到factory中。 uvm_object_utils_begin:当需要使用field_automation机制时,需要使用此宏。 uvm_object_param_utils_begin ...
uvm_object_param_utils/uvm_object_param_utils_begin/uvm_object_param_utils_end:用于注册参数化的类。与uvm_component相关的宏有:uvm_component_utils/uvm_component_utils_begin/uvm_component_utils_end:用于注册直接或间接派生自uvm_component的类。uvm_component_param_utils/uvm_component_param_...
于是我们可以粗略的认为`uvm_object_utils_begin/end宏刨去中间`uvm_field_*就相当于增加了如下内容:1...