01
随机约束基础
SystemVerilog随机化概念、rand与randc关键字、约束块的基本语法。
rand约束块
02
简单随机变量
整型、位向量、枚举类型的随机化,以及范围约束。
整型枚举范围
03
权重分布约束
dist操作符,:=和:/的区别,实际应用场景。
dist权重
04
条件约束
if-else约束、->操作符(蕴含约束),实现动态随机。
if-else蕴含
05
集合与inside约束
inside操作符,集合的构建,以及[$]范围表达式。
inside集合
06
foreach约束
对动态数组、队列、关联数组进行逐元素约束。
foreach动态数组
07
唯一性约束
unique关键字,确保数组元素互不相同。
unique不重复
08
软约束与硬约束
soft关键字,约束的优先级与覆盖机制。
soft优先级
09
静态约束与动态约束
constraint_mode()函数,开启/关闭约束块。
constraint_mode开关
10
随机化函数
randomize()、randomize() with、pre_randomize()与post_randomize()回调。
randomize回调
11
约束求解器行为
solve...before约束,控制概率分布。
solve...before概率
12
随机化失败处理
随机化失败的常见原因,assert与软检查。
assert失败处理
13
随机序列生成
使用randsequence生成随机指令序列。
randsequence序列
14
随机树与随机图
randcase与randstruct,构建复杂随机结构。
randcaserandstruct
15
随机化与面向对象
类的随机化,嵌套对象的随机化。
类嵌套
16
随机化与覆盖率
covergroup与随机变量的结合,功能覆盖点。
covergroup覆盖点
17
随机化与断言
立即断言与并发断言在随机化中的应用。
断言并发
18
随机化与功能覆盖率驱动
通过覆盖率反馈调整随机约束。
反馈调整约束
19
随机化与后处理
随机化后的数据检查与变换。
后处理数据检查
20
随机化与事务级建模
在UVM sequence中嵌入随机约束。
UVMsequence
21
随机化与寄存器模型
UVM RAL模型的随机化读写。
RAL寄存器
22
随机化与总线协议
AXI/APB总线随机激励生成。
AXIAPB
23
随机化与错误注入
通过约束制造边界条件与错误场景。
错误注入边界
24
随机化与功耗分析
生成不同功耗模式的随机激励。
功耗模式
25
随机化与多核同步
多核场景下的随机同步约束。
多核同步
26
随机化与延迟建模
随机延迟与时序约束的结合。
延迟时序
27
随机化与数据包生成
网络包、存储包等复杂数据结构的随机化。
数据包网络
28
随机化与配置空间
随机生成DUT配置寄存器序列。
配置寄存器序列
29
随机化与回归测试
随机种子管理,回归测试策略。
种子回归
30
随机化实战项目
综合案例,从约束设计到覆盖率闭合的全流程。
实战全流程