DDR SDRAM在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
在數(shù)據(jù)處理中為了更好地對被測對象進(jìn)行處理和分析,研究人員們把重點更多的放在高速、高精度、高存儲深度的數(shù)據(jù)采集系統(tǒng)的研究上
由于A/D芯片及高性能的FPGA的出現(xiàn),已經(jīng)可以實現(xiàn)高速高精度的數(shù)據(jù)處理,則進(jìn)行大批量高存儲深度的數(shù)據(jù)處理成為當(dāng)前要解決的主要問題
l 常用存儲器的比較
現(xiàn)在用于數(shù)據(jù)采集系統(tǒng)的存儲器常見的有先進(jìn)先出存儲器(FIFO)、靜態(tài)RAM和SDRAM等FIFO由于容量和速度的限制,不是實現(xiàn)大容量存儲的首選目前,最為常見的存儲器就是靜態(tài)存儲器(SRAM),靜態(tài)存儲器有控制簡單、功耗低的優(yōu)點當(dāng)前大容量的SRAM可以達(dá)4 MB,存儲時鐘速率250 MHz
如果要實現(xiàn)單通道32 M的存儲深度和200 M的數(shù)據(jù)傳輸速度,就要由8×1片SRAM拼合起來才能實現(xiàn)但由于每片SRAM都要有獨立的地址對應(yīng)存儲的數(shù)據(jù),這對設(shè)計者進(jìn)行制版和布線都是一個極大的挑戰(zhàn)與靜態(tài)存儲器相比,單數(shù)據(jù)率動態(tài)存儲器(SDR SDRAM)具有存儲密度高、速度快等特點,數(shù)據(jù)線位寬可最大可以達(dá)到64 b,很適合于高速采樣系統(tǒng)標(biāo)準(zhǔn)的SDR SDRAM可以達(dá)到的時鐘頻率達(dá)100 MHz以上,如果要滿足系統(tǒng)存儲速率的要求則至少需要有2×12 b的數(shù)據(jù)位寬,而目前并沒有64 b或32 b的SDRSDRAM,則需要使用多片拼合這樣,對應(yīng)于一個通道的存儲就至少需要有2片12 b的動態(tài)存儲器才能滿足存儲的需要,顯然成本比較高
雙速率同步動態(tài)隨機(jī)訪問存儲器(DDR),是在SDRAM存儲技術(shù)上發(fā)展而來的一種新型存儲器件,在計算機(jī)行業(yè)得到了廣泛的應(yīng)用其特點是采用了雙倍速率結(jié)構(gòu)實現(xiàn)高速操作,其在同一時間內(nèi)傳輸?shù)臄?shù)據(jù)量是SDRSDRAM的2倍,最大傳送數(shù)據(jù)的時鐘速率可達(dá)400 MHz,而存儲一個通道的數(shù)據(jù)只需要1片16 b的DDR,并且單位存儲成本和SDR SDRAM相比并沒有提高因而,對于高速數(shù)據(jù)采集系統(tǒng),無論從成本還是性能方面考慮,采用DDR作為系統(tǒng)的存儲器件是合適的但DDR卻帶來了相對復(fù)雜的控制工作,不僅需要與SDRSDRAM一樣進(jìn)行定時刷新,而且較SDRAM增加了新的控制信號和使用了新的電平標(biāo)準(zhǔn)
2 DDR的基本工作原理
所謂DDR的雙倍速率結(jié)構(gòu),即在數(shù)據(jù)隨路時鐘的上升沿和下升沿各發(fā)送一次數(shù)據(jù),這樣在一個時鐘周期內(nèi)可完成雙倍速率的數(shù)據(jù)傳輸由于DDR的控制邏輯比較復(fù)雜,這里只對其"寫模式"下的工作原理進(jìn)行介紹,如圖1所示
3 DDR控制模塊的設(shè)計
根據(jù)DDR芯片控制要求,在設(shè)計中將DDR主控制模塊分為5個子模塊,分別是初始化模塊、外部刷新模塊、主狀態(tài)機(jī)模塊、地址模塊和命令輸出模塊其具體組成如圖2所示
機(jī)的動作,通過翻譯控制信號控制內(nèi)部狀態(tài)機(jī)產(chǎn)生控制DDR的正確時序信號,這一部分是主控制模塊的關(guān)鍵和難點,能否正確控制DDR的操作完全集中在此模塊
(2)外部刷新模塊是輔助主狀態(tài)機(jī)模塊控制DDR處于空閑狀態(tài)時的定時刷新
(3)地址發(fā)生模塊的作用是根據(jù)所接收由主控狀態(tài)機(jī)發(fā)送來的內(nèi)部命令產(chǎn)生所對應(yīng)的地址,然后將命令和對應(yīng)的地址同步發(fā)送給命令發(fā)送模塊
(4)命令發(fā)生模塊是與DDR芯片的接口部分,其將從地址模塊發(fā)送來的具體命令解釋成DDR所需的命令信號和控制信號以及所需的地址信號(AO~A12,BA0,BAl)
4 高速數(shù)據(jù)采集系統(tǒng)的結(jié)構(gòu)設(shè)計
為了能更清楚地了解DDR在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用,這里將對基于CPCI總線的高速數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)進(jìn)行描述高速數(shù)據(jù)采集系統(tǒng)的設(shè)計框圖如圖3所示
外部信號首先經(jīng)過模擬通道的調(diào)理達(dá)到A/D芯片的輸入要求,再通過A/D芯片將模擬信號轉(zhuǎn)換成數(shù)字信號送人FPGA處理當(dāng)處理器發(fā)出"寫命令"時,把數(shù)字信號在FIFO內(nèi)部進(jìn)行緩存再送入DDR進(jìn)行存儲.如果A/D的采樣速率為200 MSa/s,則可以使用133 MHz時鐘速率的DDR芯片即可達(dá)到要求但是在內(nèi)部進(jìn)行緩存時存在一個問題,就是寫入F1F()的時鐘速率大于讀取FIFO的時鐘速率,這樣就會導(dǎo)致從A/D采樣過來的信號不能完整地存儲
在這種情況下通常采用數(shù)據(jù)分流的方式進(jìn)行解決,即把采人FPGA的200 MHz的數(shù)據(jù)流分成2路100 M的數(shù)據(jù)流,分別存入相應(yīng)的FIFO內(nèi)再以133 MHz的時鐘速率讀出送DDR進(jìn)行存儲,這樣就可以對信號進(jìn)行完整的存儲當(dāng)然存儲過程還要通過DDR的控制模塊和FPGA內(nèi)部自帶的1P核的配合才能夠完成同理,當(dāng)處理器發(fā)出"瀆命令"時,在DDR控制模塊的控制下將DDR內(nèi)部數(shù)據(jù)讀回FPGA內(nèi)部,再次通過FIFO進(jìn)行緩存通常采用40 M的時鐘速率將數(shù)據(jù)送回處理器處理,從DDR寫回FPGA的數(shù)據(jù)流時鐘速率為133 M,而從FIFO讀}IJ數(shù)據(jù)的時鐘速率為40 M;同樣存在著寫入FIFO的時鐘速率大于讀取的時鐘速率的現(xiàn)象,但足這里不仔在數(shù)據(jù)丟火的問題,岡為前端的分流處理已經(jīng)保證了數(shù)據(jù)的完整性這里只需對FIFO及DDR進(jìn)行控制,即對FIFO的使用率做一個控制,當(dāng)FIFO的使用率大于某一值時,停止從DDR中讀取數(shù)據(jù);當(dāng)小于這個值時,繼續(xù)從DDR中讀取數(shù)據(jù)這樣就有足夠的數(shù)據(jù)可進(jìn)行分析處理,從而重現(xiàn)信號特征
5 結(jié) 語
DDR在高速數(shù)據(jù)采集系統(tǒng)中的應(yīng)用有很大的實際意義,他提高了系統(tǒng)的可靠性和數(shù)據(jù)的存儲深度,在一定程度上有效地減小了電路設(shè)計的尺寸DDR已經(jīng)被應(yīng)用于視頻采集、內(nèi)存設(shè)計等多個領(lǐng)域其關(guān)鍵技術(shù)是DDR時序控制模塊的設(shè)計