首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Synopsys验证VIP学习笔记(6)检查和打印信息控制

https://blog.csdn.net/yumimicky/article/details/121330963

在使用VIP时,出于对仿真性能和环境效率的考虑,可以关闭VIP中的一些检查和打印信息。当然,屏蔽的前提是确认过这些检查或打印信息是不被需要的或已实现的。

禁用特定的协议检查

针对VIP中特定的协议检查,如果频繁报warning或不需要的error时,可使用 disable_check() 方法来禁用该check。

可以在env组件内,当monitor等结构组件已被创建后(如在end_of_elaboration_phase中)调用该方法,例如:

类似地,也有 enable_check() 方法可以在调用时启用协议检查。

禁用Monitor的协议检查

在某些场景下,如果不需要协议检查,只需检查读/写数据的正确性,或已在IP级环境中对协议进行了验证,集成到chip级验证环境后,不需要再逐次循环检查协议。为了提高仿真性能,可以禁用整个Monitor的检查。默认情况下,总线monitor和端口monotir始终会检查协议并发出协议违规消息(error或warning)。VIP支持通过配置protected属性dw_vip_axi_system_model_configuration::m_blChkProt 来启用或禁用协议检查。由于此属性是protected类型,因此不能直接通过对象句柄访问。VIP 提供了一个单独的task来访问此属性:

下面是如何禁用它的示例:

禁用消息打印

使用VIP时会产生很多打印信息,在仿真过程中不断打印信息或者读写文件对仿真速度影响非常大,因此在环境调试稳定后可以屏蔽掉一些不需要打印信息。VIP本身并未提供控制系统打印的配置,这里有两种方法来实现:

1. 官方提供了其中一种方法。通过派生uvm_report_catcher创建一个降级类,然后在env或base test中构建它并注册回调:

另一种方法是直接采用UVM中的打印控制函数,推荐采用这种方法更简单,同样可以在end_of_elaboration_phase中控制,例如:

最后,总结下UVM中的一些打印消息控制方法,参考下节。

UVM的打印信息控制方法

设置特定component的默认冗余度阈值

根据ID和严重性设置打印信息的冗余度阈值

还有两个类似的递归设置函数,set_report_id_verbosity_hier和set_report_severity_id_verbosity_hier,可设置component及其下所有component。

根据ID和严重性控制打印信息的行为

还有三个类似的递归设置函数,set_report_severity_action_hier,set_report_id_action_hier,和set_report_severity_id_action_hier。

重载打印信息的严重性

好好学习,天天向上!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230306A0008Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券