如何提高交叉覆盖率
求问各位大神如何解决这个问题。
同求!
那就把cross后的coverpoint划分小点,直接cross的话可能有些coverpoint的功能重复了。
否则就是跑regression直到100%。
我覺得首先應該檢討分這麼多bin 是不是必要的. 若真的必要, 是不是改採用 direct test 的方式, 而不要用 contraint random verification, 因為 verification methodology 是因 case 而異的, 若 direct test 能達到 100% coverage, 又比較有效率, 為何一定要 random
这里是个举例。实际上的情况是有三个bin,每个bin内的数据都分别要random,需要把他们的交叉组合都测试到。如果用directed_test来测试的话工作量十分庞大。
哎,确实伤脑经啊。每一种cross的结果都是需要验证的。
可以试试这样,假设A的值是0-19,B的值是0-29.可以定义一个randc bit[9:0] C的member.
class random_cross ;
randc bit [9:0] C;
rand bit [4:0] A;
rand bit [4:0] B;
constraint con_AB{
A==C[4:0];
B== C[9:5];
}
endclass
只要C的值完全随机到了 ,那么A和B的Cross肯定可以达到100%的
粗见勿喷
恩,我觉得这个思路很好。谢谢LS。但是LS的这个constraint应该不够,因为A/B/C是同时random的,所以只会抽取其中相等的结果。可能加上solve before结果更好。灰常感谢这个思路。