功能验证调试技巧 · 速成手册
30章 完整目录
1
调试思维筑基
从“代码写对了”到“证据链闭环”的思维转变,调试的黄金三原则(复现、隔离、定位)。
2
日志的艺术(上)
日志分级 (FATAL/ERROR/WARN/INFO/DEBUG/TRACE),日志内容规范(时间戳、模块名、关键变量值)。
3
日志的艺术(下)
条件编译与日志开关,日志文件轮转与归档策略,我在项目中遇到的日志风暴问题。
4
断言驱动调试
SystemVerilog断言(SVA)基础,断言在调试中的妙用(实时监控、自动报错)。
5
波形分析入门
VCD/FSDB波形格式简介,常用波形查看器(Verdi、DVE)基本操作,如何快速定位信号跳变。
6
波形分析进阶
利用波形比较功能进行回归调试,波形分组的艺术,我曾经用波形对比找到的隐蔽Bug。
7
断点调试技巧
断点设置的艺术(条件断点、硬件断点),单步执行与Step Over/Into/Out的选择。
8
内存调试
内存泄漏检测(Valgrind/Memcheck),堆栈溢出与野指针的排查方法,我的一次内存踩踏排查经历。
9
多线程调试
死锁检测与定位,竞态条件的复现与调试,GDB多线程调试命令实战。
10
覆盖率驱动调试
代码覆盖率、功能覆盖率、翻转覆盖率的概念,覆盖率空洞分析与定向用例编写。
11
随机化调试
SystemVerilog随机化约束调试,随机种子复现技巧,约束求解失败的排查方法。
12
回归测试调试
回归失败用例的快速分类(环境问题 vs 设计问题 vs 用例问题),批量调试脚本编写。
13
仿真加速调试
仿真加速原理(编译优化、并行仿真),加速环境下的调试限制与应对策略。
14
形式化验证调试
形式化工具(JasperGold/VC Formal)基本使用,属性证明失败的调试方法。
15
低功耗调试
UPF/CPF功耗意图调试,低功耗仿真中的特殊信号处理,我遇到过的电源域隔离Bug。
16
接口协议调试
AXI/APB/AHB协议调试要点,协议检查器的使用,总线时序违规的波形分析方法。
17
时钟域调试
跨时钟域(CDC)同步器检查,亚稳态问题的仿真与调试,CDC验证工具的使用。
18
复位调试
异步复位同步释放的验证,复位树分析与调试,复位相关Bug的经典案例。
19
脚本化调试
Python/Tcl脚本在调试中的应用,自动化日志分析脚本编写,波形自动化提取脚本。
20
调试文档化
Bug报告撰写规范(复现步骤、根因分析、修复方案),调试笔记的整理与知识沉淀。
21
团队协作调试
代码评审中的调试视角,结对调试技巧,调试知识库的建立与共享。
22
性能调试
仿真性能瓶颈分析(CPU/内存/IO),仿真速度优化技巧,我曾经优化过的一个慢仿真案例。
23
后仿真调试
门级仿真(Gate-Level Simulation)调试要点,SDF反标问题排查,后仿真与RTL仿真差异分析。
24
Emulation调试
硬件加速仿真(Emulation)调试流程,Emulation与仿真调试的异同,波形上载与离线分析。
25
硅后调试
芯片回片后的调试方法(JTAG、扫描链),硅后调试与硅前调试的衔接,我的一次硅后Bug定位经历。
26
调试工具链
常用调试工具汇总(VCS、Verdi、GDB、Valgrind、Perf),工具链集成与自动化流程。
27
调试方法论
二分查找法在调试中的应用,因果链分析法,假设驱动调试法。
28
调试心理学
调试中的认知偏差,如何保持耐心与专注,调试疲劳的应对策略。
29
调试案例复盘(上)
经典Bug案例分析(逻辑错误、时序问题、边界条件),从案例中提炼调试模式。
30
调试案例复盘(下)
复杂系统级调试案例,跨团队协作调试案例,调试能力进阶路径总结。