01
RISC-V处理器调试概述
为什么需要调试 · 调试的挑战 · Vivado逻辑分析仪简介
调试基础ILA入门
02
Vivado ILA IP核详解
ILA核的配置 · 探针设置 · 采样深度与触发条件
IP核探针
03
搭建最小调试系统
创建Vivado工程 · 例化RISC-V核 · 添加ILA探针
工程实践入门
04
触发条件设置实战
边沿触发 · 电平触发 · 总线匹配触发 · 计数器触发
触发条件配置
05
波形分析与数据导出
波形窗口操作 · 数据导出为CSV · Tcl脚本自动化分析
波形Tcl
06
调试流水线冒险
结构冒险 · 数据冒险 · 控制冒险的波形特征与定位
流水线冒险
07
调试存储访问异常
Load/Store指令调试 · 地址对齐异常 · Page Fault定位
存储异常
08
调试中断与异常处理
MEPC/MCAUSE寄存器分析 · 中断嵌套 · 异常返回路径追踪
中断异常
09
调试多周期指令
MUL/DIV指令调试 · CSR指令调试 · FENCE指令调试
多周期指令
10
调试Cache一致性
I-Cache与D-Cache调试 · Cache Miss分析 · Coherence协议
Cache一致性
11
调试总线协议
AXI4总线调试 · AHB-Lite总线调试 · 总线超时与错误处理
总线AXI4
12
调试性能计数器
mcycle/minstret寄存器 · Cache命中率计算 · CPI分析
性能计数器
13
调试启动过程
Boot ROM调试 · 指令预取分析 · 第一条指令执行验证
启动Boot
14
调试上下文切换
mstatus寄存器分析 · 保存恢复现场 · 任务切换时间测量
上下文RTOS
15
调试浮点单元
FPU指令调试 · 舍入模式验证 · 异常标志位分析
浮点FPU
16
调试向量扩展
V扩展指令调试 · 向量长度设置 · 向量访存调试
向量V扩展
17
调试调试模块
Trigger Module配置 · 硬件断点设置 · 单步执行调试
调试模块断点
18
调试安全特性
物理内存保护(PMP) · M/S模式切换 · TrustZone调试
安全PMP
19
调试功耗管理
WFI指令调试 · 时钟门控调试 · 电源域切换调试
功耗WFI
20
调试多核系统
核间同步调试 · 原子指令调试 · Cache一致性协议调试
多核原子
21
调试JTAG接口
JTAG TAP控制器 · DTM模块 · 调试传输协议分析
JTAG接口
22
调试Trace接口
Nexus Trace协议 · 指令Trace分析 · 数据Trace分析
TraceNexus
23
调试性能分析工具
Vivado Performance Analyzer · 关键路径 · 时序优化
性能时序
24
调试固件与硬件交互
Bootloader调试 · 设备驱动调试 · MMIO访问调试
固件MMIO
25
调试实时操作系统
FreeRTOS任务切换 · 中断延迟测量 · 堆栈溢出检测
RTOSFreeRTOS
26
调试Linux内核启动
Linux Boot流程 · 页表初始化 · 设备树解析调试
Linux内核
27
调试网络协议栈
Ethernet MAC调试 · TCP/IP卸载引擎 · DMA描述符调试
网络DMA
28
调试AI加速器
矩阵乘法指令 · 数据流优化 · DMA传输调试
AI加速器
29
调试安全启动
签名验证调试 · 安全存储 · 信任根建立调试
安全启动信任根
30
综合调试案例
从RTL到系统的全流程调试 · 常见问题排查清单 · 效率提升技巧
综合方法论