VIP20
本课程属于:025-形式化验证 芯片设计与FPGA · 共 20 门相关课程,组合学习更完整。
查看所属VIP全部课程 →
← 返回所属目录 咨询 / 购买

系统级验证的激励约束设计

📚 共计 30 章节
01
约束设计概述
什么是约束?为什么需要约束?约束在验证中的角色。
基础概念
02
SystemVerilog约束基础
constraint块语法、约束体、约束模式。
语法SV
03
随机化变量
rand与randc关键字、randomize()、pre_randomize与post_randomize。
随机化核心
04
简单表达式约束
关系运算符、取值范围约束、inside约束。
表达式inside
05
集合与分布约束
inside集合、dist权重分布、:=与:/操作符的区别。
分布权重
06
条件约束
if-else约束、-> 蕴含操作符、条件约束的优先级。
条件蕴含
07
foreach约束
对动态数组、队列、关联数组的约束。
数组迭代
08
约束块控制
constraint_mode()、软约束与硬约束、继承与覆盖。
控制模式
09
solve…before约束
解决约束求解顺序、避免求解冲突。
求解顺序冲突
10
随机化稳定性
种子(seed)管理、randcase与randsequence、确定性。
种子稳定性
11
功能覆盖率的引入
什么是覆盖率?覆盖率驱动的验证流程。
覆盖率流程
12
covergroup基础
covergroup定义、coverpoint、仓(bins)的概念。
covergroupbins
13
自动仓与手动仓
auto_bin、手动定义bins、ignore_bins与illegal_bins。
bins过滤
14
交叉覆盖率
cross定义、交叉仓的过滤、排除非法组合。
cross组合
15
覆盖率选项
option.per_instance、option.weight、option.at_least、option.comment。
选项配置
16
覆盖率收集与合并
从仿真中收集覆盖率、合并多个仿真结果、覆盖率数据库。
收集合并
17
断言基础
什么是断言?立即断言与并发断言。
断言立即/并发
18
立即断言
assert、assume、cover语句、severity系统任务。
assertassume
19
并发断言基础
property定义、sequence定义、边沿与时钟。
propertysequence
20
序列操作符
##延迟、[*n]重复、[->n] goto重复、[=n]非连续重复。
操作符重复
21
序列表达式
and、or、intersect、throughout、within操作符。
逻辑时序
22
属性与断言
property的使能、disable iff、断言在模块与接口中的使用。
disable iff接口
23
形式化验证简介
形式化验证与动态仿真的区别、断言在形式化中的作用。
形式化静态
24
约束求解器原理
约束求解算法简介、求解器的性能优化、避免求解冲突。
求解器算法
25
随机化策略
面向对象的随机化、事务级随机化、场景随机化。
策略场景
26
约束调试
调试随机化失败、约束冲突分析、打印约束信息。
调试冲突
27
覆盖率驱动的回归
回归测试管理、覆盖率收敛策略、如何关闭验证。
回归收敛
28
UVM中的约束与覆盖率
UVM RAL中的约束、UVM sequence中的随机化、UVM覆盖率组件。
UVMRAL
29
低功耗验证中的约束
电源域约束、电压与温度随机化、功耗感知的覆盖率。
低功耗电源域
30
综合案例:APB总线验证
一个完整的APB总线验证环境,从约束设计到覆盖率收敛。
项目APB