<< All versions
Skill v1.0.0
currentLLM-judged scan90/100openxiangshan/xiangshanlab/xiangshan-bugs-analysis
──Details
PublishedOctober 22, 2026 at 04:32 PM
Content Hashsha256:47ec8eadb45a9636...
Git SHAdeae183cde00
──Files
Files (1 file, 3.6 KB)
SKILL.md3.6 KBactive
SKILL.md · 74 lines · 3.6 KB
version: "1.0.0" name: xiangshan-bug-analysis description: Analyze XiangShan bug waveforms from FST/VCD/FSDB, logs, disassembly, and source. Use when root-causing frontend, backend, Load/Store, cache, MSHR, redirect/kill/replay, branch prediction, wrong-path, RVV, CSR, exception, interrupt, PMP/PMA, MMU, or page-table bugs.
香山 Bug 分析
适用场景
- 用户给出复现程序、反汇编、仿真日志、FST/VCD/FSDB 和 XiangShan 源码。
- 目标是定位 bug 根因,而不是生成新场景或重新跑仿真。
- 默认重点是前端、后端、访存、Cache、MMU、CSR 和异常路径。
- 需要精确 waveform 查询时,配合
analyze-xiangshan-wavekit技能使用。
工作流
- 先归一化目标:PC、指令、寄存器、副作用、异常预期。
- 再找波形锚点:先用日志/反汇编/commit 找到目标 PC,再沿流水线往前追。
- 逐级看边界:每个
valid/ready都要确认fire = valid && ready。 - 继续带着身份走:rename 后用
robIdx、lqIdx、sqIdx、物理寄存器继续追。 - 分域追因果:前端预测/redirect、后端执行/提交、访存/cache/MSHR、MMU/PMP/PMA。
- 最后回到架构态:commit、difftest、CSR、trap、异常目标、寄存器写回。
证据规则
- 只写波形和源码共同证明的结论。
- 每个非显然判断都要有源码位置和波形周期。
- 只在波形证明时谈 redirect、kill、replay、wrong-path 或侧信道。
- 不要把 bubble 当根因;只有它解释功能现象时才记录。
分域重点
前端
- 关注
FTQ -> BPU -> ICache/IFU -> ITLB -> IBuffer -> Decode。 - 常看
backendIPF/backendIAF/backendIGPF、satpFlush、flushPipe、miss、pf、af、gpf。 - 重点问题:canonical address、错误路径取指、ITLB miss/PTW、redirect 后恢复、投机取指污染。
- 参考:
references/frontend-itlb.md
后端
- 关注
Decode -> Rename -> Dispatch -> ROB -> Issue -> Execute -> Writeback -> Commit。 - 常看
robIdx、ftqIdx、redirect、flushAfter、needFlush、exceptionVec、difftest_commit_*。 - 重点问题:分支误判、执行单元异常、CSR/trap redirect、年轻指令清空、commit 不一致。
- 参考:
references/backend-redirect-csr.md
访存 / Cache
- 关注
LSQ / LoadUnit / StoreUnit / DTLB / PTW / DCache / MSHR / StoreBuffer。 - 常看
miss、hit、replay、nack、forward、pmp、pma、pte、queue full/empty。 - 重点问题:地址翻译、权限、cache miss、MSHR 冲突、store-to-load forward、replay 风暴。
- 参考:
references/memory-cache-lsq.md
ISA / CSR / MMU
- RV64/RVV 要核对指令语义、宽度、符号扩展、mask/tail、
vtype/vl/vstart/vxsat/vxrm。 - CSR / 异常 / 中断要核对
mcause/mepc/mtval、scause/sepc/stval、mstatus/sstatus、satp/vsatp/hgatp。 - MMU / PMP / PMA 要区分页表 walk、canonical 地址、权限检查、访问属性和访问异常。
- 参考:
references/isa-mmu-exception.md
源码阅读顺序
- 先看 bundle / IO 定义。
- 再看赋值、gating 和握手条件。
- 然后看 state / FSM / replay / flush 逻辑。
- 最后回到波形验证语义是否一致。
输出要求
- 说明用的波形格式、采样边沿和 clock。
- 给出绝对 cycle 和 time。
- 给出对应源码文件和行号链接。
- 给出分阶段时间线、redirect 路径、commit/difftest 状态和根因结论。
参考文档
references/workflow.mdreferences/source-map.mdreferences/frontend-itlb.mdreferences/backend-redirect-csr.mdreferences/memory-cache-lsq.mdreferences/isa-mmu-exception.md