跳转至

07 NPU Bring-up 故障与 Host 握手案例

案例 1:Host AXI 总线超时导致 NPU 启动挂死

1. 现场故障现象

在 FPGA 原型验证阶段,Host 发送第一个 Task Descriptor 后,NPU 驱动挂起在 wait_for_completion_timeout

[  12.304000] npu_core: ERROR: Command queue timeout on Task ID 0x0001
[  12.304020] npu_core: AXI bus state: RVALID stuck low, ARREADY high

graph TD
    Host["Host CPU (发起 Task Launch)"] -->|AXI Read| Dec["NPU 地址译码器 (Address Decoder)"]
    Dec -->|掩码配置错误: 未命中 SRAM 物理窗口| Hanging["AXI Slave 无应答 (RVALID 锁死为低电平)"]
    Hanging --> Timeout["驱动触发 5000ms 超时 Kernel Panic"]

2. 根因剖析与排查

  • 片上 AXI Interconnect 的地址译码器中,SRAM 基地址掩码高 4 位配置错误,导致 NPU 抓取指令时向未映射地址发出读请求,AXI 从设备未回复 RVALID 导致握手死锁。修正 Address Decoder 掩码后正常取指。