当前位置:网站首页>uvm-phase机制
uvm-phase机制
2022-08-02 08:09:00 【weixin_45704530】
phase机制
uvm中的phase有耗时和不耗时两种类型。下图中灰色部分为耗时的类型,task;白色部分为不耗时的类型,function。
不耗时的 build_phase,这个 phase 主要用来实例化各个组件环境,理论上为了 uvm_tree 的顺利构建应该从上往下执行。
如下图,不耗时的phase从树顶到数叶自上而下执行,构建整个验证环境。
不同层次所有组件的 build_phase() 从空间(uvm-tree)上从上而下执行从树根到树叶的全部组件类 build_phase(),而同层次的组件类则是按照 new/create 是自定的名字以字典序按照前后顺序自动执行 build_phase()。其他不耗时的 function phase 的执行过程则相反,比如先执行 driver 这层记得 connect_phase(), 再执行 agent 这一级的 connect_phase()。
对于耗时的phase,run_phase()和12个子phase是在同一时刻启动的。12个子phase的执行是顺序的,自上而下,执行完上一个之后再执行下一个。不同组件中所有相同的phase执行完成之后才能执行下一个phase。
耗时 phase 的执行过程可以理解为自下而上启动,同时执行。
假设上图中 drv component 其 main_phase() 在 0 时刻开始执行,需要100个时刻才能结束;scb component 其 main_phase() 也从在 0 时刻开始执行, 且需要耗时最长,假设需要200个时刻才能结束(其他组件的 main_phase()也包含耗时,但均未超过 scb 组件的耗时),整个验证平台的 main_phase() 要在第200个时刻才能切换到 post_main_phase(),即 drv 在100时刻执行完毕后,不会马上跳到 post_main_phase(),需要等到所有组件中耗时最长的 mian_phase() 执行结束后,在 200 时刻,进入 post_main_phase(),其启动和执行的过程也是自下而上启动,同时执行。
边栏推荐
猜你喜欢
随机推荐
工程师如何对待开源 --- 一个老工程师的肺腑之言
cas:139504-50-0 美登素DM1|Mertansine|
Elasticserch 自定义字段,用户会频繁的创建和删除字段,怎么设计mapping?
软件测试技术之解析图灵测试离我们还有多远
Redis分布式锁
PyQt5(一) PyQt5安装及配置,从文件夹读取图片并显示,模拟生成素描图像
JSP页面中page指令有哪些属性及方法可使用呢?
PyQt5 (a) PyQt5 installation and configuration, read from the folder and display images, simulation to generate the sketch image
Shell变成规范与变量
postman使用方法
shell中计算命令详解(expr、(())、 $[]、let、bc )
location对象,navigator对象,history对象学习
day_05_pickel 和 json
轴流式水轮机隐私政策
JSP页面中page指令contentPage/pageEncoding具有什么功能呢?
[ansible] playbook explains the execution steps in combination with the project
day_05模块
爬虫——爬虫初识、requests模块
Biotin - LC - Hydrazide | CAS: 109276-34-8 | Biotin - LC - Hydrazide
A little bit of knowledge - why do not usually cook with copper pots

![MFC最详细入门教程[转载]](/img/5d/655e75f6b8a547fefe0137a9b11536.png)






