由于英特尔® Quartus® II 和 Prime 软件版本 15.0、16.0、16.1、17.0 和 17.1 出现问题,当 PCI* Express 链路被充分利用并完成大量无序完成时,您可能会看到不正确的读取数据。 此问题仅适用于 PCI* Express 硬核 IP Avalon®-内存映射 128 位变体。
当这种情况发生时,传入的读取数据的一部分可能出现在先前读取的数据中间。
这种问题是由内存保存的完成缓冲区大小过小引起的。
要解决此问题,请执行以下步骤:
- 查看文件altpciexpav128_rx.v生成的文件目录。
- 查找行 localparam CB_RX_CPL_BUFFER_DEPTH =256;
- 将线路更改为 localparam CB_RX_CPL_BUFFER_DEPTH =512;
- 查找 "wire[7:0] cplram_wraddr;"和 "电线 [7:0] cplram_rdaddr;"
- 将线宽度从 8 位更改为 9 位:
- 线 [8:0] cplram_wraddr;
- wire [8:0] cplram_rdaddr;
找到的版本:15.0 和 16.0 至 17.1.1
已修复版本:15.1 和 18.0
此问题已在软件版本 18.0 开始修复。