[UVM]4.phase机制 run_phase 12支phase UVM编译仿真顺序 raise_objection


1.phase机制

(1)SV中new()无法解决例化的先后关系以及例化后的连接,同时SV也无法再例化前对底层进行配置逻辑。这就引入了phase。

(2)执行机制

9个主要的phase机制,其中只有一个是task。

(3)示例

  • 定义9个phase都传入“uvm_phase phase”这个参数,同时调用系统函数‘uvm_info()。

  • 在topcomp中重新自定义了build—phase,并利用type_id来创建对象。

(4)示例的运行结果,可以看出三点:

  • 9个phase依次执行完毕。

  • 顺序:自顶向下或自底向上。

  • 从build开始,以final结束。

(5)总结


2.run_phase与12个分支phase

(1)概述

(2)12个分支phase

(3)执行顺序

12个分支是依次执行,与run_phase之间是并行执行关系。


3.UVM编译和运行顺序

(1)示意图

(2)运行顺序


4.uvm仿真开始

(1)概述

run_test方法继承与uvm_test,处于顶层中的方法。利用run_test()来建立验证环境。

(2)uvm世界的“诞生”

(3)uvm_top层

uvm_top是任何例化实例的顶层;uvm_top控制phase;提供索引功能索引到实例;报告配置;全局报告设备。

(4)run_test()

ojection机制:控制仿真退出。


5.uvm仿真结束

(1)概述

(2)挂起与放下方法

(3)示例

this:当前组件在当前run_phase中挂起或放下objection。

(4)至少一个组件在run_phase()中都可以挂起objection。否则可能会直接退出run_phase,导致run_phase中的多个组件不能执行。

(5)挂起晚了的示例

phase.raise_objection前不能有延时。后面三句话来不及执行。

(6)总结


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值