什么是UVM的sequence机制
- 控制并产生一系列事务,并将事务发送给driver的一套机制
- 是一个过程,需要消耗仿真时间,需要用在task phase当中
(1)控制何时产生、发送事务
(2)产生事务
(3)发送给driver
UVM sequence机制过程
- 仿真进入某一个task phase,比如run phase,与sequencer相连的sequence就会被启动
- 启动后的sequence会在内部产生一个事务对象并处于等待状态
- 当driver要驱动DUT时候,首先要从sequencer获得一个事务对象,driver向sequencer发送一个事务请求,sequencer收到这个请求会将这个请求转发给sequence
- sequence收到请求后会将已经产生好的事务对象发送出去,先发送给与自己相连的sequencer,再由sequencer转发给driver
- driver收到事务后,对此事务进行一系列处理,比如驱动DUT等
- driver处理好当前事务,会产生一个完成好的标志响应,先发送到sequencer,再转发给sequence
- sequence得知driver已经处理好当前事务,会产生下一个事务,并继续等待
以上过程,循环往复,直到所有的事物都产生完毕
测试平台示意图
为什么要使用UVM sequence机制
UVM将激励的产生完全从测试平台独立出来,提高组件的独立性,
将事物的产生和驱动分离
UVM sequence机制的原理
00 参与sequence机制主要有三个部分
driver、sequencer、sequence:sequence扮演一个中间者的角色,事务的产生在 sequence当中,事务的处理在driver当中

01 sequencer中的实现
很复杂的sequencer实现,UVM已经全部给出,不需要细究
- 当进入某一个task phase,sequencer检查其内部的