1.uvm_object_utils:把一个直接或间接派生自uvm_object 的class 注册到factory。 2.uvm_object_param_utils:把一个直接或间接派生自uvm_object 的参数化的class 注册到factory。类似: 参数化的class 在重构性中经常用到。如果允许,尽可能使用参数化的class,提高代码可移植性。 3.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_object 或 uvm_ component 注册时发生, 即在`uvm_object_utils_begin 和uvm_object_ utils_end 之间,或者在'uvm_ component_ utils_ begin 和 uvm_ component_ utils _ end 之间声明要自动化的域。在声明自动化的域时,除了要注意运用正确的宏来匹配域的成员类型 (ARG)...
uvm_component_utils_begin:与uvm_object_utils_begin相似,用于同时需要使用factory机制和field_automation机制注册的类。 uvm_component_param_utils_begin:与uvm_component_utils_begin宏一样,只是它适用于参数化的,其中某些成员变量需要用field_automation机制实现的类。 uvm_component_utils_end:总是与uvm_component*be...
`uvm_object_utils_begin (my transaction) //对于object类型 //`uvm_component_utils begin (my transaction) //对于component类型 `uvm_field_int (ARG,FLAG) `uvm_field_real (ARG,FLAG) `uvm_field_enum (T,ARG,FLAG) `uvm field_object (ARG,FLAG) `uvm_field_string (ARG,FLAG) `uvm_field_...
`uvm_object_utils_begin/end 该宏可以实现有生命周期的类的factory注册。 3. 核心基类 testbench中所有的基类都继承于uvm_component,都具有该类的特征。每个派生于uvm_component或其派生下的类在其new函数中要指明两个参数:name和parent 每个派生于该类或其派生下的类出来的类均是有生命周期的,例如uvm_sequence_...
13、parameter):'uvm_object_utils_begin(item 类名) .field_automation 'uvm_object_utils_end2)对于 uvm_sequence,要力口上'uvm_object_utils(sequence 类名)可能还需要 'uvm_declare_p_sequencer(sequencer 类名)的声明uvm_component macro对于 driver monitor reference_model scoreboard sequencer case agent en...
(2) `uvm_field_*宏,必须要依赖于factory机制的宏(比如uvm_object_utils_begin, uvm_object_utils_end). 3.2field_automation中宏与if的结合 3.3uvm_field_*的使用有顺序吗? 由于pack函数与unpack函数对于字段的位置比较敏感,所以在使用时需要注意顺序保持一致. ...
然后crc_error 是UVM_ALL_ON|UVM_NOPACK,而 `uvm_object_utils_begin(my_tra nsaction) `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_info...