[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 2021-11-15 16:21  知北游。。  阅读(555)  评论(0编辑  收藏  举报

导航