[UVM]5.config机制 report 消息管理


1.config机制

(1)概述

SV只能例化后通过句柄访问,配置前必例化。

(2)uvm_config_db

  • uvm_congfig_db就是关联数组,path和value组成。

  • 传递配置对象(config object)就是传递句柄。

  • T:传递数据的类型。

  • set/get参数:实例句柄;名称;对应的变量名;值。

(3)interface传递概述

SV中通过set_interface完成接口的传递。

(4)interface传递示例

  • 在test1中,要在run_test()之前传递接口,uvm_congfig_db::set()。在build_phase里uvm_congfig_db::get()。

  • 需要注意的是set/get的参数,(this, "" , "vif", vif)/(uvm_root::get(), "uvm_test_top.c1", "vif", intf)。

(5)变量设置

(6)object传递-概述

(7)object传递-示例

  • uvm_config_db::set()的是子类的对象。uvm_config_db::get()的是父类的对象tmp。这时需要做个类型转换将tmp父类转为cfg子类。这样才能访问子类的成员变量并打印。

  • 如果将uvm_config_db#(uvm_object)中的uvm_object改为config1,这时就不需要$cast了。

输出结果

(8)总结

(9)建议


2.消息管理

(1)概述

(2)消息方法

  • 冗余度:这个消息到底重要不重要

  • filename/line不需要工程师care,系统会自动配置上。

(3)消息处理

(4)消息管理-消息宏

  • 推荐用消息宏, 不用方法。 

(5)消息管理-消息机制

(6)消息管理-回调函数1

(7)消息管理-回调函数2

(8)消息管理-回调函数3

(9)示例-回调函数

  • uvm_report_info("RUN","info1",UVM_MEDIUM)中RUN是id,UVM_MEDIUM是冗余度。

  • set_report_verbosity_level(UVM_LOW):只打印UVM_LOW消息。

  • set_report_severity_action(UVM_ERROR, UVM_DISPLAY | UVM_CALL_HOOK):对于UVM_ERROR消息,处理机制是打印并调用回调函数。

输出结果


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值