新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA 的DDR SDRAM控制器在高速數(shù)據(jù)采集系統(tǒng)中

基于FPGA 的DDR SDRAM控制器在高速數(shù)據(jù)采集系統(tǒng)中

作者: 時(shí)間:2012-11-05 來源:網(wǎng)絡(luò) 收藏

實(shí)現(xiàn)數(shù)據(jù)的高速大容量存儲(chǔ)是數(shù)據(jù)采集系統(tǒng)中的一項(xiàng)關(guān)鍵技術(shù)。本設(shè)計(jì)采用Altera 公司Cyclone系列的 完成了對(duì) 的控制,以狀態(tài)機(jī)來描述對(duì) 的各種時(shí)序操作,設(shè)計(jì)了 的數(shù)據(jù)與命令接口。用控制核來簡(jiǎn)化對(duì)DDR SDRAM 的操作,并采用自頂至下模塊化的設(shè)計(jì)方法,將控制核嵌入到整個(gè)數(shù)據(jù)采集系統(tǒng)的控制模塊中,完成了數(shù)據(jù)的高速采集、存儲(chǔ)及上傳。使用開發(fā)軟件Quartus II 中內(nèi)嵌的邏輯分析儀SignalTap II 對(duì)的工作流程進(jìn)行了驗(yàn)證和調(diào)試。最終采集到的數(shù)據(jù)波形表明,完成了對(duì)DDR SDRAM 的突發(fā)讀寫操作,達(dá)到了預(yù)期設(shè)計(jì)的目標(biāo)。

本文引用地址:http://butianyuan.cn/article/189786.htm

DDR SDRAM 是Double Data Rate SDRAM 的縮寫,即雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器。

DDR 內(nèi)存是在SDRAM 內(nèi)存基礎(chǔ)上發(fā)展而來的,能夠在時(shí)鐘的上升沿和下降沿各傳輸一次數(shù)據(jù),可以在與SDRAM 相同的總線時(shí)鐘頻率下達(dá)到更高的數(shù)據(jù)傳輸率。本設(shè)計(jì)中采用Altera 公司Cyclone 系列型號(hào)為EP1C6Q240C8 的 實(shí)現(xiàn),以Hynix 公司生產(chǎn)的型號(hào)為HY5DU121622B(L)TP 的DDR SDRAM 為存儲(chǔ)器,完成了對(duì)數(shù)據(jù)的高速大容量存儲(chǔ)。

1 DDR SDRAM 的控制原理及存儲(chǔ)功能的實(shí)現(xiàn)

DDR SDRAM 支持的常用命令有7 種:空操作(NOP)、激活操作(Active)、突發(fā)讀(BurstRead)、突發(fā)寫(Burst Write)、自動(dòng)刷新(Autorefresh)、預(yù)充電(Precharge)、模式寄存器配置(Mode Register Set)。所有的操作命令都是通過信號(hào)線RAS_N、CAS_N、WE_N 共同控制來實(shí)現(xiàn)的。在對(duì)DDR SDRAM 進(jìn)行存取數(shù)據(jù)操作之前,首先要對(duì)其初始化,即設(shè)置DDR SDRAM的普通模式寄存器和擴(kuò)展模式寄存器,確定DDR SDRAM 的工作方式,這些設(shè)置包括突發(fā)長(zhǎng)度、突發(fā)類型、CAS 潛伏期和工作模式以及擴(kuò)展模式寄存器中的對(duì)DDR SDRAM 內(nèi)部延遲鎖定回路(DLL)的使能與輸出驅(qū)動(dòng)能力的設(shè)置。

初始化完成之后,DDR SDRAM 便進(jìn)入正常的工作狀態(tài),此時(shí)便可對(duì)存儲(chǔ)器進(jìn)行讀寫和刷新。DDR SDRAM 在一對(duì)差分時(shí)鐘的控制下工作。命令(地址和控制信號(hào))在每個(gè)時(shí)鐘的上升沿被觸發(fā)。隨著數(shù)據(jù)DQ 一起傳送的還包括一個(gè)雙向的數(shù)據(jù)選通信號(hào)DQS,接收方通過該信號(hào)來接收數(shù)據(jù)。DQS 作為選通信號(hào)在讀周期中由DDR SDRAM 產(chǎn)生,在寫周期中由存儲(chǔ)器的產(chǎn)生。該選通信號(hào)與數(shù)據(jù)相關(guān),其作用類似于一個(gè)獨(dú)立的時(shí)鐘,并滿足相應(yīng)的時(shí)序要求。由于DDR SDRAM 的數(shù)據(jù)接口在時(shí)鐘的兩個(gè)沿的觸發(fā)下工作,其數(shù)據(jù)寬度是存儲(chǔ)器數(shù)據(jù)寬度的一半。為實(shí)現(xiàn)數(shù)據(jù)的大容量存儲(chǔ),設(shè)計(jì)時(shí)采用的是一個(gè)控制核同時(shí)對(duì)兩片DDR SDRAM 進(jìn)行操作,外接數(shù)據(jù)線的寬度由單片DDR SDRAM 的16 位擴(kuò)展到32位。

對(duì)DDR SDRAM 的讀和寫操作是基于突發(fā)的,即從一個(gè)選定的地址單元開始,連續(xù)存取已設(shè)置長(zhǎng)度的地址單元,該長(zhǎng)度就是所謂的突發(fā)長(zhǎng)度。DDR SDRAM 提供的可編程的讀或?qū)懙耐话l(fā)長(zhǎng)度為2,4 或8。數(shù)據(jù)的存取以一個(gè)激活命令(Active)開始,接著便是讀(BurstRead)或?qū)?Burst Write)命令。與激活命令一起被觸發(fā)的地址位用來選擇將要存取的區(qū)和頁(或行),與讀或?qū)懨钜黄鸨挥|發(fā)的地址位用來選擇突發(fā)存取的起始列單元。讀命令被觸發(fā)后,數(shù)據(jù)將在1.5~3 個(gè)時(shí)鐘周期之后出現(xiàn)在數(shù)據(jù)總線上。這個(gè)延遲就是所謂的CAS 潛伏期(CAS latency),即從DDR SDRAM 內(nèi)核讀出數(shù)據(jù)到數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上所需要的時(shí)間。CAS 潛伏期的大小與SDRAM 的速度和存儲(chǔ)器的時(shí)鐘頻率有關(guān)。當(dāng)要存取一個(gè)不同行的地址單元時(shí),需要通過一個(gè)預(yù)充電(Precharge)操作關(guān)閉當(dāng)前行。

自動(dòng)刷新(Autorefresh)命令用來周期性地刷新DDR SDRAM,以保持其內(nèi)部的數(shù)據(jù)不丟失。2 DDR SDRAM 控制器的設(shè)計(jì)DDR SDRAM 控制器的功能包括:

(1)初始化DDR SDRAM;

(2)簡(jiǎn)化DDR SDRAM的讀寫時(shí)序;

(3)將DDR SDRAM 接口的雙時(shí)鐘沿?cái)?shù)據(jù)轉(zhuǎn)換為單時(shí)鐘沿?cái)?shù)據(jù),使得對(duì)DDR SDRAM 的操作類似于普通RAM;

(4)控制器還要產(chǎn)生周期性的刷新命令來維持DDR SDRAM 內(nèi)的數(shù)據(jù)而不丟失。其控制轉(zhuǎn)換圖如圖1 所示。

在對(duì)DDR SDRAM 初始化完成之后,就可進(jìn)行讀、寫或其他操作。在執(zhí)行讀(寫)命令之前,先要激活將要讀(寫)的行,之后便可對(duì)該行進(jìn)行突發(fā)讀(寫)。在控制器的設(shè)計(jì)中,所有的讀寫命令都是不帶預(yù)充電的,因此,某一行被激活之后將一直處于激活狀態(tài),直到用戶發(fā)送突發(fā)終止命令,此時(shí)控制器將自動(dòng)產(chǎn)生一個(gè)預(yù)充電命令來關(guān)閉當(dāng)前行。這樣,某一行被激活之后用戶便可進(jìn)行連續(xù)的突發(fā)讀(寫)操作,從而節(jié)省了每次突發(fā)讀寫所需要的激活時(shí)間,提高了系統(tǒng)的數(shù)據(jù)吞吐率。


上一頁 1 2 3 4 下一頁

關(guān)鍵詞: SDRAM FPGA DDR 控制器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉