IC验证学霸笔记3—SV--随机约束(一)
1.1随机的理解
声明随机变量的类:
随机化是为了产生更多可能的驱动,因此在软件世界"class"一侧的运用更多,所以我们倾向于将相关数据有机整理在一个类的同时,也用rand关键词来表明它们的随机属性。randc表示周期随机性,即所有可能的值都赋过值后随机值才可能重复。
随机属性需要配合SV预定义的类随机函数std::randomize()使用。即只有通过声明rand变量,并且在后期通过对象调用randomize()函数才可以随机化变量。
约束constraint也同随机变量一起在类中声明。
权重分布
条件约束:
可以通过->或者if-else来让一个约束表达式在特定时刻有效。双向约束
• 初学者需要注意的是,约束块不像自上向下的程序性代码。它们是声明性的代码,是并行的,所有的约束表达式同时有效。• 同时,约束也是双向的,这表示它会同时计算所有的随机变量的约束。增加或删除任何—个变量的约束都会直接或间接影响所有相关的值的选取。
1.2约束块控制
内嵌约束
1.3 随机函数
注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!
大家看完记得 一键三连!多多支持