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的执行顺...
uvm_phase.svh(727) @ 0: reporter [PH/TRC/ADD_PH] common (UVM_PHASE_DOMAIN) ADD_PHASE: phase=final (UVM_PHASE_IMP, inst_id=1476) with_phase=null after_phase=null before_phase=common_end new_node=final inst_id=1519 begin_node=final end_node=final UVM_INFO /home/maomao/uvm-1.1d/...
final_phase Phase名称执行顺序关键作用典型应用场景 extract_phase1数据收集与统计覆盖率数据收集,错误计数统计 check_phase2结果验证与断言最终状态检查,断言总结报告 report_phase3结果报告生成生成验证报告,输出日志文件 final_phase4环境清理内存释放,文件句柄关闭 ...
它的含义和UVM_PHASE_DOMAIN相同,唯一的区别就是它不具有独立行动的权利,它的外面至少需要套一层UVM_PHASE_DOMAIN;形象点说,UVM_PHASE_DOMAIN可以代表整个图形结构或者代表某个子图结构,但是,UVM_PHASE_SCHEDULE则只能代表某个子图结构,它必须属于某个DOMAIN,也就是它必须被某个DOMAIN wrap起来!例如我们源代码中run_...
clean up phases 用于从scoreboards 和functional coverage monitors中提取信息,以确定testcase是否达到其覆盖目标。clean up phases是functions ,所以也不会消耗仿真时间。同理,extract phase、 check phase、 report phase和 final phase都可以在同一个function phase中完成。
virtual function void extract_phase(uvm_phase phase); super.extract_phase(phase);`uvm_info(tID,"extract_phase is executed",UVM_LOW)virtualfunctionvoidfinal_phase(uvm_phase phase);super.final_phase(phase);`uvm_info(tID,"final_phase is executed",UVM_LOW)endfunction ...
UVM的phase机制主要有9个,外加12个动态phase。除了run_phase是task,要消耗仿真时间,其余都是function。build_phase和final_phase是自顶向下运行,其余都是自底向上运行。run_phase和12个动态phase是并行运行的,有这12个动态phase主要是进一步将run_phase中的事务划分到不同的phase中进行,简化代码。注意,run_phase和...
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,它...
100`uvm_info(tID,"final_phase is executed", UVM_LOW) 101endfunction 102 103 104endclass 运行上述代码,可以看到各phase被依次执行。在这些phase中,令人疑惑的是task phase。对于function phase来说,在同一时间只有一个phase在执行;但是task phase中,run_phase和pre_reset_phase等12个小的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...