對(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ù)線(xiàn))。
注意:
1. 當(dāng)一個(gè)FPGA上掛多個(gè)DDR,如4片ddr3,位寬則會(huì)相應(yīng)增大;16*4 = 64bit,再乘以DDR3的突發(fā)長(zhǎng)度BL=8;那么程序設(shè)計(jì)里DDR3的讀寫(xiě)位寬就變成了16*4*8=512bit; (這里留個(gè)印象,再后文IP例化及程序設(shè)計(jì)部分還會(huì)講到,到時(shí)候?qū)?yīng)起來(lái)看更容易理解)
2. 明明是512M的DDR,為什么又寫(xiě)成256M呢?因?yàn)?56M16是16根數(shù)據(jù)線(xiàn)16bit,對(duì)應(yīng)過(guò)來(lái)就是2個(gè)byte;256M *16bit = 512MByte; 一般大B 指的是Byte,小b指的是bit;
帶寬:
由于是DDR方式傳輸數(shù)據(jù)(上升和下降沿都傳輸),所以芯片的一根數(shù)據(jù)線(xiàn)上的傳輸速率 = 2*800Mhz = 1600MT/s。其實(shí)就是1600Mbit/s;
帶寬就是16根數(shù)據(jù)線(xiàn)同時(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),最大頻率不能超過(guò)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è)趯?xiě)RTL邏輯代碼時(shí)操作MIG核時(shí),用的就是這個(gè)200M時(shí)鐘;
注:當(dāng)我們選擇800M時(shí)鐘時(shí),下面的PHY to Controller Clock Ratio 只能選擇4:1;對(duì)應(yīng)過(guò)來(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)注
1630文章
21767瀏覽量
604615 -
芯片
+關(guān)注
關(guān)注
456文章
51011瀏覽量
425280 -
Xilinx
+關(guān)注
關(guān)注
71文章
2168瀏覽量
121769
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論