微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求问`ovm_create_on(xx_seq_h, p_sequencer)这种写法的问题

求问`ovm_create_on(xx_seq_h, p_sequencer)这种写法的问题

时间:10-02 整理:3721RD 点击:
求助一下,小弟OVM菜鸟一枚。因为virtual sequencer是调用virtual sequence的。所以一般书写都会有`ovm_create_on(xx_seq_h, p_sequencer.A_seqr)。这样xxx_seq_h才可以通过p_sequencer被A_seqr调用并执行body内的操作。
但是如果没有书写A_seqr的话。直接写作`ovm_create_on(xx_seq_h, p_sequencer),那么这样的操作是什么意思呢?是指执行xx_seq_h,不送给driver吗?那不送给driver的话这样的操作有什么意义呢?

前者说明是xx_seq_h是一个真正的可以在实的seqr上跑的seq
后者则说明是一个虚的seq,其不能在seqr上直接跑,需要在一个virtual seqr上解析成一个个真正的seq

能继续追问一下,如何解析呢

比如使用seq.start(p_seqr, this)来执行vseq,seq.start这个函数就会自动的调用自身的body(),
而你写的body()就是解析成实的seq的过程,这个是你自己写的

但是如果没有书写A_seqr的话。直接写作`ovm_create_on(xx_seq_h, p_sequencer),那么这样的操作是什么意思呢?是指执行xx_seq_h,不送给driver吗?那不送给driver的话这样的操作有什么意义呢?
因为你driver是和p_sequencer.A_seqr通过port在验证环境中连起来的,而你的virtualsequencer是没有练任何driver的如果你直接写作`ovm_create_on(xx_seq_h, p_sequencer)环境会挂死的。
如果你把你的virtualsequencer和你的driver连起来的,你这么写也是OK的,只不过验证环境重用不好。
sequencer原理:你可以这么理解:driver向和我链接的sequencer要数据,sequencer看我这里有没有sequence注册,如果有就将这个sequence中的第一个item发给driver。
现在知道你直接写作`ovm_create_on(xx_seq_h, p_sequencer)不可以了吧。其实virtual sequencer和virtual sequence就是搞一个调度来玩的。

这样是执行了,这个sequence是执行了,但是没有driver接收数据,貌似没什么用呀

nice forum here!

我也是这样理解的。但是确实这样书写也可以执行。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top