《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 業(yè)界動(dòng)態(tài) > 基于DDR SDRAM的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

基于DDR SDRAM的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)

2009-06-23
作者:方慶山1,林春方2

??? 摘 要:采用DDR SDRAM作為被采集數(shù)據(jù)的存儲(chǔ)體,,研究了DDR SDRAM在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用,,分析了DDR SDRAM的工作模式,給出了一種基于DDR SDRAM的高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)框圖,,研究了高速,、大容量存儲(chǔ)體的設(shè)計(jì)方案。結(jié)合高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)要求,,重點(diǎn)研究了一種DDR SDRAM控制器的FPGA實(shí)現(xiàn)方法,,簡(jiǎn)要介紹了控制器設(shè)計(jì)中各個(gè)模塊的功能,最后給出了讀/寫控制模塊對(duì)DDR SDRAM的讀操作仿真時(shí)序圖,。
??? 關(guān)鍵詞:數(shù)據(jù)采集; DDR SDRAM; 工作模式; 控制器

?

??? 實(shí)現(xiàn)數(shù)據(jù)的高速大容量存儲(chǔ)是數(shù)據(jù)采集系統(tǒng)中的一項(xiàng)關(guān)鍵技術(shù),。很多數(shù)據(jù)采集系統(tǒng),特別是應(yīng)用于圖像采集處理等領(lǐng)域的高速數(shù)據(jù)采集系統(tǒng),,都需要高速緩存大量的數(shù)據(jù),。DDR SDRAM由于速度快、容量大,、價(jià)格便宜,,能夠很好地滿足上述場(chǎng)合對(duì)大量數(shù)據(jù)緩存的需求。雙倍速率同步動(dòng)態(tài)隨機(jī)存儲(chǔ)器DDR SDRAM(Double Data Rate SDRAM),,是在SDRAM的基礎(chǔ)上發(fā)展而來(lái)的,,能夠在時(shí)鐘上升沿和下降沿各傳輸一次數(shù)據(jù),可以在與SDRAM相同的總線時(shí)鐘頻率下達(dá)到更高的數(shù)據(jù)傳輸率,。
1 DDR SDRAM在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
??? 目前,,數(shù)據(jù)采集與處理的重點(diǎn)在于高速、高精度,、高存儲(chǔ)深度的數(shù)據(jù)采集系統(tǒng)的研究,。由于A/D轉(zhuǎn)換芯片及高性能FPGA芯片的出現(xiàn),使得高速,、高精度的數(shù)據(jù)處理得以實(shí)現(xiàn),,因而大批量、高存儲(chǔ)深度的數(shù)據(jù)處理成為當(dāng)前要解決的主要問題,。圖1所示為一種基于CPCI總線的高速數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框圖[1],。

?


??? 外部信號(hào)首先經(jīng)過模擬信號(hào)調(diào)理通道達(dá)到A/D芯片的輸入要求,再通過A/D芯片將模擬信號(hào)轉(zhuǎn)換成數(shù)字信號(hào)送入FPGA進(jìn)行處理,。當(dāng)處理器發(fā)出“寫命令”時(shí),,將數(shù)字信號(hào)在FIFO內(nèi)部進(jìn)行緩存再送入DDR SDRAM進(jìn)行存儲(chǔ)??紤]到寫入FIFO的時(shí)鐘速率大于讀取FIFO的時(shí)鐘速率會(huì)導(dǎo)致從A/D采樣過來(lái)的信號(hào)不能完整地存儲(chǔ),,可采用數(shù)據(jù)分流的方式予以解決。即把采入FPGA的數(shù)據(jù)流分成2路數(shù)據(jù)流,分別存入相應(yīng)的FIFO內(nèi),,再分別讀出送到DDR SDRAM存儲(chǔ),,在存儲(chǔ)過程中通過DDR SDRAM的控制模塊和FPGA內(nèi)部自帶的IP核的配合完成。當(dāng)處理器發(fā)出“讀命令”時(shí),,在控制模塊的控制下將DDR SDRAM內(nèi)部數(shù)據(jù)讀回FPGA內(nèi)部,,再次通過FIFO進(jìn)行緩存,然后送回處理器處理,。在整個(gè)數(shù)據(jù)處理過程中,,關(guān)鍵是對(duì)DDR SDRAM的存儲(chǔ)進(jìn)行有效的控制,以保證有足夠的數(shù)據(jù)可進(jìn)行分析處理,,從而重現(xiàn)信號(hào)特征,。
2 DDR SDRAM的工作模式
??? DDR SDRAM 支持的常用命令有7 種:空操作(NOP)、激活操作(Active),、突發(fā)讀(BurstRead),、突發(fā)寫(BurstWrite)、自動(dòng)刷新(Autorefresh),、預(yù)充電(Precharge)以及模式寄存器配置(Mode Register Set),。所有的操作命令都是通過信號(hào)線RAS_N、CAS_N,、WE_N 共同控制來(lái)實(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è)置[2],。
??? 初始化完成之后,DDR SDRAM 便進(jìn)入正常的工作狀態(tài),,此時(shí)可對(duì)存儲(chǔ)器進(jìn)行讀寫和刷新,。所謂DDR的雙倍速率結(jié)構(gòu),即在數(shù)據(jù)隨路時(shí)鐘的上升沿和下升沿各發(fā)送一次數(shù)據(jù),,這樣在一個(gè)時(shí)鐘周期內(nèi)可完成雙倍速率的數(shù)據(jù)傳輸,。圖2是“寫模式”下的工作時(shí)序圖。對(duì)DDR SDRAM進(jìn)行寫操作時(shí),,首先通過外部控制模塊(FPGA)對(duì)DDR送寫命令和操作地址,,然后第1個(gè)正確的數(shù)據(jù)將在數(shù)據(jù)選取脈沖DQS的上升沿進(jìn)行存儲(chǔ),接下來(lái)的數(shù)據(jù)將在DQS的連續(xù)時(shí)鐘沿上進(jìn)行存儲(chǔ),根據(jù)DDR SDRAM的時(shí)序要求在“寫模式”下,,寫命令和隨路時(shí)鐘的第1個(gè)上升沿要有一個(gè)固定的時(shí)間間隔tDQSS,。

?


??? 對(duì)DDR SDRAM 的讀操作和寫操作是基于突發(fā)的,DDR SDRAM 提供的可編程讀/寫的突發(fā)長(zhǎng)度為2,、4 或8,。數(shù)據(jù)的存取以一個(gè)激活命令(Active)開始,接著便是讀(BurstRead)或?qū)?Burst Write)命令,。與激活命令一起被觸發(fā)的地址位用來(lái)選擇將要存取的區(qū)和頁(yè)(或行),,與讀/寫命令一起被觸發(fā)的地址位用來(lái)選擇突發(fā)存取的起始列單元。讀命令被觸發(fā)后,,數(shù)據(jù)將在1.5~3 個(gè)時(shí)鐘周期之后出現(xiàn)在數(shù)據(jù)總線上,,這個(gè)延遲就是所謂的CAS 潛伏期。CAS 潛伏期的大小與SDRAM 的速度和存儲(chǔ)器的時(shí)鐘頻率有關(guān),。當(dāng)要存取一個(gè)不同行的地址單元時(shí),,需要通過一個(gè)預(yù)充電(Precharge)操作關(guān)閉當(dāng)前行。自動(dòng)刷新(Autorefresh)命令用來(lái)周期性地刷新DDR SDRAM,,以保持其內(nèi)部的數(shù)據(jù)不丟失[3],。
3 DDR SDRAM 控制器的設(shè)計(jì)
??? DDR SDRAM控制器的功能是初始化DDR SDRAM;簡(jiǎn)化DDR SDRAM復(fù)雜的讀/寫時(shí)序,;將DDR SDRAM接口的雙時(shí)鐘沿?cái)?shù)據(jù)轉(zhuǎn)換為單時(shí)鐘沿?cái)?shù)據(jù),;產(chǎn)生周期性的刷新命令來(lái)維持DDR SDRAM內(nèi)的數(shù)據(jù)不丟失。DDR SDRAM提供了多種命令,,整個(gè)控制狀態(tài)機(jī)非常復(fù)雜,。但很多應(yīng)用場(chǎng)合中,并不需要用到所有的命令,,為了簡(jiǎn)化設(shè)計(jì),,同時(shí)兼顧盡可能多的應(yīng)用場(chǎng)合,在控制器的設(shè)計(jì)中實(shí)現(xiàn)了如下幾種功能:DDR SDRAM初始化,、可變長(zhǎng)度突發(fā)讀/寫,、自動(dòng)刷新功能、預(yù)充電以及模式寄存器的重置,。圖3為控制器整個(gè)狀態(tài)轉(zhuǎn)換圖[4],。

?


??? 根據(jù)圖3的狀態(tài)轉(zhuǎn)換關(guān)系,DDR SDRAM控制器包含以下幾個(gè)模塊:時(shí)鐘生成模塊,、初始化模塊,、刷新模塊、讀/寫控制模塊以及地址生成模塊,。圖4給出了控制器的結(jié)構(gòu)框圖,。

?


??? 時(shí)鐘模塊用來(lái)產(chǎn)生工作時(shí)鐘提供給整個(gè)DDR SDRAM控制器以及外部的存儲(chǔ)芯片,;初始化模塊完成DDR SDRAM初始化過程所需的各項(xiàng)操作,配置相應(yīng)的寄存器,,使得在初始化完成后,,DDR SDRAM能工作在所期望的模式;刷新模塊用來(lái)計(jì)數(shù),,定時(shí)向讀/寫控制模塊發(fā)送自動(dòng)刷新請(qǐng)求,;讀/寫控制模塊用來(lái)控制數(shù)據(jù)在FIFO之內(nèi)讀/寫,并完成激活,、刷新,、預(yù)充電等命令;地址生成模塊用來(lái)提供各種操作所需的地址信息[5],。
??? 該控制器針對(duì)16?bit寬512 Mb的DDR SDRAM設(shè)計(jì),,在Altera公司的Quartus II4.2環(huán)境中采用CycloneII系列的EP2C35來(lái)實(shí)現(xiàn),總共使用了729個(gè)邏輯單元,,占FPGA可編程邏輯資源的12%,,此外還使用了1個(gè)鎖相環(huán)(PLL)。設(shè)計(jì)中,,在Quartus II4.2環(huán)境中分別對(duì)以上各個(gè)組成模塊設(shè)計(jì),,并進(jìn)行了最后的時(shí)序仿真驗(yàn)證,使其滿足設(shè)計(jì)的要求,。圖5給出了讀/寫控制模塊設(shè)計(jì)時(shí)的讀操作仿真時(shí)序圖,。

?


??? 其中clk是時(shí)鐘信號(hào),reset_all是復(fù)位信號(hào),,init_end是初始化完成標(biāo)志,,ext_ref_cnte是輸出,表示使能外部的刷新模塊,,ref_req是外部刷新請(qǐng)求,rd_req是外部讀請(qǐng)求,,cmd是響應(yīng)操作的命令代碼,,rd_wr表示當(dāng)前的狀態(tài)為讀還是寫,fifo_wr_en是FIFO的寫使能,,表明讀操作的數(shù)據(jù)可以寫入到FIFO中,。
??? 基于DDR SDRAM的高速數(shù)據(jù)采集系統(tǒng)在應(yīng)用中有很大的實(shí)際意義,它提高了系統(tǒng)的可靠性和數(shù)據(jù)的存儲(chǔ)深度,,在一定程度上有效地減小了電路的尺寸,。DDR SDRAM已經(jīng)被應(yīng)用于視頻采集、內(nèi)存設(shè)計(jì)等多個(gè)領(lǐng)域,,其關(guān)鍵技術(shù)是時(shí)序控制模塊的設(shè)計(jì),。
??? 本文給出了一種通過FPGA實(shí)現(xiàn)對(duì)DDR SDRAM控制的方法,。設(shè)計(jì)中采用Altera公司的Cyclone系列FPGA,并充分利用片內(nèi)提供的鎖相環(huán),、DDR觸發(fā)器以及DQS延遲鏈等硬件資源,,占用的邏輯資源少。該設(shè)計(jì)可以很容易地移植到Altera公司的其他系列FPGA上,,經(jīng)過適當(dāng)?shù)男薷倪€可以用來(lái)控制64位寬的DIMM型的DDR SDRAM,,因此可以更好地應(yīng)用在需求高速度、大容量存儲(chǔ)器的場(chǎng)合中,。

參考文獻(xiàn)
[1] 吳健軍,,初建朋,賴宗聲. 基于FPGA的DDR SDRAM控制器的實(shí)現(xiàn)[J]. 微計(jì)算機(jī)信息,,2006,,22(1-2):164-165.
[2]?李鶯. DDR SDRAM控制器的設(shè)計(jì)及FPGA實(shí)現(xiàn)[J]. 攀枝花學(xué)院學(xué)報(bào),2007,24(6):33-37.
[3]?鄭佳,,李永亮,,李娜. 基于FPGA的DDR控制器的實(shí)現(xiàn)[J]. 無(wú)線電工程,2007,37(10):27-29.
[4]?劉瑰,,朱鴻宇. 通用DDR SDRAM控制器的設(shè)計(jì)?[J]. 微型機(jī)與應(yīng)用,2004(8):23-24.
[5]?薛林.高速PCI數(shù)據(jù)采集卡的設(shè)計(jì)與實(shí)現(xiàn)[D] . 南京:南京理工大學(xué),2006.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn),。轉(zhuǎn)載的所有的文章,、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者,。如涉及作品內(nèi)容、版權(quán)和其它問題,,請(qǐng)及時(shí)通過電子郵件或電話通知我們,,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]