weixin_45931096 2021-03-11 18:33 采纳率: 0%
浏览 58

基于FPGA开发CYUSB3014传输数据重数、出错

FPGA发数通过DDR3再经过FIFO最后通过USB3.0给上位机 传输数据,  使用slae fifo协议。模块时钟给的100M。使用官方软件测试速率是320MB/s。显示数据都成功没有失败。我底层ILA抓取的数据看着也没问题。但是control center这个软件读上来的数据过一会就会有6个重复数据。请问是我底层哪里的原因?

  • 写回答

2条回答 默认 最新

  • 你知我知皆知 2024-07-24 08:31
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,首先需要了解SLAE(Serial Low-Average Error)FIFO协议的基本工作原理以及如何在FPGA中实现和调试。以下是一些建议步骤:

    1. 检查底层ILA抓取的数据

    • 确认是否正确配置了FPGA:确保你的FPGA配置正确,并且设置为支持SLAE协议。
    • 检查硬件接口:检查FPGA与USB连接器之间的信号线缆是否有问题。这包括电缆质量、插头接触情况等。
    • 硬件校准:确保FPGA已经校准到正确的状态。

    2. 测试FPGA内部状态

    • 查看寄存器或控制表:检查FPGA的状态寄存器或控制表中的相关值。这些信息通常会在FPGA内部以某种格式存储。
    • 模拟输入输出:尝试模拟一个正常的FPGA操作来验证状态是否正常。

    3. 分析控制中心读取的数据

    • 对比底层数据与控制中心读取的数据:比较底层ILA抓取的数据和控制中心读取的数据。看两者是否存在明显的差异。
    • 分析数据结构:如果可能的话,分析底层数据的结构,看看是否存在错误或不一致性。

    4. 调试逻辑层次

    • 分析底层数据流:研究底层数据流,找出数据是如何被处理和存储的。这可以帮助你识别潜在的问题点。
    • 优化设计:根据发现的问题,调整你的设计以减少数据丢失的可能性。

    5. 测试解决方案

    • 逐步添加功能:从最小化组件开始,逐步增加复杂性,直到找到问题所在。
    • 验证解决方案:在新的设计中进行大量的测试,以确保问题得到彻底解决。

    6. 再次评估性能

    • 重新评估性能:再次运行性能测试,特别是速率测试。这将帮助确定任何潜在的影响因素。

    请注意,以上建议提供了一个大致的方向,具体的解决方案可能需要更深入的硬件和软件知识。如果你不确定某些部分,可能需要寻求专业人士的帮助。

    评论

报告相同问题?