当前位置:网站首页>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(),其启动和执行的过程也是自下而上启动,同时执行。
边栏推荐
- 抓包工具Charles修改Response步骤
- postman使用方法
- Seleniu截图代码以及给图片赋值名字
- USACO美国信息学奥赛竞赛12月份开赛,中国学生备赛指南
- QT web 开发 - 笔记 - 3
- prometheus monitoring mysql_galera cluster
- [OC学习笔记]Block三种类型
- PyCharm usage tutorial (more detailed, picture + text)
- 血气方刚的年轻小伙竟去做家政小哥,是怎样成功逆袭转行的
- [ansible] playbook explains the execution steps in combination with the project
猜你喜欢
随机推荐
OneNote Tutorial, How to Create More Spaces in OneNote?
day——05 迭代器,生成器
那些年我们踩过的 Flink 坑系列
day_05 time 模块
自定义table表格
unity pdg 设置隐藏不需要的节点以及实现自动勾选自动加载项
Biotin-C6-amine|N-biotinyl-1,6-hexanediamine|CAS: 65953-56-2
R language plotly visualization: plotly visualizes the scatter plot of the actual value of the regression model and the predicted value of the regression, analyzes the prediction performance of the re
next permutation
软件测试技术之解析图灵测试离我们还有多远
postman使用方法
Biotinyl Cystamine|CAS:128915-82-2|生物素半胱胺
Redis分布式锁入门
Flink 监控指南 被动拉取 Rest API
Biotin-C6-amine|N-生物素基-1,6-己二胺|CAS:65953-56-2
OneNote 教程,如何在 OneNote 中创建更多空间?
PyQt5(一) PyQt5安装及配置,从文件夹读取图片并显示,模拟生成素描图像
Redisson实现分布式锁
编程与哲学(2)——输出是为了更好的输入
pnpm的安装与使用