其余7bit用作其他用途。 除了UVM_ALL_ON之外,还有UVM_NOCOMPARE,UVM_NOPRINT,UVM_NORECORD,UVM_NOCOPY等选项。 3.3.4 field automation中宏与if的结合 field automation可以结合if使用。当is_vlan为1时,注册vlan_info1~4字段。 if(is_vlan)begin`uvm_field_int(vlan_info1,UVM_ALL_ON)`uvm_field_int(vlan...
通过上面的分析我们发现UVM_REFERENCE似乎把UVM_SHALLOW的事都干了,那么UVM_SHALLOW都干嘛了呢? grep下我们发现UVM_SHALLOW只有在联合数组相关的field_automation相关的定义里才有提到,并且还都是定义在UVM_COMPARE里,所以我们就可以把这个应用忽略不计了,基本不会使用UVM_SHALLOW(因为UVM源代码都不太支持) 关于UVM中co...
1.field_automation机制 对field_automation最直观的感受是,他可以自动实现copy、compare、print等三个函数。当使用uvm_field系列相关宏注册之后,可以直接调用以上三个函数,而无需自己定义。这极大的简化了验证平台的搭建,尤其是简化了driver和monitor,提高了效率。 2.config_db机制 config_db机制在UVM验证平台中主要用于...
3.3 field automation机制 3.3.1 field automation机制相关的宏 `define uvm_field_**_**(ARG, FLAG) 3.3.2 field automation机制的常用函数 copy 函数: B.copy(A):把实例A复制到B实例中,B必须已经使用new函数分配好了内存空间。 compare 函数: A.compare(B) or B.compare(A)。 pack_bytes 函数: 用于将...
其中ARG参数为需要注册的变量名字,FLAG参数实际为一个17bit的数字,如果某个bit设置为1,则代表打开那个bit对应的功能,如copy,compare等等,若设置为UVM_ALL_ON,则其实是设置为17'b0000_0010_1010_101,代表打开copy,compare,print,record和pack功能。若对某个注册的字段不想执行pack/unpack功能,则可将它的FLAG设置为...
compare函数用于比较两个实例是否一样 3.pack_bytes pack_bytes函数用于将所有的字段打包成byte流 打包顺序与宏声明顺序一致 4.unpack_bytes unpack_bytes函数用于将一个byte流逐一恢复到某个类的实例中 5.print print函数用于打印所有的字段 6.clone clone = copy + newcomponent不支持clone ...
item 是基于 uvm_object 类的,这表明它具备 UVM 核心基类所必需的数据操作方法,例如 copy()、 clone()、 compare()、 record()等, 这里不再赘述。 还要了解的是, item 通常应具备什么类型的数据成员。 我们将它们划分为如下几类: • 控制类。 比如总线协议上的读写类型、 数据长度、 传送模式等。
get_num_children() `define uvm_field_**_**(ARG, FLAG) copy 函数: B.copy(A):把实例A复制到B实例中,B必须已经使用new函数分配好了内存空间。 compare 函数: A.compare(B) or B.compare(A)。 pack_bytes 函数: 用于将所有字段打包成byte流。 unpack_bytes 函数: 用于将一个byte流逐一恢复...
16、 的 analysis_port 获取 transaction,然后做 compare.这个时候需要用: uvm_analysis_imp_decl(标记)这个 macro,然后write ”函数变成write_ 标记()”函数,analysis_port 所在component不用变,还是调 write()函数即可。代码示例如下: 使用macro声明 write函数变名字 analysis_port 所在 component 实现不变。 使用...
sequence指的是uvm_sequence类,而item指的是uvm_sequence_item类,简称为sequence和item。item是基于uvm_object类,这表明了它具备UVM核心基类所必要的数据操作方法,例如copy()、clone()、compare()、record()等。 item通常应该具备一下数据成员:① 控制类:总线协议上的读写类型、数据长度、传送模式等。② 负载类:一...