🎲 SystemVerilog 随机化约束精讲
📚 30章 · 从入门到专家
⭐ 友好色系 · 紧凑目录
01
随机化基础
为什么需要随机化
验证角色
SV机制概览
02
rand与randc
rand修饰符
randc循环随机
区别与选择
03
约束块入门
constraint语法
位置与作用域
开启与关闭
04
简单表达式约束
关系运算符
等式/不等式
取值范围
05
集合与分布约束
inside操作符
dist操作符
:= 与 :/ 权重
06
条件约束
if-else约束
蕴含->操作符
优先级
07
foreach约束
动态数组
队列
关联数组
08
约束块的控制
constraint_mode()
软/硬约束
继承与重写
09
随机化函数
randomize()
randomize with
pre/post回调
10
随机化失败处理
常见原因
assert随机化
错误码分析
11
随机序列与权重
randsequence
randcase
应用场景
12
随机化与OOP
类的随机化
继承中的约束
多态
13
约束求解器
工作原理
性能考量
确定性
14
随机化调试技巧
打印约束状态
$urandom
约束覆盖率
15
随机化与功能覆盖率
covergroup结合
交叉覆盖率
仓定义
16
数组约束
定长数组
动态数组大小
元素约束
17
队列约束
队列大小
元素约束
push/pop随机
18
关联数组约束
索引约束
值约束
19
字符串约束
长度约束
内容约束
模式匹配
20
枚举约束
枚举随机化
权重分布
约束技巧
21
结构体约束
struct随机化
packed约束
unpacked约束
22
联合体约束
union随机化
tagged union
使用场景
23
类嵌套约束
嵌套对象随机
深层约束传递
循环依赖
24
时间约束
随机延迟
随机时钟周期
时间建模
25
事务约束
总线事务随机
协议约束
序列生成
26
错误注入
错误类型随机
概率控制
传播约束
27
功耗约束
功耗模型随机
电压/频率
场景生成
28
配置约束
寄存器配置
模式配置
配置空间遍历
29
跨域约束
时钟域交叉
异步接口
跨域同步
30
随机化最佳实践
约束风格指南
性能优化
可复用约束库