適用于 PCI Express® IP Cores 的 Arria® V 與 Cyclone® V 硬 IP,不會從 x4 或 x8 配置下行至 x1 或 x2。
解決方法是修正 altpcie_av_hip_128_bit_atom.v 中的 Verilog HDL 代碼,該代碼會設定通道數量。此更正應修正位於 Quartus® II 安裝目錄 中的檔案quartus12.0_install_path>\ip\altera\altera_pcie\altera_pcie_av_hip_ast。 請確定由於 MegaWivarid™ 或 Qsys 工具而位於專案資料夾中的此檔案的任何副本已刪除,而 PCIe 變異已再生。
替換此不正確的代碼:
電線rxstatus_err;
指派 rxstatus_err = (pld8grxstatus0[2] | pld8grxstatus1[2] | pld8grxstatus2[2] | pld8grxstatus3[2] | pld8grxstatus4[2] | pld8grxstatus5[2] | pld8grxstatus6[2] | pld8grxstatus7[2]);
指派rxstatus_err = pld8grxstatus0[2];
使用此更正版本:
電線rxstatus_err rxstatus_err_x1、rxstatus_err_x4、rxstatus_err_x8;
分配rxstatus_err_x8 = (pld8grxstatus0[2] | pld8grxstatus1[2] | pld8grxstatus2[2] | pld8grxstatus3[2] | pld8grxstatus4[2] | pld8grxstatus5[2] | pld8grxstatus6[2] | pld8grxstatus7[2]);
指派 rxstatus_err_x4 = (pld8grxstatus0[2] | pld8grxstatus1[2] | pld8grxstatus2[2] | pld8grxstatus3[2] );
指派 rxstatus_err_x1 = pld8grxstatus0[2] ;
指派 rxstatus_err = (lane_act==4\'b1000)?rxstatus_err_x8:(lane_act=4\'b0100)?rxstatus_err_x4:rxstatus_err_x1;
此問題將在 PCI Express IP Cores 的 Arria V 和 Cyclone V 硬 IP 的未來版本中解決。