[CU]config_db机制4-config_db机制的调试

1.check_config_usage

(1) 作用:可以显示出截止到此函数调用时,有哪些参数是被设置过但是却没有被获取过;

(2) 使用: 由于config_db的set及get语句一般都用于build_phase阶段,所以此函数一般在connect_phase被调用,也可以在connect_phase之后的其他phase调用;

注: default_sequence是设置给main_phase的,它在main_phase中被获取,如果在connect_phase调用check_config_usage,会显示default_sequence被设置过一次,但是一次也没有读取.

1 virtual function void connect_phase(uvm_phase phase);
2     super.connect_phase(phase);
3     check_config_usage();
4 endfunction

2. print_config

(1) 它会遍历整个验证平台的所有结点,找出哪些被设置过的信息对于它们是可见的;

3. +UVM_CONFIG_DB_TRACE

注1:如果环境中有使用uvm_resource_db::set或get,需要使用+UVM_RESOURCE_DB_TRACE;

4. check_all_config

(1) config_db机制的最大问题在于不对set函数的第二个参数进行检查;

(2) check_all_config函数会调用check_config的静态函数check_all; check_all函数将会遍历config_db库中所有的记录; 对于任一条记录,检查其路径参数是否可达;

(3) 由于要遍历整棵UVM树的结点,所以check_all_config函数只能在build_phase之后才能被调用,如connect_phase等;

(4) 这个函数可以在很多地方调用,如在sequence中使用config_db::set函数后,就可以立即调用这个函数检查有效性; 

 

 

posted on   知北游。。  阅读(569)  评论(0编辑  收藏  举报

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示