欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 金融 > [UVM]4.phase机制 run_phase 12支phase UVM编译仿真顺序 raise_objection

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

2025/2/12 4:24:37 来源:https://blog.csdn.net/freddiemore/article/details/141907501  浏览:    关键词:[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)总结


版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com