微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > UVM 随机产生指定的数值

UVM 随机产生指定的数值

时间:10-02 整理:3721RD 点击:
我想在my_transaction中随机产生一个data_in信号,它的值只能是0或1或5.
我是这样写的:constraint valid {data_in inside {0, 1, 5};};
然后在my_sequence的task body中随机产生data_in:req.data_in = $urandom;
可是看波形时data_in没有按照我给定的constraint产生,会有2,6,7.。等值,求各位大神指点正确的做法。

randomize()没有在 req.data_in = $urandom;之后。而是之前了。

调用受约束的随机变量,应该是利用randomrize()函数把?调用urandom函数是无符号数的随机产生,不带特定的约束啊!

randomize()

谢谢楼上各位大神的解答,我在my_sequence中创建了一个my_transaction的实例req, 是不是应该这样使用randomize(),即:req.randomize(); 这样他会自己根据在my_transaction中的constraint进行random?可是我这样做了,结果中req.data_in的值为x。我不知道是不是constraint写的有问题,还是在使用randomize()上有问题。

reqcreate了吗?
driver 有调用seq_item_port.get_next_item()方法吗?贴上代码吧,一起分析一下

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

网站地图

Top