由於 Altera SoC 嵌入式設計套件針對 Cyclone® V SoC 和 Arria® V SoC 器件生成的 HPS SDRAM 控制器校準演算法中的問題,DQS 啟用中心報告可能大於開始和結束報告。
校準演算法找到多個延遲的最大值和最小參數,並選取中心值。對於 DQS 啟用,開始和結束報告都已正常化為 VFIFO_SIZE,但中心報表未正常化,因此它可能看起來超出了開始:結束的範圍。
Cyclone® V 和 Arria® V 器件的 VFIFO_SIZE 設置為 16。
注意:要啟用此報告,必須設置宏RUNTIME_CAL_REPORT,這會將校準過程結果報告給標準輸出(通常是UART)。
中心的 VFIFO 報告應除以 16,即VFIFO_SIZE,其餘的是 VFIFO 延遲。
例如:
序。C:DQS 啟用 ;組 0 ;排名 0 ;啟動 VFIFO 6 ;第一階段 ;延遲 4
序。C:DQS 啟用 ;組 0 ;排名 0 ;結束 VFIFO 7 ;階段 0 ;延遲 18
序。C:DQS 啟用 ;組 0 ;排名 0 ;中心VFIFO 22 ;階段 5 ;延遲 3
真正的中心 VFIFO 值為 22 % 16 = 6,如預期的那樣介於 6 到 7 之間。
可以修改生成的預載入器代碼以進行此更改,如下所示:
1. Open <preloader>\uboot-socfpga\board\altera\socfpga\sdram\sequencer.c
2. 搜索 以下 行:
RPRINT(「DQS 啟用 ;組 %lu ;排名 %lu ;中心視覺 %2li ;階段 %li ;延遲 %2li「, grp, sr, v, p-1, d);
3 . 替換為 此 行:
RPRINT(「DQS 啟用 ;組 %lu ;排名 %lu ;中心視覺 %2li ;階段 %li ;延遲 %2li「, grp, sr, (v % VFIFO_SIZE), p-1, d);
4. 通過運行以下命令重新生成預載入器:
使清潔;讓。
此問題已從Altera SoC 嵌入式設計套件 15.1 開始修復。