第八段:Phase的使用

news/2024/11/29 5:40:29/

在这里插入图片描述

1)基础用法:
常用的是四种phase
build_phase中定义初始化相关的代码。
Connect_phase中定义componet的连接代码。
Run_phase中定义主程序。
Report_phase中定义打印相关的代码。
2)项目升级用法:与上一致。
3)底层原理分析
在这里插入图片描述在这里插入图片描述
在这里插入图片描述

Phase按照是否消耗仿真时间一共分为2种,一种是function phase,如:build phase,connet phase等,另一种是task phase,如run_phase等。如图所示:
在这里插入图片描述

Run_phase和其他12个小phase并行运行。Uvm中Task都是自上而下运行,function都是自下而上运行的。然而这只适用于uvm树中有直系关系的component,对于同一层次的component,则是按照字典顺序,字典顺序则根据new时定义的名字。
uvm中采用的是深度优先原则。
代码中同样出现了super.phase等语句,如:在build_phase中,如果没有调用config中get函数,这可以不写该代码。其他雷同,假如没有用到父类定义的东西,则可不加。
Run_phase与main_phase在日常其实可以等效使用,只是要注意它们运行机制差别,还有是run_phase不需要强制写raise_objection,main_phase等小task则强制需要,否则会无法运行。小phase有一个写了raise_ objection,则run_phase不需要再写。
Phase流程:
add_uvm_phases和uvm_domain中定义了许多数组,用来存放定义的phase。
在m_run_phase()中调用了execute_phase执行之前定义的数组。
Raise_phase的实现是内部掉用了raise以及回调。
在这里插入图片描述

此外还有phase的跳转,遇到uvm_error退出等等,目前项目中未使用到,故不在论述。


http://www.ppmy.cn/news/380601.html

相关文章

UVM中的phase机制

5.1 phase机制 *5.1.1 task phase与function phase UVM中的phase,按照其是否消耗仿真时间($time打印出的时间)的特性,可以分成两大类,一类是function phase,如build_phase、connect_phase等,这…

Single-Phase PLL(SOGI)-Part01

简介 本文主要讲解了基于SOGI(二阶广义积分器)的单相PLL技术。这一篇重点在于从传函的角度进行分析,并重点关注正交系统的产生。有关数字离散化以及对单相电网的锁相内容将在后续篇幅进行分析。 PLL介绍 对于并网逆变器以及整流器,对电网电压进行锁相是至…

Phase Sensitive Filter

复数转换 如下图复数,由于,所以,这个就是复数的三角形式。 这里,是模,,是辅角。在讨论音频频域,即stft变换后的复数时,分别称为幅值和相位。 根据欧拉公式(其中i是虚数…

Total Phase Data Center介绍

有一个 Beagle™ USB 480 Protocol Analyzer 协议分析工具 (https://www.totalphase.com/media/datasheet/TP_Beagle_USB_480_Protocol_Analyzer-Datasheet.pdf),可以抓取USB总线上的数据。配合Data Center Software可以抓取分析USB总线上的数据。 软件下载地址 h…

关于seq中的starting_phase

1. starting_phase是什么?作用是什么? starting_phase是sequence中的一个变量,uvm_phase类型。sequencer自动将phase传给req变量的startiing_phase。(req指向sequencer发送的sequence),starting_phase用来…

CSAPP Lab2 实验记录 ---- Bomb Lab(Phase 1 - Phase 6详细解答 + Secret Phase彩蛋解析)

文章目录 Lab 总结博客链接实验前提引子实验需要指令及准备Phase 1Phase 2Phase 3Phase 4Phase 5Phase 6Phase Secret(彩蛋Phase) Lab 总结博客链接 CSAPP Lab入门系统安装摸索Lab 博客链接 实验前提引子 这部分是我在大一寒假的时候写的 那个时候只写了…

数据库|TiDB灾备切换实践-部署

刘昊 | 数据库工程师 最近手头有个系统,有需要搭建灾备库的需求(RTO要求4小时内,根据实际情况计算)。考虑到生产系统是5版本,TiCDC存在一些兼容性问题,且TiDB Binlog已经有实践案例及经验可供参考&#xf…

UVM中phase的执行顺序

1 UVM中引入phase的原因 代码的书写顺序会影响代码的实现(代码之间存在依赖关系,如代码B依赖于代码A),所以区分出build_phase、connect_phase等,让被依赖的phase(代码A)先执行,依赖…