SODIMM 簡介
SODIMM 接口DDR3適配額外的內(nèi)存條才能滿足數(shù)據(jù)緩存的需求,這種需求一般用于高端項(xiàng)目,DDR3 SDRAM 常簡稱 DDR3, 是當(dāng)今較為常見的一種儲存器, 在計(jì)算機(jī)及嵌入式產(chǎn)品中得到廣泛應(yīng)用,特別是應(yīng)用在涉及到大量數(shù)據(jù)交互的場合。
MIG配置流程
本文以XC7K325T-FFG900-2L為例,記錄MIG的配置過程,進(jìn)入IP配置界面后,第一個(gè)界面是 Memory Interface Generator 介紹頁面, 如下圖所示。默認(rèn)的器件家族(FPGA Family)、器件 型號(FPGA Part)、速度等級(Speed Grade)、綜合
工具(Synthesis Tool)和設(shè)計(jì)輸入語言(Design Entry)都和創(chuàng)建工程是保持一致。
注意點(diǎn)
這里的速度等級和封裝都要選準(zhǔn)確,速度等級將會影響后續(xù)的可配置的最大速率,參考DS182
點(diǎn)擊 Next 到 MIG Output Options 配置頁面中, 如下圖所示。 勾選“Create Design”,默認(rèn)名稱(Component Name)為“mig_7series_0”,用戶可對其進(jìn)行修改,這里保持默認(rèn)。選擇控制器數(shù)量(Number of Controllers)為 1,本次 MIG IP 的用戶接口使用 AXI 協(xié)議接口,勾選 AXI4 Interface。
點(diǎn)擊 Next 到 Pin Compatible FPGAs 配置頁面,如下圖所示該界面可用于配置選擇和當(dāng)前所設(shè)定的唯一器件型號做引腳兼容的其它 FPGA 型號。本次辦卡設(shè)計(jì)需同時(shí)兼任XC7K410對此而言,這個(gè)功能是很實(shí)用的。
點(diǎn)擊 Next 進(jìn)入到如下圖所示的 Memory Selection 配置頁面,這里選擇“DDR3 SDRAM” 即可。
SODIMM配置關(guān)鍵點(diǎn)
DDR3 存儲器驅(qū)動的時(shí)鐘周期(Clock Period)設(shè)置為 2500ps(即 400MHz), 這個(gè)時(shí)鐘是用于 FPGA 輸出給到 DDR 存儲器時(shí)鐘管腳的時(shí)鐘。注意這里根據(jù)實(shí)際情況是有設(shè)置區(qū)間范圍的,并非可以設(shè)置任意值,這里的區(qū)間范圍為 2500~3300ps(即300~400MHz)這個(gè)區(qū)間范圍是有講究的。
本文使用的型號是XC7K325TFFG900-2L,對應(yīng)的DDR3最大速率為1866Mb/s,
芯片速率等級是-2L,支持ddr3的最大速度是1866Mb/s,DDR3又是雙邊沿觸發(fā),所以最高支持1072ps,也就是933Mbs,這里將DDR3 存儲器驅(qū)動的時(shí)鐘周期(Clock Period)設(shè)置為 1250ps(即 800MHz)。
DDR3 存儲器類型(Memory Type)為 SODIMM。
DDR3 存儲器型號(Memory Part)為 MT41J2564HZ-1G6,這是開發(fā)板板載 DDR3存儲器的實(shí)際型號。DDR3 存儲器接口電壓(Memory Voltage)為 1.5V。 DDR3 存儲器位寬(Data Width)為 64,這里MIG已經(jīng)默認(rèn)了選擇了DDR 控制器的 bank machines 個(gè)數(shù)設(shè)置,這里參數(shù)與 DDR3 物理 bank 個(gè)數(shù)并非是同一概念,設(shè)置上并非一定需要與 DDR3 物理 bank 個(gè)數(shù)保持一致(當(dāng)然設(shè)置相同數(shù)量可以增加 DDR 控制器的效率和性能,但是會占用相對多的資源,時(shí)序上要求也相對要高。性能和資源上如何達(dá)到一個(gè)比較好的平衡,需要根據(jù)實(shí)際應(yīng)用場景進(jìn)行設(shè)置,有關(guān)詳細(xì)的設(shè)置指導(dǎo)可參考文檔 7 Series FPGAs Memory Interface Solutions)。
DDR 控制器調(diào)度命令的順序的配置,當(dāng)選擇 strict 時(shí),嚴(yán)格按照命令先后順序執(zhí)行;選擇 normal 時(shí),為了得到更高的效率,可能對命令重排序。我們選擇normal 。
點(diǎn)擊 Next 進(jìn)入到如下圖所示 AXI Parameter 配置頁面。 該界面是對 AXI 接口相關(guān)參數(shù)
進(jìn)行配置,具體配置如下。
(1) AXI 接口的數(shù)據(jù)位寬,設(shè)置為 128。
(2) DDR 控制器的仲裁機(jī)制,由于 AXI 接口讀寫通道是獨(dú)立的,讀寫各有自己的地址通道,而儲存器控制器只有一個(gè)地址總線,同一時(shí)刻只能進(jìn)行讀或?qū)?,這樣就存在讀/寫優(yōu)先級的問題,這里設(shè)置 TMD(Time Division Multiplexing),該設(shè)置讀寫優(yōu)先級相同,讀寫交替進(jìn)行。
(3) Narrow Burst 支持,設(shè)置 0,將其關(guān)閉。
(4) AXI 接口的地址位寬,自動根據(jù) DDR3 內(nèi)存生成的位寬,這里 AXI 地址對應(yīng)的數(shù)據(jù)是以 1 字節(jié)進(jìn)行計(jì)算的,不要與 DDR3 的地址和存儲數(shù)據(jù)混淆。板載 DDR3 存儲器存儲空間 2GB (2GB = 2048MByte = 2^31 Byte,所以 AXI 的地址位寬為 31)。
(5) AXI 讀/寫通道的 ID 寬度。 ID 是用來標(biāo)識讀/寫響應(yīng)和讀/寫數(shù)據(jù)的一致性。
輸入系統(tǒng)時(shí)鐘頻率設(shè)置, 這個(gè)時(shí)鐘是提供給 MIG IP 的時(shí)鐘。
如下圖所示為 MIG IP 內(nèi)部關(guān)于時(shí)鐘的結(jié)構(gòu)圖,可以看到 MIG IP 里面有一個(gè)時(shí)鐘鎖相環(huán),系統(tǒng)時(shí)鐘是這個(gè)時(shí)鐘鎖相環(huán)的輸入時(shí)鐘,鎖相環(huán)會根據(jù)這里的輸入時(shí)鐘自動產(chǎn)生 MIG IP 內(nèi)部各種所需的時(shí)鐘。所以這里的時(shí)鐘頻率的設(shè)置沒有固定的要求,下拉框中的各種頻率值都可以選擇。這里考慮到 MIG IP 輸入還需要一個(gè) 200M 的 IDELAYReference Clock 時(shí)鐘,為了將兩個(gè)時(shí)鐘共用一個(gè)輸入時(shí)鐘,
將這里的系統(tǒng)時(shí)鐘周期(Input Clock Period) 配置選擇為 5000ps(200MHz)。
突發(fā)讀類型和長度(Read Burst Type and Length)設(shè)置為順序讀寫 Sequential。輸出驅(qū)動阻抗控制(Output Drive Impedace Control)選擇 R ZQ/7。片上終端(On Die Termination)設(shè)置為 R ZQ/4片選信號(Controller Chip Select Pin)設(shè)置為 Enable,即使用該引腳,實(shí)際開發(fā)板的DDR3 的 CS 信號有連接到 FPGA 管腳,所以這里需要使用該引腳。如果硬件上 DDR3管腳未連接到 FPGA,那么這里就可以設(shè)置為 Disable。DDR 和 AXI 總線之間的地址映射存儲器
地址映射選擇( Memory Address MappingSelection)。默認(rèn)選擇后者。BANK_ROW_COLUMN: 尋址方式選擇。本實(shí)驗(yàn)選擇第二種,即 BANK-ROW-COLUMN 的形式,這是一種最常規(guī)的 DDR3 尋址方式,即要指定某個(gè)地址,先指定 bank,再指定行,最后指定列,這樣就確定了一個(gè)具體地址。一般來說這樣尋址方式有利于降低功耗,但是讀寫性能(效率)上不如“ROW_BANK_COLUMN”。 配置完成點(diǎn)擊“Next”。
系統(tǒng)時(shí)鐘(System Clock): 這里的系統(tǒng) 200M 時(shí)鐘直接由200M差分晶振提供,不由管腳輸入,選擇Differential(差分輸入),如果實(shí)際由FPGA提供 200MHz 時(shí)鐘,也可以選擇 No Buffer
參考時(shí)鐘(Reference Clock):該時(shí)鐘需要頻率為 200MHz 時(shí)鐘,由于在前面配置中將系統(tǒng)時(shí)鐘設(shè)置為 200MHz,所以可以選擇 Use System Clock,這樣就可以將兩個(gè)輸入時(shí)鐘合并一個(gè)共用的 200MH 輸入。如果前面的系統(tǒng)時(shí)鐘設(shè)置的不是 200MHz 這里配置選項(xiàng)就沒有“Use System Clock”可選,只能由管腳端口輸入時(shí)鐘或者 FPGA 內(nèi)部產(chǎn)
生這個(gè) 200MHz 時(shí)鐘。
(3) 系統(tǒng)復(fù)位極性(System Reset Polarity): 選擇 ACTIVE LOW。
(4) 存儲器控制器的調(diào)試信號(Debug Signal for Memory Controller)選擇 OFF。
(5) 勾選 internal Verf。
Next 進(jìn)入到如下圖所示的 Extended FPGA Option 配置頁面中,設(shè)定內(nèi)部終端阻抗(Internal Termination Impedance)為 50 Ohm。
IP Core中設(shè)置啟用DCI Cascade功能,IP中功能描述:“Select the DCI Cascade for the DCI reference pins to achieve better pin efficiency. The constraint file must be updated manually to select the Master/Slave banks”。文章來源:http://www.zghlxwxcb.cn/news/detail-784001.html
在約束中添加“set_property DCI_CASCADE {32 34} [get_iobanks 33]”(基于K7系列),將這三個(gè)bank的數(shù)控電阻級聯(lián),以保證MIG初始化完成,若不加此約束,對于雙邊沿800M的配置可能初始化信號一直不拉高
點(diǎn)擊 Next 進(jìn)入到如下圖所示的 IO Planning Option 配置頁面中,如果當(dāng)前僅僅是仿真,
可以先選擇 New Design。本次實(shí)例最終是要進(jìn)行上板測試的,則選擇“Fixed Pin Out: Preexisting pin out is known and fixed”。
Next 進(jìn)入到如下圖所示的 Pin Selection 配置頁面中,所有 DDR3 存儲器相關(guān)的引腳定義引腳號(Pin Number)以及 IO 電平標(biāo)準(zhǔn)(IO Standard) 的配置,需要和原理圖連接相一致。這里有 2 中配置方式,其中一種配置方式是采用手動輸入的方式,該種方式下只需要對配置界面中 Pin Number 那一列根據(jù)原理圖或提供的管腳分配表選擇相應(yīng)的管腳即可。在選擇設(shè)置完后, Bank Number 和 Byte Number 會自動填充對應(yīng)的配置。手動輸入模式下,IO Standard 不需要手動輸入配置。
點(diǎn)擊 Next 進(jìn)入到如下圖所示的 System Signals Selection 頁面,該頁面無需配置,默認(rèn)
即可。配置界面總結(jié)如下,即完成了MIG對SODIMM的配置
文章來源地址http://www.zghlxwxcb.cn/news/detail-784001.html
到了這里,關(guān)于超詳細(xì)的FPGA使用MIG調(diào)用SODIMM DDR3內(nèi)存條接口教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!