首页
›
芯片设计与FPGA
›
025-形式化验证
›
《随机激励与约束求解器深度应用》
VIP20
本课程属于:025-形式化验证
芯片设计与FPGA · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录
咨询 / 购买
随机激励与约束求解器深度应用
📚 共计 30 章节
01
约束求解器基础
什么是约束求解器、随机激励与约束求解的关系、SystemVerilog中的随机化机制。
基础
概念
02
随机变量与rand/randc
rand关键字的使用、randc关键字的使用、rand与randc的区别与选择。
变量
rand
03
约束块基础
约束块的定义、约束块的作用域、约束块的开启与关闭。
约束
作用域
04
简单约束表达式
关系运算符、等式与不等式约束、范围约束。
表达式
范围
05
权重约束与分布
dist操作符、:=与:/的区别、权重分布的应用场景。
权重
dist
06
条件约束
if-else约束、-> 蕴含操作符、条件约束的优先级。
条件
蕴含
07
foreach约束
对数组元素进行约束、动态数组的约束、多维数组的约束。
数组
foreach
08
约束中的函数调用
在约束中使用函数、函数的限制(自动函数)、避免在约束中调用非纯函数。
函数
纯函数
09
solve...before约束
约束求解的顺序控制、solve...before的使用场景、避免过度使用。
顺序
solve
10
约束的继承与重写
子类中重写约束、constraint_mode()的使用、约束的层次化设计。
继承
重写
11
随机化函数
randomize()函数、randomize() with {}、pre_randomize()与post_randomize()回调函数。
回调
randomize
12
随机化失败处理
随机化失败的常见原因、assert($randomize)的使用、随机化失败的调试技巧。
调试
失败
13
系统函数与随机化
$urandom、$urandom_range、$random的区别与使用。
系统函数
$urandom
14
随机序列生成
使用randcase生成随机分支、使用randsequence生成随机序列。
序列
randcase
15
随机化与覆盖率
功能覆盖率基础、covergroup与coverpoint、交叉覆盖率。
覆盖率
covergroup
16
覆盖率驱动的随机化
根据覆盖率反馈调整随机方向、动态约束调整策略。
驱动
反馈
17
随机化中的数组约束
定长数组、动态数组、队列的随机化约束。
数组
队列
18
随机化中的对象句柄
随机化对象句柄、对象句柄的约束、对象池的随机选择。
句柄
对象池
19
随机化中的枚举类型
枚举类型的随机化、枚举值的权重约束。
枚举
权重
20
随机化中的字符串
字符串的随机化、字符串长度与内容的约束。
字符串
长度
21
随机化中的实数
实数的随机化、实数约束的精度问题。
实数
精度
22
随机化中的结构体与联合体
struct的随机化、union的随机化、packed结构体的随机化。
struct
union
23
随机化中的静态变量与全局变量
静态变量的随机化、全局变量的随机化、线程安全。
静态
全局
24
随机化中的时钟与时间
随机化时钟周期、随机化延迟、时间约束的建模。
时钟
延迟
25
随机化中的异常与错误注入
随机化错误类型、错误注入的约束建模、错误恢复机制。
异常
错误注入
26
随机化中的协议序列
总线协议的随机序列生成、协议约束的建模、序列的合法性检查。
协议
总线
27
随机化中的功耗与性能
随机化功耗场景、随机化性能参数、功耗与性能的权衡约束。
功耗
性能
28
随机化中的多核与并行
多核随机化策略、并行随机化线程的同步、分布式随机化。
多核
并行
29
随机化中的调试与可视化
随机化结果的日志记录、随机化过程的调试、随机化结果的可视化分析。
调试
可视化
30
随机化最佳实践与项目经验
随机化策略的制定、随机化代码的复用、随机化在大型项目中的应用案例。
最佳实践
项目
所属VIP或分类
同VIP:仿真调试与覆盖收敛实战手册
同VIP:仿真调试与覆盖收敛联合优化实战
同VIP:回归测试中的断言重用策略