對(duì)FPGA而言,時(shí)鐘就是脈搏,必須理解透徹!
一、如何知道器件所支持的時(shí)鐘頻率?
舉例說(shuō)明:
DDR3 型號(hào): MT41J256M16xx-125
(記住這個(gè)常用型號(hào),后文還是以此型號(hào)講解)
FPGA 型號(hào): XC7K325TFFG900-2 (常用FPGA型號(hào))
datasheet : MT41J512M8RH-125:E(DDR3)、DS182(FPGA)
1.1DDR3芯片的帶寬、位寬和最大IO時(shí)鐘頻率
翻看DDR3對(duì)應(yīng)型號(hào)MT41J256M16XX-125的數(shù)據(jù)手冊(cè),可以看到:

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

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

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

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

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

圖6.參考時(shí)鐘
參考時(shí)鐘必須為200Mhz!
當(dāng)我們系統(tǒng)時(shí)鐘為200M時(shí),參考時(shí)鐘就可以直接使用系統(tǒng)時(shí)鐘(use system clock)
???????四、行業(yè)術(shù)語(yǔ)
1. 核心頻率:核心頻率就是DDR物理層(PHY)IO時(shí)鐘頻率,對(duì)應(yīng)到MIG就是第一個(gè)配置的“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)注
1650文章
22217瀏覽量
627912 -
芯片
+關(guān)注
關(guān)注
462文章
53249瀏覽量
455254 -
Xilinx
+關(guān)注
關(guān)注
73文章
2190瀏覽量
129195
發(fā)布評(píng)論請(qǐng)先 登錄
基于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í)等長(zhǎng)設(shè)計(jì)技巧
AD設(shè)計(jì)DDR3時(shí)等長(zhǎng)設(shè)計(jì)技巧
【RK3568+PG2L50H開發(fā)板實(shí)驗(yàn)例程】FPGA部分 | DDR3 讀寫實(shí)驗(yàn)例程
在Vivado調(diào)用MIG產(chǎn)生DDR3的問題解析
DDR3 SDRAM配置教程

Xilinx FPGA平臺(tái)DDR3設(shè)計(jì)保姆式教程(二)
評(píng)論