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的应用模板
![](https://img.haomeiwen.com/i9390540/8328556c1df86a6c.png)
![](https://img.haomeiwen.com/i9390540/f65b98493c72c6df.png)
![](https://img.haomeiwen.com/i9390540/7163ebc7119cfcd6.png)
![](https://img.haomeiwen.com/i9390540/1a0b81cd46dc9cdf.png)
在UVM tree上,vsqr放在了跟env相同的一级。其实我觉得这个vsqr挂在哪里其实都无所谓,因为它只是一个调控作用而已。
项目实战:在SOC大型的继承环境里面,因为涉及到多个driver、sqr的继承,所以需要virtual sequencer和virtual sequence的应用。
网友评论