一、随机和约束
1.1 随机
- 定向测试能找到你认为可能存在的缺陷,而随机测试可以找到你没有想到的缺陷。
- 随机测试相对于定向测试可以减少相当多的代码量,而产生的激励较定向测试也更多样。
1.2 约束
- 我们想要的随机自由是一种合法的随机,需要限定激励和合法范围。
- 同时,伴随测试的进行,约束甚至应该“变形”,变得更趋于为测试得数值范围或者期待得数值范围。
二、声明随机变量的类
- 随机化是为了产生更多的驱动,因此再软件世界“class”一侧的运用更多,所以我们倾向于将相关数据有机整理在一个类的同时,也用rand关键词来表明它们的随机属性。
- randc表示周期随机性,即所有可能的值都赋过后随机值才能重复。
- 随机属性需要配合SV预定义的类随机函数std::randomize()使用。即只有通过声明rand变量,并且在后期通过对象调用randomize()函数才可以随机化变量。
- 约束constraint也同随机变量一起在类中声明。
p=new() ; 创建对象之后,对象里面的成员变量src、dst等值都为0.
一般使用bit 2值数据类型,使用logic也可以,但是无法随机出X值和Z值。
const 就是常数,后面不能在赋值。