You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vitis HLS自定义中断与AXI主事务同步问题咨询

Vitis HLS m_axi接口总线拥塞时中断提前触发、设计阻塞问题

背景说明

  • 日常开发中使用Vitis HLS完成设计综合,所实现的设计主函数单次调用对应1个时钟周期,采用流水线架构,绝大多数应用场景下运行正常;针对需要保证确定延迟、固定流水线深度的组件,会直接使用Verilog开发。
  • 本次设计目标:实现DMA向Zynq-7000内存传输数据的逻辑,传输完成后触发中断,通知PS端DMA传输结束。
  • 现有工程逻辑:PS端可通过组件s_axilite接口上信号的上升沿,触发组件启动uint32类型数据的DMA传输,对应实现代码如下:
#include <cstdint>
 
void Example
(
    uint32_t *dmaRegion,
    bool &intrSig,
    volatile bool writeNow
)
{
    #pragma HLS PIPELINE II=1
    #pragma HLS INLINE RECURSIVE
    #pragma HLS INTERFACE s_axilite port=return bundle=registers
    #pragma HLS INTERFACE ap_ctrl_none port=return
    
    #pragma HLS INTERFACE m_axi port=dmaRegion offset=slave bundle=x
    #pragma HLS INTERFACE s_axilite port=dmaRegion bundle=registers
    #pragma HLS INTERFACE ap_none port=dmaRegion
    
    #pragma HLS INTERFACE s_axilite port=writeNow bundle=registers
    #pragma HLS INTERFACE ap_none port=writeNow
    
    #pragma HLS INTERFACE ap_none port=intrSig
    
    static bool lastWriteNow { false };
    static uint32_t Ctr { 0 };
    
    bool intr = false;
    
    if (!lastWriteNow && writeNow)
    {
        Ctr++;
        dmaRegion[10] = Ctr;
        intr = true;
    }
    intrSig = intr;
    
    lastWriteNow = writeNow;
}

正常运行表现

  • 当Zynq经SmartConnect向组件反馈高电平WREADY信号时,设计可正常产生宽度为1个时钟周期的中断脉冲,目前检索到的部分公开示例也采用了同类实现方式。
  • 中断触发后,PS端可从DDR对应内存区域(该区域已禁用L2数据缓存)读取到正确数据,WREADY正常握手场景下功能完全符合预期。

异常场景表现

  • 当多个AXI主设备同时访问SmartConnect造成总线拥塞,导致本组件对应的WREADY信号拉低时,功能出现异常。
  • 测试中将AXI SmartConnect主接口的WREADY信号固定为低电平,模拟永久拥塞场景,可观测到中断信号与WVALID信号持续保持高电平。
  • 该状态下AXI写事务始终无法完成,只要AXI总线处于拥塞状态,设计就会持续阻塞无法恢复。

待解答疑问

  • 该异常现象的底层原理是什么?是否HLS设计在if语句块内发生了阻塞?该现象与Vitis HLS报告中已满足II=1约束的结论似乎存在矛盾。
  • 按照AXI协议规则,WVALID在数据有效时必须拉高,且需保持电平直到WREADY为高完成握手,但无法解释为何在事务尚未完成时,中断线就会拉高并持续保持高电平。
  • 基于Vitis HLS的m_axi接口是否可以为「DMA传输完成后触发中断」的需求提供可靠的时序保证,还是必须更换为其他实现方案?

内容的提问来源于stack exchange,提问作者philyg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:01:08