01
验证方法论概述:从黑盒到白盒,激励与约束的哲学。
黑盒白盒思维,激励约束的哲学根基
方法论基础
02
SystemVerilog断言基础:立即断言与并发断言的区别。
立即断言 vs 并发断言,语法精讲
断言SV
03
SVA序列与属性:sequence、property的构建与层次化。
sequence & property 层次化设计
SVA属性
04
约束求解器入门:randomize()与constraint块的语法。
randomize() 与 constraint 块基础
约束求解器
05
约束与断言的第一行代码:一个简单的FIFO满标志验证。
FIFO满标志实战,约束+断言初体验
实战FIFO
06
时序断言:$rose、$fell、$stable的实战用法。
边沿检测 $rose $fell $stable
时序断言
07
跨时钟域断言:CDC同步器的断言检查。
CDC 同步器断言检查方法
CDC跨时钟
08
约束的权重与分布:dist、:=、:/操作符。
dist 权重分布 := :/ 操作符
约束权重
09
动态约束与内嵌约束:randomize() with {}。
内嵌约束 randomize() with {}
动态内嵌
10
断言覆盖率:cover property与cover sequence。
cover property / sequence 覆盖率
覆盖率断言
11
断言中的局部变量:在sequence中使用局部变量。
sequence 局部变量用法
局部变量sequence
12
断言中的函数调用:在property中调用function。
property 中调用 function
函数property
13
约束中的if-else与条件约束:implication操作符。
if-else 条件约束 implication
条件implication
14
断言中的蕴含操作符:|->与|=>的深度对比。
|-> 与 |=> 蕴含操作符对比
蕴含|->
15
约束中的循环与数组约束:foreach与数组约束。
foreach 数组约束循环
数组foreach
16
断言中的重复操作符:[*n]、[->n]、[=n]。
重复操作符 [*n] [->n] [=n]
重复操作符
17
断言中的ended结构:序列结束检测。
ended 序列结束检测
ended序列
18
约束中的软约束与硬约束:soft关键字。
soft 软约束 vs 硬约束
软约束soft
19
断言中的disable iff:异步复位场景。
disable iff 异步复位处理
disable iff复位
20
断言中的expect语句:阻塞式断言。
expect 阻塞式断言
expect阻塞
21
约束中的随机化控制:rand_mode与constraint_mode。
rand_mode / constraint_mode 控制
随机化模式
22
断言中的多时钟序列:@(posedge clk1) ##1 @(posedge clk2)。
多时钟序列 @(posedge clk1) ##1 @(posedge clk2)
多时钟序列
23
断言中的matched结构:跨时钟域匹配。
matched 跨时钟域匹配
matchedCDC
24
约束中的随机化回调:pre_randomize与post_randomize。
pre_randomize / post_randomize 回调
回调随机化
25
断言中的asserton与assume:形式验证基础。
asserton / assume 形式验证
形式验证assume
26
约束中的随机化稳定性:randcase与randsequence。
randcase / randsequence 稳定性
randcase稳定性
27
断言中的property参数化:可重用的断言库。
参数化 property 断言库
参数化重用
28
约束与断言联合调试:UVM中的report_phase。
UVM report_phase 联合调试
UVM调试
29
实战项目:AXI总线读写约束与断言检查。
AXI 总线约束 + 断言检查
AXI实战
30
课程总结:激励约束与断言检查的最佳实践。
最佳实践与课程回顾
总结最佳实践