IC验证学霸笔记3—SV--随机约束(一)

1.1随机的理解


声明随机变量的类:

随机化是为了产生更多可能的驱动,因此在软件世界"class"一侧的运用更多,所以我们倾向于将相关数据有机整理在一个类的同时,也用rand关键词来表明它们的随机属性。 

randc表示周期随机性,即所有可能的值都赋过值后随机值才可能重复。

随机属性需要配合SV预定义的类随机函数std::randomize()使用。即只有通过声明rand变量,并且在后期通过对象调用randomize()函数才可以随机化变量。

约束constraint也同随机变量一起在类中声明。



权重分布 




条件约束: 

可以通过->或者if-else来让一个约束表达式在特定时刻有效。

双向约束

•    初学者需要注意的是,约束块不像自上向下的程序性代码。它们是声明性的代码,是并行的,所有的约束表达式同时有效。
•    同时,约束也是双向的,这表示它会同时计算所有的随机变量的约束。增加或删除任何—个变量的约束都会直接或间接影响所有相关的值的选取。

1.2约束块控制

内嵌约束

1.3 随机函数

注:优秀验证学员随堂笔记,已经征求到学生的同意,会持续给牛友们分享!
大家看完记得 一键三连!多多支持

#深度学习##做项目##转行转岗经验分享##芯片IC验证工程师##你为什么选择硬件行业#
全部评论
果然是学霸,写的非常清楚
点赞 回复 分享
发布于 2022-09-06 10:42 陕西

相关推荐

一表renzha:手写数字识别就是一个作业而已
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务