UVM phase机制(一)

UVM的执行过程遵循特定的phase顺序,从build_phase到finial_phase。在uvm_root::run_test时,通过uvm_phase::m_run_phases生成phase执行架构。这个过程包括创建common_domain,加入common及run_time phase,最后形成包含前驱后继关系的链表式结构。整个流程分为四步:1. 添加common phase;2. 生成uvm_schedule;3. 创建uvm domain;4. 将uvm domain加入common domain,形成最终的phase执行结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

UVM的执行严格按照phase机制在执行的,顺序是:

->build_phase
->connect_phase
->end_of_elaboration_phase
->start_of_simulation_phase
->run_phase
->extract_phase
->check_phase
->report_phase
->finial_phase
既然是按照上述所示执行,那么UVM的运行的过程中必然会生成相应的执行架构,下面我们来介绍一下UVM是如何生成phase的执行架构的

在介绍之前我们要知道phase家族的整体结构
在这里插入图片描述上图就是整个UVM_PHASE家族的整体架构,具体细节我们会在下面一一讲到

在调用uvm_root::run_test的时候会生成执行架构(在UVM中叫做domain),通过调用uvm_phase::m_run_phases,有关创建整个phase架构的核心是下面这个方法

uvm_domain::get_common_domain()

这个方法首先创建一个名字叫做common的domain,这里叫做common_domain,接着向这个common_domain中增加常规的phase,也叫做common_phase(非run_time phase),add方法如下。

common_domain.add(uvm_build_phase::get())

下面列出来是如何一步一步完成phase架构的
第一步:加入common phase

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值