一、如何知道器件所支持的時鐘頻率?
舉例說明:
DDR3 型號: MT41J256M16xx-125
(記住這個常用型號,后文還是以此型號講解)
FPGA 型號: XC7K325TFFG900-2 (常用FPGA型號)
datasheet : MT41J512M8RH-125:E(DDR3)、DS182(FPGA)
1.1DDR3芯片的帶寬、位寬和最大IO時鐘頻率
翻看DDR3對應(yīng)型號MT41J256M16XX-125的數(shù)據(jù)手冊,可以看到:

圖1. DDR3 Part Numbers
IO時鐘頻率:
根據(jù)Part Number 中的“-125”我們就可以找到圖中的tCK = 1.25ns,就可以算出芯片支持的最大IO時鐘頻率:1/1.25ns = 800Mhz;此處的IO時鐘頻率也就是DDR3的頻率;
位寬:
根據(jù)Part Number 中的“256M16”我們可以找到圖中2所指出的地方,這里的16是代表芯片的數(shù)據(jù)位寬是16位(也就是16根數(shù)據(jù)線)。
注意:
1. 當(dāng)一個FPGA上掛多個DDR,如4片ddr3,位寬則會相應(yīng)增大;16*4 = 64bit,再乘以DDR3的突發(fā)長度BL=8;那么程序設(shè)計(jì)里DDR3的讀寫位寬就變成了16*4*8=512bit; (這里留個印象,再后文IP例化及程序設(shè)計(jì)部分還會講到,到時候?qū)?yīng)起來看更容易理解)
2. 明明是512M的DDR,為什么又寫成256M呢?因?yàn)?56M16是16根數(shù)據(jù)線16bit,對應(yīng)過來就是2個byte;256M *16bit = 512MByte; 一般大B 指的是Byte,小b指的是bit;
帶寬:
由于是DDR方式傳輸數(shù)據(jù)(上升和下降沿都傳輸),所以芯片的一根數(shù)據(jù)線上的傳輸速率 = 2*800Mhz = 1600MT/s。其實(shí)就是1600Mbit/s;
帶寬就是16根數(shù)據(jù)線同時傳輸?shù)臄?shù)據(jù)速率 = 1600Mbit/s x 16 = 25600Mbit/s = 3200Mbyte/s = 3.125GByte/s
???????1.3FPGA所支持的最大頻率
翻看k7數(shù)據(jù)手冊ds182可以看到:

圖2. k7系列支持的DDR速率
k7系列的FPGA所支持的DDR3傳輸速率高達(dá)1866MT/s,這里需要跟硬件工程師具體了解了解,實(shí)際使用最高還是1600MT/s,對應(yīng)頻率= 1600M/2= 800Mhz;
???????二、時鐘結(jié)構(gòu)

圖3. 時鐘結(jié)構(gòu)
從圖中,我們可以看到,主要有兩個時鐘:
①參考時鐘 : 必須為200Mhz
②系統(tǒng)時鐘 : 系統(tǒng)輸入時鐘
那么對應(yīng)到MIG IP核又是如何定義的呢?繼續(xù)往下走
三、MIG IP核的時鐘:
3.1clock period時鐘

圖4. Clock Period
這里①Clock Period設(shè)置的參數(shù)就是 MIG 的PHY 接口對DDR3的時鐘,也就是DDR3芯片實(shí)際跑的IO時鐘頻率,它由system clock(主時鐘)倍頻而來,最大頻率不能超過DDR3 和MIG支持的最大頻率中的最小值(前文已講解如何查看器件所支持的最大頻率)。
對應(yīng)到MIG 例化的信號:
.ddr3_ck_p (ddr3_ck_p ), //連接DDR管腳 .ddr3_ck_n (ddr3_ck_n ),
3.2 ui_clk
圖4下面②有個4:1,說明MIG 輸出到app接口上的時鐘ui_clk = 800M/4=200M ,即到時我們在寫RTL邏輯代碼時操作MIG核時,用的就是這個200M時鐘;
注:當(dāng)我們選擇800M時鐘時,下面的PHY to Controller Clock Ratio 只能選擇4:1;對應(yīng)過來ui_clk最大為200M;當(dāng)我們clock period時鐘選擇小于800M時,這里可以選擇4:1 / 2:1;
3.3 input clock period

圖5. input clock period
input clock period 對應(yīng)的時鐘就是MIG核的系統(tǒng)時鐘,由PLL/MMCM輸入;對應(yīng)到例化代碼就是:
.sys_clk_i (sys_clk_i ), //系統(tǒng)時鐘輸入
我們配置MIG核時選擇多少M(fèi)時鐘,那么這里就要輸入多少M(fèi)
注:
推薦選擇200Mhz,因?yàn)閰⒖紩r鐘也是200Mhz,配置的時候參考時鐘可以直接使用系統(tǒng)時鐘,減少端口信號
3.4 Reference clock

圖6.參考時鐘
參考時鐘必須為200Mhz!
當(dāng)我們系統(tǒng)時鐘為200M時,參考時鐘就可以直接使用系統(tǒng)時鐘(use system clock)
???????四、行業(yè)術(shù)語
1. 核心頻率:核心頻率就是DDR物理層(PHY)IO時鐘頻率,對應(yīng)到MIG就是第一個配置的“CLOCK PERIOD”,上文我們選擇的是800Mhz
2. 工作頻率:核心頻率* 2 (上下沿)= 1600M核心頻率* 2 = 1600M
3. 傳輸速率:核心頻率* 2 = 1600MT/s
4. 帶寬:傳輸速率*位寬 = 1600M * 16 = 25600Mbit/s = 3200Mbyte/s = 3.125GByte/s
審核編輯:湯梓紅
-
FPGA
+關(guān)注
關(guān)注
1652文章
22238瀏覽量
628782 -
芯片
+關(guān)注
關(guān)注
462文章
53354瀏覽量
456643 -
Xilinx
+關(guān)注
關(guān)注
73文章
2190瀏覽量
129509
發(fā)布評論請先 登錄
HummingBird EV Kit - DDR3 引腳不匹配是怎么回事?
DDR3 SDRAM參考設(shè)計(jì)手冊
基于FPGA的DDR控制器設(shè)計(jì)
基于DDR200T開發(fā)板的e203進(jìn)行DDR3擴(kuò)展
DDR200T中的DDR3的使用配置
FPGA搭建DDR控制模塊
用FPGA實(shí)現(xiàn)DDR控制模塊介紹
AD設(shè)計(jì)DDR3時等長設(shè)計(jì)技巧
AD設(shè)計(jì)DDR3時等長設(shè)計(jì)技巧
在Vivado調(diào)用MIG產(chǎn)生DDR3的問題解析
DDR3 SDRAM配置教程

Xilinx FPGA平臺DDR3設(shè)計(jì)保姆式教程(二)
評論