📘 功能覆盖率驱动仿真验证
实战 · 30章
从定向到随机 · 覆盖闭合
📁 30个章节
⚡ 点击卡片跳转
🧪 风格
🎯 覆盖率驱动 · 系统实战
01
验证方法论概述
演进
从定向测试到随机测试的演进,功能覆盖率的概念与重要性。
02
覆盖率类型详解
代码·功能
代码覆盖率(行、分支、条件、状态机)与功能覆盖率的区别与联系。
03
SystemVerilog断言基础
assert
立即断言与并发断言,assert/assume/cover 的区别。
04
功能覆盖点定义
covergroup
covergroup 与 coverpoint 的语法结构,bin 的自动创建与手动定义。
05
交叉覆盖率
cross
cross 的用法,排除非法组合,自动与手动 bin 的交叉。
06
覆盖率选项
weight·goal
weight、goal、comment、per_instance 等选项的配置与实战。
07
覆盖率收集策略
采样
仿真过程中的数据采样,触发事件(clocking event)与条件过滤。
08
覆盖率数据库管理
urg
使用 urg 合并多个仿真结果,生成覆盖率报告。
09
覆盖率驱动的随机约束
反馈
通过覆盖率反馈调整约束,实现定向随机化。
10
SystemVerilog 随机化基础
rand
rand 与 randc,约束块(constraint)的写法。
11
约束求解器技巧
dist·foreach
权重分布(dist)、条件约束(if-else)、foreach 约束。
12
功能覆盖模型设计
VPlan
如何根据验证计划(VPlan)提取覆盖点,构建层次化覆盖模型。
13
覆盖率驱动的测试序列生成
UVM seq
使用 UVM 的 sequence 机制,结合覆盖率反馈动态调整。
14
UVM 寄存器模型覆盖
reg_model
reg_model 的覆盖率收集,寄存器访问序列的覆盖。
15
UVM 环境中的覆盖率集成
scoreboard
在 scoreboard 和 monitor 中嵌入 covergroup。
16
覆盖率闭合分析
收敛
如何判断覆盖率是否收敛,分析未覆盖的 bin 并制定补充策略。
17
形式化验证与覆盖率
JasperGold
使用 JasperGold 或 VC Formal 进行属性覆盖分析。
18
覆盖率驱动的仿真加速
暂停/恢复
利用仿真器的覆盖率反馈暂停/恢复仿真,减少冗余测试。
19
多核与并行仿真中的覆盖率
分布式
分布式仿真场景下的覆盖率合并与冲突解决。
20
覆盖率驱动的验证计划管理
端到端
从 VPlan 到覆盖率数据库的端到端流程。
21
覆盖率报告解读
urgReport
urgReport 的详细解读,如何定位覆盖率空洞。
22
覆盖率驱动的回归测试管理
增量
基于覆盖率增量的回归测试集优化。
23
SystemVerilog 功能覆盖进阶
动态
covergroup 的传递参数、动态创建与销毁。
24
覆盖率驱动的错误注入
fault
结合 fault injection 验证覆盖率模型的完备性。
25
低功耗验证中的覆盖率
电源域
电源域切换、隔离、保持逻辑的覆盖点设计。
26
覆盖率驱动的协议验证
AXI/AHB
以 AXI/AHB 为例,设计协议时序的覆盖模型。
27
覆盖率驱动的中断验证
嵌套
中断触发、屏蔽、嵌套场景的覆盖点设计。
28
覆盖率驱动的 DMA 验证
链表
DMA 传输模式、地址对齐、链表的覆盖模型。
29
覆盖率驱动的缓存一致性验证
MESI
MESI 协议状态转换的覆盖点设计。
30
课程总结与实战项目
完整环境
构建一个完整的覆盖率驱动仿真验证环境,从规划到闭合。