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的应用。

posted on 2022-02-28 09:41  猪肉白菜_125  阅读(187)  评论(0编辑  收藏  举报