注:在使用xilinx的MIG 核時,會有許多關於時鍾的配置,時間長了容易混淆,特意記錄一下為以后快速回憶,如有錯誤請留言指正。
0、先貼出來DDR3的時鍾樹,這個圖展示了參考時鍾設置的強制規定。

1、Clock Period ,是設置DDR3的工作頻率,這個速率與FPGA的速度等級相關

2、PHY to Controller Clock Ratio,該時鍾是MIG輸出給UI的時鍾,為了避免跨時鍾域的問題,我們用這個ui_clk驅動自己邏輯代碼
這個速率可以設置4:1 /2:1,我設置的2:1,則 ui_clk=333.33/2=166.665MHz
a、我設置的為333.33MHz,因為是雙邊沿,實際速率=333.33*2=666.66MHz
b、ui數據接口位寬:同時這個比例會影響到ui接口的數據位寬;
2:1時,ui位寬是物理層位寬的4倍,4:1時,ui位寬是物理層位寬的8倍。
從時鍾頻率和數據匹配的角度也能得出這個計算關系是正確的。

3、input clock period,輸入時鍾頻率,這是輸入給MIG 核的時鍾,IP核內部會自己調用pll和MMCM 來產生自己的工作時鍾
我設置的是250MHz

4、system clock,是設置步驟3的輸入時鍾的屬性,可以是外部晶振(差分、單端)或者是PLL輸出的時鍾
我用的是PLL輸出的時鍾,PLL輸出時配置GBUFF,所以這里選擇No Buffer

5、Reference clock,是設置MIG的參考時鍾,這個時鍾頻率是固定的,如果工作頻率>666MHz ,參考時鍾固定為300MHz/400MHz,
其他工作頻率固定為200MHz,這里設置時鍾的屬性,可以是外部晶振(差分、單端)或者是PLL輸出的時鍾
我用的是PLL輸出的時鍾,PLL輸出時配置GBUFF,所以這里選擇No Buffer
注:如果system clock的頻率在199-201MHz之間,這里會出現一個use system clock 的選項,意思就是用系統時鍾作為參考時鍾

