01
断言基础
什么是断言?断言在验证中的角色,断言语言(SVA)简介。
SVA概念
02
立即断言
立即断言语法,在always块中使用,与if-else的区别。
语法always
03
并发断言
并发断言基础,序列与属性,断言时钟与采样。
sequenceproperty
04
SVA序列操作
序列的延迟、重叠、连接,重复与逻辑操作。
延迟重复
05
SVA属性操作
蕴含操作 (|->, |=>),时序操作,属性嵌套。
蕴含时序
06
断言覆盖率
cover属性,covergroup与断言结合,覆盖率分析。
cover分析
07
断言调试
断言失败信息,$error与$fatal,断言日志分析。
调试日志
08
随机激励基础
SystemVerilog随机化,rand与randc,随机约束块。
rand约束
09
约束求解器
约束求解原理,solve...before,权重与分布。
求解器权重
10
随机函数
$random, $urandom, $urandom_range,随机种子管理。
函数种子
11
随机化对象
类的随机化,randomize(),pre/post_randomize。
类randomize
12
内建约束
内建约束函数,约束开关控制,继承与重写。
内建继承
13
随机序列
随机序列生成,randsequence,randcase。
randsequencerandcase
14
功能覆盖率
covergroup与coverpoint,仓(bins)定义,交叉覆盖率。
covergroupbins
15
覆盖率驱动验证
覆盖率驱动流程,覆盖率闭环,收敛策略。
CDV收敛
16
断言与随机协同
为什么需要协同?断言约束随机,随机触发断言。
协同闭环
17
断言约束随机
断言作为随机约束,implication约束,动态约束调整。
implication动态
18
随机激励触发断言
随机激励下的断言检查,时序窗口与断言触发。
时序窗口触发
19
协同调试流程
发现问题-分析断言-调整随机-重新验证闭环。
流程迭代
20
调试工具
VCS/UVM调试技巧,波形查看断言,断点与单步。
VCS波形
21
常见断言错误
时序错误、逻辑错误、边界条件,随机复现。
错误复现
22
随机种子调试
种子复现机制,种子与断言失败关联,管理策略。
种子复现
23
覆盖率驱动的断言优化
根据覆盖率调整断言密度,冗余断言消除。
优化冗余
24
断言与UVM
UVM断言集成,uvm_assertion_handler,报告机制。
UVMhandler
25
UVM随机序列
uvm_sequence与uvm_sequencer,随机序列断言检查。
sequencesequencer
26
UVM寄存器模型断言
寄存器读写断言,寄存器约束与随机化。
寄存器RAL
27
高级SVA
SVA函数/任务,与C/C++交互,形式化验证。
形式化C接口
28
形式化验证与断言
形式化基础,断言作为属性,BMC与证明。
BMC证明
29
项目实战案例1:APB
APB总线协议验证,断言与随机协同调试全流程。
APB实战
30
项目实战案例2:AXI
AXI总线协议验证,复杂时序断言与随机激励协同。
AXI复杂时序