UVM讲解系列之六:field automation机制

目录

代码举例

常见的用法

支持的功能及对应的开关


代码举例

使用UVM平台的搭建的验证环境,所有组件(使用class定义拓展自uvm_object的类)其内部定义的变量都可以使用uvm_field进行注册,注册之后可以使用一些常用的方法,这个就是field automation机制。如下代码使用了`uvm_field_int和`uvm_field_sarray_int。

常见的用法

`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)

数组

`define uvm_field_array_enum(ARG,FLAG)

`define uvm_field_array_int(ARG,FLAG)

`define uvm_field_array_object(ARG,FLAG)

`define uvm_field_array_string(ARG,FLAG)

静态数组

`define uvm_field_sarray_int(ARG,FLAG)

`define uvm_field_sarray_enum(ARG,FLAG)

`define uvm_field_sarray_object(ARG,FLAG)

`define uvm_field_sarray_string(ARG,FLAG)

队列

`define uvm_field_queue_enum(ARG,FLAG)

`define uvm_field_queue_int(ARG,FLAG)

`define uvm_field_queue_object(ARG,FLAG)

`define uvm_field_queue_string(ARG,FLAG)

支持的功能及对应的开关

上述示例代码中展示的UVM_ALL_ON表示打开field automation的所有功能,即复制,打印,比较等。当我们定义一个环境自身用于定位环境信息的,而不是需要检查的信号。在scoreboard中调用compare时并不想比对这个信号,以上文的cmd为例,会使用如下写法,关闭比对:

`uvm_field_int(cmd, UVM_ALL_ON | UVM_NOCOMPARE)

下面列举field的方法,及对应的开关

pack        UVM_NOPACK

compare  UVM_NOCOMPARE

print         UVM_NOPRINT

copy         UVM_NOCOPY

除此之外,还支持clone pack_ints pack_bytes等。

field automation机制还支持环境配置参数,之前举例的代码有提到,简单举例如下:

以上代码表示将配置文件cfg传递给v_sqr,目的是在激励产生的时候参考配置信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值