Phase机制是UVM定义的一套规范,约定了各个仿真阶段的功能,统一了环境组件的仿真步调。通过phase机制,可以保证不同组件例化的先后关系。
在UVM中使用phase机制来将仿真阶段层次化,将仿真阶段划分成不同的phase,按照phase的顺序来执行仿真,同时,处于同一个phase的组件执行顺序也区分先后。
优点:
(1) Phase机制约定的功能具有普适性,且这套协作方式足够好用,这套机制在时间尺度上将功能干净的隔离开(每个阶段都知道该干嘛),适用于绝大多数的功能验证。
(2) Phase机制的意义更在于对UVM通用性的保障。举个栗子,基于UVM的验证本身是面向对象的编程实践,这就意味着在仿真过程中可以动态地去实例化对象,如果不按照同一套时间和顺序规范去例化对象、连接组件、执行仿真和报告仿真结果,基于UVM的验证环境、组件或者验证IP的通用性都会大打折扣
0. 不同phase主要完成的任务
build_phase: 主要完成组件和寄存器模型的创建、设置或者获取配置(config_db)
connect_phase: 完成组件之间的连接、连接寄存器模型和adapter
start_of_simulation: 打印环境结构
run_phase: 从具体的某个组件的功能入手,比如sequencer是负责产生激励、driver负责发送激励、monitor负责监测激励、scb负责数据比较
report_phase: 做消息报告和写入到log文件
1. run_phase和其细分的12个phase的执行顺序关系
(1) run_phase和其细分的12个phase之间是并行执行的,相当于两个线程
(2) 12个phase
UVM知识之phase机制
最新推荐文章于 2024-05-02 12:58:51 发布