UVM中的phase绝大部分都是自底向上的,即从树叶到树根,只有两个phase是从树根到树叶的(自顶向下)。 build_phase方法自顶向下执行,以便在顶部(测试)设置的配置可以向下传播到各component中。final_phase方法是自顶向下执行的,以允许top test控制底层final_phase方法的功能。 run_phase和其他12个小phase是并行执行的,...
uvm_build_phase, uvm_final_phase继承于uvm_topdown_phase, 其余function phase继承于uvm_downtop_phase, task phase继承于uvm_task_phase。 对于build_phase, 函数exectue_phase会调用m_imp.traverse(top,this,UVM_PHASE_EXECUTING), traverse()函数在uvm_topdown_phase中定义,build_phase从top to down的执行顺...
build_phase和final_phase是自顶向下,其他的都是自底向上 run_phase中的12个分支phase run_phase和12个分支phase是并行执行的 UVM编译和运行顺序 在加载硬件模型调用仿真器之前,需要完成编译和建模阶段 在开始仿真之前,会分别执行硬件的always/initial语句,以及UVM的调用测试方法run_test和几个phase,分别是build,connec...
它的含义和UVM_PHASE_DOMAIN相同,唯一的区别就是它不具有独立行动的权利,它的外面至少需要套一层UVM_PHASE_DOMAIN;形象点说,UVM_PHASE_DOMAIN可以代表整个图形结构或者代表某个子图结构,但是,UVM_PHASE_SCHEDULE则只能代表某个子图结构,它必须属于某个DOMAIN,也就是它必须被某个DOMAIN wrap起来!例如我们源代码中run_...
virtual function void final_phase(uvm_phase phase); super.final_phase(phase); `uvm_info(tID, "final_phase is executed", UVM_LOW) endfunction endclass 运行上述代码,可以看到各phase被依次执行。 需要注意的一点是就是run_phase和右边的12个phase,是并列关系,而不是说run_phase包含右边的12个phase,它...
check_phase report_phase final_phase 执行顺序可以从以下几个角度来看: 首先从整个验证平台或验证平台中的每个组件来看。9个function phase按照上表中各phase的顺序自上而下(此处指的是时间上的自上而下,即验证平台/组件的前一个phase执行完毕后再执行下一个phase。)执行的。
包含build_phase()、connect_phase()、end_of_elaboartion_phase()、start_of_simulation_phase()、extract_phase()、check_phase()、report_phase()、final_phase(); 不耗时的几个 phase 在 uvm_tree 中是从上往下执行的,比如说 build_phase,这个 phase 主要用来实例化各个组件环境,理论上为了 uvm_tree 的...
查看UVM源码可以发现,final phase是派生自uvm_topdown_phase的(同build phase),应该是自上向下执行的。我觉得是因为UVM希望上层模块能够控制下层模块,若上层模块中调用$finish结束仿真,那么下层模块的final phase便不会执行。所以不太理解为什么原文说clean up phases 都是自底向上执行的。
UVM的phase机制主要有9个,外加12个动态phase。除了run_phase是task,要消耗仿真时间,其余都是function。build_phase和final_phase是自顶向下运行,其余都是自底向上运行。run_phase和12个动态phase是并行运行的,有这12个动态phase主要是进一步将run_phase中的事务划分到不同的phase中进行,简化代码。注意,run_phase和...
phase机制分为功能阶段(function phase)和任务阶段(task phase)两大类,其中功能阶段不消耗仿真时间,而任务阶段则消耗时间。UVM提供了9个主phase和12个小的运行时phase,其中主phase如build_phase、connect_phase、reset_phase、main_phase、run_phase、report_phase和final_phase等是任务阶段,而run_phase...