每日一问之AMBA协议

1 APB常见问题

  • 重点:简单的两拍握手;psel选中从机;penable传输使能;
  • 常见问题
    1)时序违例:在某些高速系统中,APB接口上信号prdata在penable期间不能满足setup/hold时间。
    2)等待周期:pready一直拉低,会导致死锁。

2 AHB常见问题

  • 重点:地址与数据分离,共享总线架构。所有slave都通过hready控制传输;hburst和hsize控制突发传输的长度和数据位宽。
  • 常见问题
    1)仲裁延迟:作为共享总线,多master竞争会有总线仲裁延迟。
    2)hready挂起:slave在响应慢时拉低ready,如果设计不当时容易导致总线响应超时。

3 AXI 常见问题

  • 重点:五通道写地址、写数据、写响应、读地址、读数据;ID机制支持乱序传输;握手机制vld、rdy同时拉高表示传输成功。
  • 常见问题
    1)死锁:写地址依赖写数据,但写数据又在等写地址。
    2)握手逻辑错误:vld信号在rdy未拉高之前必须保持。
    3)通道间依赖:忽略地址和数据通道顺序关系,导致违反协议。

推荐验证方法

1)协议合规性:断言自动化检查

2)死锁排查:vld为高rdy为低,可重点排查rdy产生的组合逻辑,大概率是slave的fifo满或者状态机卡死。

3)乱序处理:覆盖不同ID交错发送场景,很多bug只在特定ID顺序下才会显现。

4)性能问题:系统总线带宽不足,通常不是协议问题,而是仲裁算法,如rr和固定优先级设置不合理,或者slave的响应延迟太高。