UVM_COMPARE

本文介绍了如何在UVM环境中使用UVM自带的compare函数进行数据对比,并阐述了在特定条件下如何通过重写do_compare函数进行自定义比较,包括compare_field_int的用法和参数。重点讲解了如何根据需求定制字段的比较过程。
摘要由CSDN通过智能技术生成

1.搭建验证环境时,通常需要将DUT输出数据与参考数据做比较,UVM自带相应的比较函数.自带比较函数原型是:
extern function bit compare(uvm_object rhs,uvm_comparer comparer=null);
使用时,用户没有自定义的comparer则使用UVM自带的比较器进行比较操作.
2.在做比较的时候,当满足某种条件才比较时,就需要用户自定义相应的比较函数,即用户重写do_compare函数.
extern function bit do_compare(uvm_object rhs,uvm_comparer comparer);
在重写实例如下:
virtual function bit do_compare(uvm_object rhs,uvm_comparer comparer);
mytype rhs_;
do_compare = super.do_compare(rhs,comparer);
if(!($cast(rhs_,rhs) || (rhs_==null))begin
return 0;
end
do_compare &=comparer.compare_field_int(“field_name”,f1,rhs_.f1,width)
//width代表比较参数的宽度.
endfunction
3.compre_field_int原型
virtual function bit compare_field_int(string name,
logic[63:0] lhs,
logic[63:0] rhs,
int size,
uvm_radix_enum radix=UVM_NORADIX);
uvm_radix_enum在比较出错的时候会使用,打印信息时使用几进制打印.
size指定了需要比较数据的位宽,string name指定了比较域段的名字.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值