为什么我在用于PCI Express的Avalon-Memory Mapped 128位Altera硬IP上从读取的TLP请求中返回不正确的数据?

由于Quartus®II15.0版本存在问题,当PCI®Express链接被高度利用并且存在大量无序完成时,您可能会看到错误的读取数据。这仅适用于Avalon®-Memory Mapped 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. wire [ 8 :0] cplram_wraddr;
    2. wire [ 8 :0] cplram_rdaddr;

此问题已在软件版本15.1及更高版本中得到修复。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-08-04 18:46:57 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它