当前位置 博文首页 > Tommi_Wei的博客:UVM平台调试问题引出的层级关系
关于这个问题:UVM平台调试问题引出的层级关系
UVM_FATAL cpri_link_env.svh(274) @ 1001547128000: uvm_test_top.env.core_env.cpri_link_env [YETI_CPRI_LINK_ENV] Timeout waiting for link configuration to finish
可以想到一下几点
可以想到以下几点内容:
if (!reference_data.try_get(reference_item))
`uvm_fatal(get_info_id(), "Reference FIFO empty!")
//`uvm_info(get_info_id(), "Reference FIFO empty!", UVM_LOW) ;
reference model 没有接收不到数据!换句话说,问题的根源就在这里!!!
它为什么会接受不到数据呢???
local ctx_axc_evaluator evaluators[int][int][bit];
问题的突破口就在这里!
但是在这个文件中定义了很多的task,我用questa 无法知道先执行的是哪一个?所以我需要添加一些打印信息!!!
如果仅仅只是从局部分析问题的话,可能是这个文件有问题!但是,从更深远的层面分析!就要看问题是什么了!
task ctx_axc_scoreboard::wait_stim_done();
`uvm_info(TAG, "I don't know task compile order, So i need to add debug_yuqinw2", UVM_LOW) ;
wait(!evaluator_done.size() || evaluator_done.and());
#120us; // for debug,new add
endtask
我希望的是,等待所有数据可以全部结束,我的reference model 也应该会有数据!所以就等一会,再执行别的task!但是延迟时间是不是应该添加在这个地方我也不能确认!
全局分析!
cpri_scoreboard.svh文件中,定义了ctx_axc_scoreboard
ctx_axc_scoreboard ctx_axc_sb;
然后再往上一层分析看!看看哪些文件中添加了cpri_scoreboard!!
cpri_link_env.svh中包含了所有的agent文件以及scoreboard!
class cpri_link_env extends uvm_env;
// scoreboard and connectivity
cpri_scoreboard scoreboard;
如果我们想再往上一级分析,看看那里又包含了cpri_link_env这个类?
这就涉及了UVM的树形结构!
cpricore_env这个层级关系!!!cpri_link_env 的上一级是cpricore_env!!但是我认为这个层级关系不应该是最顶层!!!因为这个层级中可能也添加了别的关系!
我看还有obsal模块!!!
obsai_link_env obsai_link;
所以这个文件不是最顶层,这仅仅这是一个假象!!!实际上最顶层是yeti_base_test!!!
cs