sequence机制

前言:总是忘了sequence、sequencer与driver、transaction之间的关系,记篇笔记吧。

sequence

1.派生自uvm_sequence,是uvm_object,在定义时需指定要产生的transaction的类型。

2.产生transaction并发送给sequencer(发给哪个sequecer呢?怎么指定?后面有回答)。其方法有uvm_do或者直接使用start_item与finish_item的方式产生transaction。

3.每个sequence都有一个body任务,sequence启动后,会自动执行body中的代码(产生transaction)。

sequencer

1.派生自uvm_sequencer,是uvm_component,是一个参数化的类。

2.将sequence送来的transaction再送给driver。

那具体来说sequence、sequencer、driver三者之间是怎样交流通信的?

sequencer作为媒介需要做两件事:

1.sequence与sequencer之间

检测仲裁队列里是否有某个sequence发送transaction的请求。uvm_do就是创建transaction的实例,并随机化发给sequencer。那发送给哪个sequencer呢?(1)就需要在某个component的main_phase中启动这个sequence。start任务的参数时一个sequencer指针。(2)实际应用中,是通过default_sequ

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值