virtual seq && virtual sqr

virtual seq 和virtual sqr是比较难理解的两个东西。

什么时候需要virtual sequencer和virtual sequence?

  • 有多的驱动端agent,而且多个激励之间存在协调关系,那么virtual sequencer就很有必要了

virtual sequencer/virtual sequence的差别在哪?

  • 并不像正常的sequencer那样,将sequence item 通过sequencer port传递给driver。
  • virtual sequencer 与其他普通的sequencer最显著的区别就在于,virtual sequencer 并没有指定具体的tranction类型,因为virtual sequencer会执行多种类型的tranction。这里派生时未指定参数,意味着virtual sequencer会使用uvm_sequence_item的默认参数值。
  • 不直接跟driver相连
  • 控制着其他的sequencer
  • 不处理任何item

virtual sequencer和virtual sequence的应用模板

virtual sequencer中声明subsequencer的句柄
在case中,将sqr跟virtual sqr相连
virtual seq中用uvm_do_on实现不同sqr和seq的管理
在case的build_phase启动virtual seq的default_sequence

在UVM tree上,vsqr放在了跟env相同的一级。其实我觉得这个vsqr挂在哪里其实都无所谓,因为它只是一个调控作用而已。

项目实战:在SOC大型的继承环境里面,因为涉及到多个driver、sqr的继承,所以需要virtual sequencer和virtual sequence的应用。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容