文章目录
一、phase机制
UVM中的phase机制是将仿真阶段层次化,各个phase按照先后顺序执行,并且同一层次的phase中的层次化组件之间按照顺序执行
1.1 为什么要使用phase机制?
za
在SV中对象例化是在仿真开始之后执行的,但是SV是无法确保验证环境层次化时例化的前后顺序,各个组件在例化后的连接,以及在顶层到底层的配置。UVM引入的phase机制是能够很清晰将仿真阶段层次化,从上图中可以看出UVM提供了很多phase,但是在一般情况下是不会把所有的phase都使用上的,使用频率最高的是build_phase、connect_phase和main_phase。这里能够很方便验证工程师将不同的代码写在不同的phase上,还有利与其他验证学向UVM迁移。
- build phase——实现验证平台的创建、连接、配置;
- run phase——产生激励并运行仿真,需要消耗仿真事件;
- clean up phase——测试用例结果收集与报告;
1.2 phase是如何运行的?
在1.1节中笼统说了phase是自上而下执行的,但是这里需要注意的是针对不同阶段的phase,这个自上而下的概念会不一样。在build phase中的自上而下执行是指它在实例化时进行的方式,例如针对driver和monitor,它都是agent的成员变量,所以它必须现实现