在这一部分中,了解随机化验证策略的重要性,为什么要使用随机化的验证策略?
基于对象的随机包括哪三个步骤?
- 定义随机变量rand、randc。
- 指定约束条件constraint range{[][]}
- 调用randomize()方法
若没有定义rand,编译不会报错,但仿真会报错。
这一部分由于只是在generator中做出修改,所以我们需要针对generator进行修改,新定义一个产生随机变量的方法。
在env_top中进行调用时调用随机化的方法即可:
在trans中还要指定需要被rand的数据,并用constraint关键字声明随机化的范围。
我们也可以在使用randomize的同时使用关键字with 对随机化范围进行进一步界定。需要注意的是,该方法在日后的项目中会经常用到。
也可以在constaint内做条件约束,此时不应该有begin和end,符号应该用==。
之后可以更改条件实现不同size的传输。
对比地址位是否符合变化情况。