天天看點

DDR4硬體原理圖設計詳解

DDR4硬體原理圖設計詳解
DDR4硬體原理圖設計詳解
DDR4硬體原理圖設計詳解

作為硬體工程師,我們通常收到需求是:該産品記憶體配置為DDR4,容量16Gb(2GB=16Gb)。

而我們通常需要把這個“簡陋”的需求,轉化為具體的電路,該如何去實作呢?

其實,很簡單。DDR4的硬體設計過程可以總結為:為某個平台搭配一顆DDR記憶體顆粒,并保證平台與DDR記憶體顆粒均能正常工作。

是以可以分為2部分,如何為平台選型1顆DDR記憶體顆粒?如何保證DDR相關電路能正常工作?

DDR記憶體顆粒選型

目前很多晶片都會把CPU與外圍控制電路(例如:FLASH控制電路,DDR控制電路,USB控制電路)內建到1顆晶片中,像高通MDM8909,類似這樣的晶片,我們稱為“平台晶片”。平台晶片中DDR控制電路,我們稱為“DDR Controller”,翻譯過來為:DDR控制器。

為DDR控制器搭配它能控制的DDR記憶體顆粒,你就必須先了解下:DDR控制器需要什麼樣的記憶體顆粒?

硬體設計第一步:查閱平台晶片規格書中,關于DDR控制器部分的描述。

It has d one PCIe gen3, dual USB3.0, multiple serial IOs selectable between

SPI/I2C/UART, Dual SDIO for eMMC and SD card, I2S/PCM/Display Interfaces,16/32 bits DDR3L/4 up to 2400 MT/s, parallel NAND, serial NOR, and Wi-Fi/IOT coexistence interfaces for up to two radios.

DDR4硬體原理圖設計詳解

是以我們了解到了:

該平台晶片,支援DDR3L或者DDR4記憶體顆粒,資料位寬為16位或者32位,最高資料傳輸速度為2400MT/s,即頻率為1200MHz(DDR是雙邊沿資料傳輸,1個時鐘周期傳輸2次資料,1s傳輸了2400M次,即意味着1s時鐘變化了1200次,即頻率為1200MHz)。

結合産品需求:容量16Gb,那我們基本可以鎖定DDR的詳細規格了。

在正式選型之前,還要引入1個概念“RANK”。我們知道,DDR即支援多個記憶體顆粒擴充容量,又支援多個記憶體顆粒擴充資料位寬。

例如,我們的DDR控制器支援32位資料位寬,那我們可以用8個4位DDR,或者4個8位DDR,或者2個16位DDR,或者1個32位DDR進行資料位擴充。假如我們用8個4位DDR顆粒進行設計,我們的RANK數量就是8,我們戲稱為“8-RANK設計”,當然實際應用中,我們肯定不會這麼蠢,拿8個4位DDR去擴充32位。

是以,再确定我們的RANK數量後,需求被鎖定了。容量設定為16Gb,類型為DDR4,資料寬度為32位,最高頻率為1200MHz。由于目前大部分DDR記憶體顆粒最高支援16位資料寬度,是以RANK數量為2,即我們說的Dual-RANK設計。

根據這個需求,可以在DDR官網上去尋找合适的“DDR晶片”了。例如在鎂光官網産品頁,標明DRR4-SDRAM,標明8Gb,DDR4。

DDR4硬體原理圖設計詳解

網頁會為你推薦很多型号。像資料位寬是8位的,可以直接跳過。

DDR4硬體原理圖設計詳解

資料位寬為16位,頻率為1200Mhz(2400MT/s)的,仍然有很多。這時候就是考驗硬體工程師職業素養的時候了,我們不僅要考慮硬體性能,還要考慮下物料成本,物料采購周期。考慮成本,就盡量不要有“過設計”的地方,是以速率為3200MT/s的器件排除掉。如果我們是消費類商規産品,是以溫度範圍選擇較窄的商業級器件,其次,為了增進你和采購的感情,

DDR4硬體原理圖設計詳解

這樣下來,我們選型基本就鎖定到MT40A512M16JY-083E了,用量為2片。

此時,開始閱覽器件規格書,了解電氣性能,設計外圍電路,讓DDR控制器和DDR記憶體顆粒都歡快的運作起來。

DDR的硬體電路搭建

設計邏輯器件電路,就要有邏輯思維,最簡單的邏輯思維,就是分組。是以,先了解DDR控制器的硬體接口。控制器硬體PIN腳可以分為電源組,配置組,控制組,時鐘組,位址組,資料組。

電源組和配置組接口如下,供電,接電阻就可以完成,1.2V的供電,盡可能要平穩,此處忽略。ZQ電阻是用來校準ODT阻抗的,我們後面會講到。

DDR4硬體原理圖設計詳解

控制組接口如下。

DDR4硬體原理圖設計詳解

分好組後,就要根據DDR的工作原理來進行外圍硬體設計了。

控制信号中,需要注意CS0和CS1,2個片選信号的可以用來進行,多RANK記憶體容量擴充的,說明DDR控制器,最多支援2組RANK。每組RANK配置設定單獨的片選信号。我們此處設計2個16位晶片組成1個RANK,即CS0要同時接在目前選的2個DDR顆粒的CS上,組成菊花鍊。其餘控制信号一般無時序要求,能傳遞邏輯即可。

位址信号通常要參考時鐘信号,來進行尋址,是以位址信号要嚴格與時鐘信号保持長度一緻,來保證所有位址位在采樣的時候同時到達。因為同一塊單闆上,每根線上電子的傳遞速度是一樣的,是以信号線長度約長,信号越晚到達,信号線長度越短,信号越早到達,位址采樣的時候,是有時間期限的,是以,所有的位址信号必須保證在采樣時間範圍内,全部到達,是以要求位址線相對時鐘線進行長度控制。前面一節我們講了記憶體尋址原理,先用BG信号選擇BANK GROUP,再用BA信号進行BANK選擇,再用A[0:16]進行行列選擇,再用A[0:16]進行列選擇,完成尋址。可以看到,Address信号在進行行選擇和列選擇時,BG和BA信号都是保持的,是以BG信号和BA信号的等長要求會相對略寬。

DDR控制器有2根BG信号,2根BA信号,17根Address信号,同一個RANK有2個DDR顆粒,每個DDR顆粒有1根BG信号,2根BA信号,17根Address信号,前面CS0同時連接配接了2個DDR顆粒的片選,是以尋址時兩顆DDR會被同時片選,那麼DDR控制器如何區分開尋址其中1顆DDR顆粒呢?硬體又該怎麼連接配接?其實很簡單,根據上節講的記憶體尋址原理,我們知道每個DDR顆粒有2個BANK GROUP(1根BG信号),4個BANK(2根BA信号),與CS擴充容量的原理一緻,我們把BG0接在DDR顆粒1上,BG0拉高拉低,我們可以尋址CHIP1的8個BANK。BG1接在DDR顆粒2上,BG1拉高拉低,我們可以尋址CHIP1的8個BANK。BA、ADDR進行菊花鍊連接配接,同時接在2顆DDR晶片上。

接下來,我們看看資料信号的連結,資料信号是内部分組的,由于DDR資料信号傳輸的時候雙邊沿資料傳輸,而且如果所有信号都參考時鐘去做等長,會導緻等長控制非常困難,增加DDR的設計難度,是以聰明的人類想出了另外一招,額外增加資料選通信号來作為資料信号的采樣時鐘,每8位信号,參考一組差分。是以我們很輕易可以看出DDR控制器有4組DQS差分信号,32根資料信号。我們的RANK中有2個DDR顆粒,每個顆粒有2組DQS差分信号,16根資料信号。是以

控制器的DQS[0:1]連接配接DDR CHIP0的DQS[0:1],

控制器的DQ[0:15]連接配接DDR CHIP0的DQ[0:15]。

控制器的DQS[2:3]連接配接DDR CHIP1的DQS[0:1],

控制器的DQ[16:31]連接配接DDR CHIP1的DQ[0:15]。

參考文章:《DDR4硬體詳細設計》

繼續閱讀