极简FPGA 2024-09-09 00:02 采纳率: 0%
浏览 6

TMS320C6678与FPGA的V7和K7进行SRIO通信由于DDR3阻塞SRIO,无法正常通信

你好的问题是主要结构就是配置好srio fpga给core0发送数据和doorbell中断,处理edma搬移数据都在core1-7,srio的优先级也是最高的 比edma,首先启动core进行传输,FPGA将数据进行SWRITE传输到DSP的DDR3,只要core1-7运行。fpga就出现这个问题,srio跑飞,DSP处理的数据由FPGA通过SRIO写入DDR,ping/pong 存储,FPGA写ping,DSP处理pong。单核运行没有问题,多核运行时,SRIO完全由主核控制,从核只做运算,即FPGA写入的数据分为8份分别由8核运算。此时就涉及到多核及FPGA同时访问DDR的情况。现在的问题是多核运行时,8核分别从DDR读取各自的数据进行运算,FPGA 通过SRIO写入数据到DDR严重阻塞甚至无法传输,FPGA的buf responseonly信号异常拉高,AXI的ready就会一直拉低影响通信,基本上无法通信,请问该如何解决。
已经将srio的优先级设置最高,还是出现该问题

  • 写回答

2条回答 默认 最新

  • 一轮明月照丘壑 2024-09-09 00:03
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    根据您提供的信息,我理解您正在尝试在TMS320C6678 DSP和FPGA之间通过SRIO通信,但在多核运行的情况下遇到了DDR3阻塞的问题,导致无法正常通信。这种问题通常涉及到多个方面的因素,包括硬件设计、软件编程以及系统配置等。针对您的问题,我可以提供一些可能的解决方案和建议:

    1. 优化DDR3访问:由于问题可能出在DDR3的访问上,您可以尝试优化多核对DDR3的访问。例如,可以通过使用锁或信号量等机制来确保在多个核心同时访问DDR3时不会发生冲突。此外,您还可以考虑使用DMA(直接内存访问)来减轻CPU的负担,并减少CPU对DDR3的直接访问。
    2. 检查SRIO配置:虽然您已经配置了SRIO并设置了较高的优先级,但还需要仔细检查SRIO的配置参数,确保它们适用于您的应用场景。包括SRIO的传输速率、传输模式、中断设置等,都需要根据具体的硬件和软件进行配置。
    3. 调试和分析FPGA与DSP的通信:使用调试工具和分析手段来监视FPGA和DSP之间的通信情况。查看信号如buf responseonly和AXI的ready的状态,并分析其异常的原因。您可以检查FPGA发送的数据是否符合预期,以及DSP是否正确接收并处理这些数据。
    4. 同步机制:在多核系统中,确保所有核心之间的同步是非常重要的。您可以考虑使用同步机制(如信号量、中断等)来协调FPGA与各个核心之间的数据传输。确保在FPGA发送数据到DDR3时,其他核心不同时进行访问,或者确保它们之间的访问顺序是正确的。
    5. 资源和性能监控:监控DSP和FPGA的资源使用情况,包括CPU使用率、内存占用情况等。确保在运行时不会出现资源瓶颈或性能瓶颈。如果资源使用率过高,可能需要优化算法或调整系统配置。
    6. 参考设计和文档:参考官方文档和参考设计,了解TMS320C6678 DSP和FPGA之间的通信的最佳实践和建议。有时候,问题可能出在细节配置上,参考设计可以提供一些有用的指导和建议。

    请注意,以上只是一些可能的解决方案和建议,具体解决方案可能需要根据您的硬件、软件和系统配置进行调整。建议您深入分析和调试系统,与相关领域的专家进行交流,以找到最适合您的解决方案。

    评论

报告相同问题?

问题事件

  • 创建了问题 9月9日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?