《UVM实战》笔记 UVM中的sequence

第6章 UVM中的sequence


sequence和sequencer_wonder_coole的博客-CSDN博客



6.1什么是 sequence

上文提到,子弹,弹夹和枪的比喻,想必大家都有映像,sequence 就像一个弹夹,里面装了很多"子弹",而这里的"子弹"就是 transaction, 弹夹可长可短,只要子弹型号一致(同一种 transaction),就能通过 sequencer 和 driver 把数据驱动给 DUT。在下图中,有三个 sequence 挂载于同一个 sequncer 上(当然也可不同时间挂在其中一个 sequence),通过 driver 进行数据驱动,其中 sequencer 和 driver 是共同使用的。


6.2 什么是 sequencer

sequencer 为 uvm_component,是验证环境的不动产;而 sequence 是 uvm_object 类型,是环境中的动态产物,随时可以创建和析构。sequencer 它在验证环境作为 sequnce 于 driver 之间的连接器。我们创建出来的 sequence 实例的 sequence_item 需要通过 sequencer 才能进入验证环境中,继而才能传输给 driver。sequencer 的应用实例代码如下(直接继承于 uvm_sequencer,不需要添加任何代码):

sequence:弹夹

sequencer:枪膛

transaction:子弹

driver:扳机

virutal sequence : 可以用于承载不同目标的 sequence (参数不同),组织协调不同的 sequence 按照一定的协议顺序,异步或者同步启动;

它与普通的 sequence 的区别是,它可以包含不同类型的 sequence,其他没有任何区别。

virutal sequencer : virutal sequencer 和普通 sequencer 不同,它用于桥接其 virtual sequencer 内包含的 sequencer,即 virutal sequencer 用于链接所有底层 sequencer 的句柄;virtual sequencer 本身并不传递 transaction,因此 virutal sequencer 不需要和任何 driver 进行 TML 连接;但是用户需要在顶层的 connect_phase 中做好 virtual sequencer 中各 sequencer 句柄与底层 sequencer 实体的一一对接,避免句柄悬空。

在此 virutal sequencer 相当于 sequence 和 sequencer 之间的一个中转路由器的作用,上图中红线部分用于完成 virtual sequencer 中各 sequencer 句柄与底层 sequencer 实体的一一对接。


全部评论
感谢分享,学到了,很实用的
点赞 回复 分享
发布于 2022-07-02 20:38

相关推荐

抱抱碍事梨a:三点建议,第一点是建议再做一个项目,把自我介绍部分顶了,第二点是中南大学加黑加粗,第三点是建议加v详细交流
点赞 评论 收藏
分享
FieldMatching:看成了猪头顾问,不好意思
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务