导读:作者有幸在中国电子信息领域的排头兵院校“电子科技大学”攻读研究生期间,接触到前沿的数字IC验证知识,旁听到诸如华为海思、清华紫光、联发科技等业界顶尖集成电路相关企业面授课程,对数字IC验证有了一些知识积累和学习心得。为帮助想入门前端IC验证的朋友,思忱一二后,特开此专栏,以期花最短的时间,走最少的弯路,学最多的IC验证技术知识。
文章目录
- 一、内容概述
- 二、随机化验证策略
-
- 2.1、为什么使用随机化验证策略(重要)
- 2.2、随机内容有哪些(抽象,了解)
- 2.3、SystemVerilog 的随机化
-
- 2.3.1、rand 随机变量
- 2.3.2、randc 随机变量
- 2.3.3、带随机变量的类
- 2.3.4、randomize() 函数(启动随机变量)
- 2.3.5、约束解释器
- 2.3.6、constraint 约束语句块
- 2.3.7、随机化的约束:简单的表达式
- 2.3.8、随机化的约束:设置范围操作符
- 2.3.9、随机化的约束:权重分布
- 2.3.10、随机化的约束:双向约束
- 2.3.11、随机化的约束:条件约束
- 2.3.12、随机化的约束的结果可能性:无约束情况
- 2.3.13、随机化的约束的结果可能性:有约束情况
- 2.3.14、随机化的约束:functions
- 2.3.15、随机化的约束:约束保护
- 2.3.16、激活或关闭随机变量(`randomize` 的大开关)
- 2.3.17、激活或关闭约束(`constraint` 的大开关)
- 2.3.18、测试题
一、内容概述
- 为什么使用随机化验证策略
- 1、验证空间很大(时间换空间,牺牲的是时间;不同的时间覆盖的不同的空间)
- 2、边界条件人为想不到,随机化激励丰富,保证验证完备性
- SystemVerilog 中的随机化
- 范围、权重
- 在类(
class
)中声明随机变量 - 为随机变量设置约束(
Constraints
) - 随机变量的权重分布(
weighted distribution
) - 关闭或打开随机与约束(
rand_mode() 和 constraint_mode()
)