是的,在 11.0 版的 DDR3 SDRAM 和 DDR2 SDRAM UniPHY 型控制器中,錯誤更正代碼 (ECC) 有自動錯誤修正功能的問題。如果您寫給記憶體的資料中有一個位錯誤,記憶體控制器會將單一位錯誤寫入記憶體中的資料,然後用單位錯誤讀回,在本機側修正,使使用者邏輯讀取的資料正確無誤。雖然它會在使用者邏輯或本機端修正資料,但它不會像預期那樣將修正後的資料寫回記憶體裝置。
問題在於參數「CTL_ECC_RMW_ENABLED」並未傳遞至控制器實例,因此控制器不會執行讀取修改後的寫入,因為無法啟用自動修正功能。
解決方法是 -
- 開啟 .v
- 在「alt_mem_if_ddr3_controller_top」即時中新增下列行:
- ".CTL_ECC_RMW_ENABLED (1)」。
這將導致啟用自動修正功能。
這個問題將會在未來的 Quartus® II 軟體和 IP 版本中得到解決。