最近在使用fpga讀寫DDR3,板子上的DDR3有兩種形式與fpga相連,一種是直接用ddr3內存顆粒,另一種是通過內存條的形式與fpga相連。這里我們正好記錄下和ddr3相關的知識,先從DDR3 SO-DIMM 內存條開始。
1.先看內存條的版本
從JEDEC下載的標準書中,看到RAW Card被分為A-F六個版本,各個版本之間的差異在表格中可以清楚看出來。
差異主要在:條上內存顆粒數量、內存顆粒的位寬、內存條的Rank。
這個版本的意思其實是內存條的不同組織形式,每個版本的特征與將來PCB布局布線、和內存條的頻率時序都有關系,設計之初就要確定好。
2.再看看內存條的金手指引出定義
CK[1:0]、CK[1:0]、CKE[1:0]:時鐘輸入與使能,6;(反向線用下劃線代替)
RAS、CAS:行列選通線, 2; WE:寫使能,1;
DQ[63:0]:數據輸入輸出,64; A[9:0]、A11、A[15:13]:地址輸入線,14;
DM[7:0]:數據掩碼線,8; DQS[7:0]、DQS[7:0]: 數據選通線,16;
BA[2:0]:SDRAM Bank地址線,3; S[1:0]:芯片選擇,2;
A10/AP:地址輸入/自動預充電,1; A12/BC :地址輸入/突發傳輸,1;
SCL、SDA、SA[1:0]、VDDSPD:SPD和TS電源線、尋址和IIC通信線,5;
ODT[1:0]:終端電阻控制線,2; RESET:復位引腳,1;
EVENT:溫度事件引腳,1; Vtt:端接電壓,1;
VDD/VSS:核心和IO電源,2; VREFDQ/VREFCA:輸入輸出參考,2;
TEST、NC:保留,未接,3;
3、內存顆粒分類
內存顆粒可以簡單分為78-ball FBGA封裝的 和 96-ball FBGA封裝的兩類,差異主要是數據位寬不同,前者x8,后者x16。
4、SPD數據定義
內存條上存在一個EEPROM存儲芯片(The Serial Presence Detect ,SPD),容量通常為128B或256B,用于存儲改內存條的一些基礎信息。主板需要這些信息進行正確的配置,以便正常使用內存條。存儲芯片中各字節存儲的信息如下表所示。
5、內存條標簽
例:ggggg eRxff PC3-wwwwwm-aa-bb-ccdggggg = Module total capacity, in bytes256MB, 512MB, 1GB, 2GB, 4GB, etc.eR = Number of ranks of memory installed : 1R = 1 rank of DDR3 SDRAM installed2R = 2 ranks4R = 4 ranksxff = Device organization (bit width) of DDR3 SDRAMs used on this assemblyx4 = x4 organization (4 DQ lines per SDRAM)x8 = x8 organizationx16 = x16 organizationwwwww = Module bandwidth in MB/s : 6400 = 6.40 GB/s (PC3-800 SDRAMs, 8 byte primary data bus)8500 = 8.53 GB/s (PC3-1066 SDRAMs, 8 byte primary data bus)10600 = 10.66 GB/s (PC3-1333 SDRAMs, 8 byte primary data bus)12800 = 12.80 GB/s (PC3-1600 SDRAMs, 8 byte primary data bus)m = Module Type :E = Unbuffered DIMM ("UDIMM"), with ECC (x72 bit module data bus)F = Fully Buffered DIMM ("FB-DIMM")M = Micro-DIMMR = Registered DIMM ("RDIMM")S = Small Outline DIMM ("SO-DIMM")U = Unbuffered DIMM ("UDIMM"), no ECC (x64 bit module data bus)aa = DDR3 SDRAM CAS Latency in clocks at maximum operating frequencybb = JEDEC SPD Revision Encoding and Additions level used on this DIMMcc = Reference design file used for this design (if applicable)d = Revision number of the reference design used
6.DDR3芯片的容量計算方法,我們找個鎂光的芯片看看
我們就用256M16來看。行地址【14:0】共有15位,2的15次方=32k,再看列地址【9:0】共有10位,2的10次方=1024,所以每bank有32k1k=32M, 共有8個bank,所以328=256M.看看手冊總容量為4Gb,這里意思是4Gbit,我們計算的256M,是按組織形式16位的,如果換算為bit則,25616=4Gb.這里就說清楚了存儲容量的計算。
7.DDR3芯片的使用,一般情況下我們并不會單獨的使用一顆ddr芯片,而是會把他級聯起來如何連起來我們看圖:
可以看出我們使用了4顆ddr3芯片,他們是怎么相連的呢?簡單的說就是把地址相同的位連在一起,數據線依次排列,單片位16位,4片的話就擴位展為64位。相當于一顆位寬為64位的DDR3芯片,其余的信號怎么連我們后面再繼續分析。
8.DDR3 SO-DIMM內存條的接口定義如下圖:
9.后續需要補充的我們隨后繼續添加