引子:
HP中的DDR需要sys_clk和clk_ref兩路輸入,HR用戶功能也需要usr_clk時鍾輸入。
但是HR資源IO被完全占用,HP中只有bank33的MRCC/SRCC可以作為fpga的時鍾輸入。以及為了盡量減少差分晶振的數量,需要合理利用內部時鍾資源。
一、先弄清楚DDR_controller的clk需求
調用MIG IP,選擇DDR3 32位寬4GB。
System Clock給DDR控制器邏輯和接口提供時鍾;Reference Clock單獨給Delay單元提供時鍾,用來調整DDR信號時序。
Reference Clock:先來簡單的,ref_clk給個固定的200MHz輸入就可以了,可以認為跟ddr_controller這塊是功能分開的。
You need to always supply a 200 MHz ref_clk and then MIG creates the appropriate IDELAYCTRL frequency with an additional MMCM.
Input Clock Period:片子差分晶振頻率,作為PLL模塊的CLKIN。該PLL的VCO頻率為800MHz(待確認)。
另外,這個模塊能出5路 Additional Clock 給其他Fabric用,能否給user的logic?(待確認)
driven from an internal clock (No Buffer).
只有Input Clock Period是外掛200mhz時,Reference Clock才能選擇Use System Clock。
建議兩者都選 No Buffer,使用內部時鍾。
Internal Vref 能釋放 IO_0_VRN / IO_25_VRP 兩個管腳,這里為什么不能勾選?(待確認)
DDR顆粒選型:Micron MT41K1G8SN-107
二、內部時鍾如何分配
7系內部分成了許多個clock region,每個region是50個CLB和IOB合集,且每個region內部有12個global clock domain,這些domain又能被級別最高的32個global clock buffer驅動。
而這些BUFG又能被CCIO直接驅動,即MRCC/SRCC時鍾輸入引腳。
輸入clk_in外接200Mhz晶振,經過clocking wizard輸出三路時鍾,分別給usr_clk、sys_clk、clk_ref
參考1:ug586_7Series_MIS
參考2:ug472_7Series_Clocking