Virtual sequence 和test 启动的关系

本文探讨了UVM基本结构中的Sequence启动,包括Sequence的启动机制、Objection机制、默认启动方式以及Virtual Sequence的使用。重点讲述了在sequence中如何使用raise/drop_objection()来控制仿真流程,以及如何通过virtual sequence管理不同sequence的执行顺序。同时,介绍了如何通过run_test()和UVM_TESTNAME参数来动态选择要执行的sequence。

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

这是一个UVM的基本结构问题。

sequecne的启动

先理解一个sequence 的启动机制吧。白书第二章有讲解。
对于一个sequence,在环境中的任意一处实际调用sequence.start就可以启动啦。
但是一般会在前后加上raise/drop_objection().

objection机制

这就是,objection机制了,在程序进入到某一个phase时,UVM会收集这个phase 所有的objection,并且实时监测是否objection被drop,一旦所有objection都被drop,则当前phase会关闭。
这一机制的用途是,当你在环境中某一个phase添加一些耗费时间的代码时,一定要rasie/drop_objsection.,不然这些耗时操作会被略去。
所以,一般只有会在sequence中用raise与drop,因为一般只有他们会有些耗时操作。
偶尔在driver或者monitor中要用的话就也要注意啦。

default 方式启动

除了手动使用start方式启动sequence外,更加常见的是default sequence方式启动,default方式也有两种,可见P165(区别在于creat sequence的地方不同罢了)

uvm_config_db#(uvm_object_warapper)::set(this,
                                        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值