微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求助,一个有关UVM验证的问题

求助,一个有关UVM验证的问题

时间:10-02 整理:3721RD 点击:
问题大概是这样的:首先,我发A种包,然后在driver里面检测某信号,例如a,当a由0变成1时,我就发B种包,a再变成2时,我发C种包。这样的功能能不能在UVM中实现啊?新手求教!谢谢!其实说简单点就是,当a由0变成1时,driver就要告诉sequencer我要发B种包了。问题是怎么告诉啊?
补充,也可以不用再driver里面检测a信号,在哪儿检测都行,只要检测到a变化以后,可以通知sequencer发另一种包就行。各位大神,小弟是新手,求助啊

virtual sequence就可以解决,

谢谢,我是新手,我看书也看到了virtual sequence。但是有点不明白,请问,我如果使用vertual sequence的话,是不是要使用多个sequence.sv和多个sequencer.sv ,还有多个agent.sv?

virtual seuqence 是用来进行单个的sequence调动的,因此肯定需要多个sequence才行,不同的sequence用不同的class封装,只需要在一个sv文件里面定义多个sequence,还有agent是component,而sequence属于控制流,是不一样的。

這個很簡單哈,virtual sequence裡面有(A,B,C幾種sequence),在virtual sequence中得到interface的handle,根據a,來選擇下次發的數據包。

嗯,好的,谢谢!

咦?听上去感觉不错哦!谢谢大神啦!我去研究研究。

学习下……

LS的正解。v seq是一个好东西

也可以利用drv来看if上的信号!



用drv看了以后怎么办?怎么去控制发不同的包呢?

小编,你这个问题解决了没有,我现在的情况和你一样,也是卡到这里了,virtual sequence中也不能看interface,你是怎么解决的最后?

我现在也遇到和小编相同的问题,其他的都没问题,就是怎么在virtualsequence中使用外面的条件,比如driver中的bsy信号,我直接在virtual sequence中使用interface中的bsy信号,会报错是 空指针,这个怎么办呢?求大神看到啊

我现在也遇到和小编相同的问题,其他的都没问题,就是怎么在virtualsequence中使用外面的条件,比如driver中的bsy信号,我直接在virtual sequence中使用interface中的bsy信号,会报错是 空指针,这个怎么办呢?求大神看到啊

very good ,

个人建议,使用 virtual sequence来调度,并在driver里面设置config_db传递变量到sequence中,当sequence中接收到的信号满足条件时,就触发该sequence。当然,也可以在transaction里面设置constraint来约束。

1、你使用dut的反馈信号来控制激励的发送有些不妥,激励的发送要独立于dut,否则有些时序bug测试不出来,比如你用这个信号来控制发包种类可能dut的处理是正确的,但该信号跳变时刻是错误的,你另外还需增加跳变时刻的检查。
2、我认为abc3种包都是由你控制的怎么发送的,你要了解转发条件即可实现三包转发,而不是通过dut已经处理好的转发信号来判断。
3、如果你非要使用dut的转发信号,那么这个输出信号也要进行严格检查。

uvm到底要不要去下周的培训看看,后端必须会uvm吗?

学习学习

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

网站地图

Top