文章 ID: 000078731 内容类型: 故障排除 上次审核日期: 2021 年 08 月 27 日

为什么我会收到您从英特尔® Avalon®内存映射(适用于 PCI* Express)的 128 位硬核 IP 读取的 TLP 请求中返回的错误数据?

环境

    Intel® Quartus® Prime Pro Edition
    Avalon-MM Stratix® V Hard IP for PCI Express Intel® FPGA IP
    Avalon-MM Arria® V Hard IP for PCI Express Intel® FPGA IP
    Avalon-MM Arria® V GZ Hard IP for PCI Express Intel® FPGA IP
    Avalon-MM Cyclone® V Hard IP for PCI Express Intel® FPGA IP
    Intel® Arria® 10 Cyclone® 10 Hard IP for PCI Express
BUILT IN - ARTICLE INTRO SECOND COMPONENT
说明

由于英特尔® Quartus® II 和 Prime 软件版本 15.0、16.0、16.1、17.0 和 17.1 出现问题,当 PCI* Express 链路被充分利用并完成大量无序完成时,您可能会看到不正确的读取数据。 此问题仅适用于 PCI* Express 硬核 IP Avalon®-内存映射 128 位变体。

当这种情况发生时,传入的读取数据的一部分可能出现在先前读取的数据中间。

解决方法

这种问题是由内存保存的完成缓冲区大小过小引起的。

要解决此问题,请执行以下步骤:

  1. 查看文件altpciexpav128_rx.v生成的文件目录。
  2. 查找行 localparam CB_RX_CPL_BUFFER_DEPTH =256;
  3. 将线路更改为 localparam CB_RX_CPL_BUFFER_DEPTH =512;
  4. 查找 "wire[7:0] cplram_wraddr;""电线 [7:0] cplram_rdaddr;"
  5. 将线宽度从 8 位更改为 9 位:
    1. 线 [8:0] cplram_wraddr;
    2. wire [8:0] cplram_rdaddr;

找到的版本:15.0 和 16.0 至 17.1.1
已修复版本:15.1 和 18.0
此问题已在软件版本 18.0 开始修复。

相关产品

本文适用于 15 产品

Cyclone® V GT FPGA
Arria® V GT FPGA
Cyclone® V GX FPGA
Arria® V GX FPGA
Intel® Arria® 10 GT FPGA
Stratix® V GX FPGA
Arria® V GZ FPGA
Cyclone® V SX SoC FPGA
Arria® V SX SoC FPGA
Intel® Arria® 10 SX SoC FPGA
Arria® V ST SoC FPGA
Cyclone® V ST SoC FPGA
Intel® Arria® 10 GX FPGA
Stratix® V GS FPGA
Stratix® V GT FPGA

1

本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。