fpga与dsp通过srio接口通信中断问题解决

本文介绍了在K7+6678架构中,FPGA通过SRIO接口与DSP通信时遇到的数据传输中断问题。问题表现为FPGA在发送数据时死锁,等待DSP的ready信号未响应。分析发现,DSP批量写入DDR3可能导致带宽占用过高,阻碍SRIO传输。解决方案是在AXIS请求端口逻辑中增加条件判断,避免在响应阻塞时继续发送请求,从而恢复正常通信。
摘要由CSDN通过智能技术生成

fpga与dsp通过srio接口通信中断问题解决

背景介绍

硬件采用K7+6678构架,K7通过srio接口向6678传输图像。

问题描述

在srio启动初始情况或dsp大批量写DDR3的过程中,尤其是写批量复杂数据时基本都会导致srio卡死,观测发现fpga死在发送数据状态,一直等待ready信号拉高,但一直无响应。

问题分析排查

由于发送数据采用Swirte协议,不带响应,虽然数据传输效率高,但是如果dsp端异常无法接收时,fpga还会一刻不停的写数据,直到异常,初步推断写内存过程占用ddr带宽,导致srio读写DDR3速度降低,直到发生异常。

通过添加ILA信号抓取srio相关状态发现,在dsp批量写入复杂数据的时候,AXIS请求接口的ready信号一直被拉低不能恢复,同时buf_lcl_response_only_out信号(该信号表示srio_ip内部fifo仅响应,不能输入数据)会被拉高,详见下图,同时phy_lcl_phy_rewind_out信号反复触发,srio端口状态信号均正常,初步推断为dsp在写ddr3时占用数据带宽,导致swirte请求阻塞。
在这里插入图片描述
在这里插入图片描述

解决方法

在AXIS请求端口侧逻辑中增加“& (~buf_response_only)”信号,确保该信号有效时不再发送任何请求,经测试ddr带宽恢复后能够恢复srio传输,问题解决。

  • 5
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
SRIO(Serial RapidIO)是一种高速串行总线接口,用于在数字信号处理器(DSP)之间进行数据传输。DSP是一种用于数字信号处理的专用微处理器,常用于音频、视频、图像处理等领域。 SRIO接口具有以下特点和优势: 1. 高速传输:SRIO接口的数据传输速率可达到几十Gbps,远高于传统并行总线接口。这使得DSP能够以更快的速度进行数据的接收和处理,提高处理效率和性能。 2. 低延迟:SRIO接口具有较低的传输延迟,可以快速传递实时数据。对于实时信号处理的应用,SRIO接口可以保证数据的即时性,降低数据处理的延迟。 3. 高可靠性:SRIO接口采用差分信号传输技术,可以有效减少信号干扰和传输误码。此外,SRIO接口还支持错误检测和纠正功能,提高了数据传输的可靠性。 4. 灵活扩展:SRIO接口支持多设备之间的互联,可以扩展多个DSP之间的通信和协作。通过SRIO接口DSP可以与其他处理器、存储器和外设设备进行高速数据交换,实现复杂的数据处理和计算任务。 5. 简化系统设计:SRIO接口具有标准化的硬件和软件接口,有丰富的开发工具和支持资源。这使得系统设计人员可以更简单地集成DSP和其他设备,加速产品开发周期。 总之,SRIO接口DSP提供了高速、低延迟、可靠和灵活的数据传输通道,提升了DSP的数据处理能力和性能,广泛应用于各种数字信号处理应用和系统中。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值