SV/UVM 学习笔记12(sequence机制、激励的产生与驱动)

本文深入解析了UVM验证框架中的sequence、sequencer和driver组件。sequence负责生成transaction,不作为component存在,生命周期随transaction发送完毕而结束。sequencer作为中介,协调sequence和driver的速率,通过fifo缓存transaction。driver则接收并发送sequencer传递的数据。sequence启动trans的方式包括uvm_do、uvm_rand_send等宏,以及start_item和finish_item方法。此外,还介绍了sequencer如何留存transaction直至driver确认完成。sequence启动包括直接调用start函数或通过default_sequence配置。lock和grab操作用于控制sequence的发送顺序。关键词涵盖了UVM、transaction、验证、sequence_item、driver交互等核心概念。

简述:

为了贯彻单一职责性,在uvm里,将产生和发送激励这两件事拆分为三个部分:sequence,sequencer和driver,其中只有后两者存在于component组件中。sequence唯一的作用就是产生item和trans。

sequence是sequence_item的集合,sequence之所以不存在于组件中是因为其有生命周期,是一个动态的元素。当它内部所有元素全部发送完毕,该sequence的生命周期结束。

sequencer类似于一个管道,作为存在于sequence和driver的中间者,它的主要功能有仲裁和协调二者不同的处理速度,所以其内部必须存在一个fifo用于缓存。

driver唯一的职责在于发送sequencer传送过来的产生好的数据。

过程:

sequence可以主动询问sequencer请求发送trans,而driver也可以使用seq_item_port与seqr建立通道,建立完整通道后driver使用get_next_item向seuqencer索取trans。

sequence产生trans有四种方法1.使用`uvm_do宏 2.使用`uvm_rand_send宏 3.使用`uvm_create和`uvm_send宏 4.使用start_item和finish_item

以上三者我们需要在agent使用connect函数中将他们连接。

细节:

当sequencer发送给driver时,会自己留存一份,直到收到driver返回的item_done时才将其删除。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值