使用 Quartus® II 14.0 及更早版本生成的面向 PCI Express® 的 Altera® Avalon®-MM 硬 IP 在启用通过协议配置 (CvP) 时吞吐量较低。出现此问题的原因是 PCIe 硬 IP 和 Avalon-MM 网桥中的信用计数器不同步。
对于 CvP,在对结构进行编程之前加载 PCIe 外设。外设编程后,FPGA发送和接收 PCIe 数据包。这种交互会递增 PCIe 硬 IP 中的信用计数器。此后不久,结构将使用默认信用计数器值加载,从而导致两个计数器不匹配。
该问题计划在 Quartus® II 软件的未来版本中修复。
要在 Quartus® II 版本 14.0 及更早版本中变通解决此问题,请在 RTL 中进行以下更改。
在文件 altpciexpav_stif_tx_cntrl.v 中,将以下行更改为:
np_header_avail_reg <= np_header_avail;
自:
np_header_avail_reg <= 1'b1;