微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC验证交流 > 求各个大神们指导:关于SV约束failed的问题

求各个大神们指导:关于SV约束failed的问题

时间:10-02 整理:3721RD 点击:
定义了如下一个简单求和运算的transaction,循环若干次assert(tr.randomize())会出现部分failed现象,在c_len_value约束块里面加上len[31:16]<=16'hffff,结果就成功了百思不得其解~
classtr ;rand bit[31:0]sum ;
rand bit[31:0]len[] ;
rand bit[5:0]num ;
constraint c_len{
len.sum == sum ;
len.size== num ;
num inside {[2:10]};
}
costraint c_len_value{
foreach(len){
len[31:16] == 0 ;
}
}
constraint c_sum{
sum<32'hffff ;
}
endclass :tr

有冲突,自然fail

上面那段代码冲突没能看出来,求指导~

fail的原因很多,肯定受到了冲突,软件也可问题。

solve sum before len
solve num before len
加这两个约束试试看出错的那个行不

没有定义unsigned,所以会出现负数,于是就冲突了

bit本来就是无符号的

建议看下LRM 有种写法比这个简洁有效,另外每次fail都会报出Error,直接看下就应该明白原因了

试了好像是存在小编说的问题~不过不知道怎么解释
”c_len_value约束块里面加上len[31:16]<=16'hffff,结果就成功了“

我随机没有问题呀,随了100次,另外,小编的语法不对,ies编译不过
foreach(len[i]){
len[i][31:16] == 0;
}

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

网站地图

Top