基于FPGA的雙口RAM實(shí)現(xiàn)及應(yīng)用
摘要:為了在高速采集時(shí)不丟失數(shù)據(jù),在數(shù)據(jù)采集系統(tǒng)和CPU之間設(shè)置一個(gè)數(shù)據(jù)暫存區(qū)。介紹雙口RAM的存儲(chǔ)原理及其在數(shù)字系統(tǒng)中的應(yīng)用。采用FPGA技術(shù)構(gòu)造雙口RAM,實(shí)現(xiàn)高速信號(hào)采集系統(tǒng)中的海量數(shù)據(jù)存儲(chǔ)和時(shí)鐘匹配。功能仿真驗(yàn)證該設(shè)計(jì)的正確性,該設(shè)計(jì)能減小電路設(shè)計(jì)的復(fù)雜性,增強(qiáng)設(shè)計(jì)的靈活性和資源的可配置性能.降低設(shè)計(jì)成本,縮短開(kāi)發(fā)周期。
本文引用地址:http://butianyuan.cn/article/149638.htm隨著電子技術(shù)的飛速發(fā)展,大量的高速數(shù)據(jù)采集和在線(xiàn)測(cè)試對(duì)現(xiàn)代工業(yè)測(cè)控系統(tǒng)和儀器儀表的功能和性能提更高要求。CPU并行工作(雙單片機(jī)系統(tǒng))方式得到廣泛應(yīng)用。為了使2個(gè)單片機(jī)能夠快速有效交換信息,充分利用系統(tǒng)資源,采用雙口RAM實(shí)現(xiàn)存儲(chǔ)器共享是目前較為流行的方法。
大容量、高速FPGA器件具有集成度高、體積小、靈活可重配置、實(shí)驗(yàn)風(fēng)險(xiǎn)小等優(yōu)點(diǎn),在復(fù)雜數(shù)字系統(tǒng)中得到越來(lái)越廣泛的應(yīng)用。數(shù)字電路設(shè)計(jì)采用l片FPGA器件、存儲(chǔ)設(shè)備和一些電氣接口匹配電路的解決方案已成為主流選擇方案。用FPGA來(lái)實(shí)現(xiàn)雙口RAM的功能可以很好地解決并行性和速度問(wèn)題,而且其靈活的可配置特性使得基于FPGA的雙口RAM易于進(jìn)行修改、測(cè)試及系統(tǒng)升級(jí),可降低設(shè)計(jì)成本,縮短開(kāi)發(fā)周期。
1 雙口RAM簡(jiǎn)介
雙口RAM是在1個(gè)SRAM存儲(chǔ)器上具有兩套完全獨(dú)立的數(shù)據(jù)線(xiàn)、地址線(xiàn)和讀寫(xiě)控制線(xiàn),并允許兩個(gè)獨(dú)立的系統(tǒng)同時(shí)對(duì)其進(jìn)行隨機(jī)性訪(fǎng)問(wèn)的存儲(chǔ)器,即共享式多端口存儲(chǔ)器。雙口RAM最大的特點(diǎn)是存儲(chǔ)數(shù)據(jù)共享。1個(gè)存儲(chǔ)器配備兩套獨(dú)立的地址、數(shù)據(jù)和控制線(xiàn),允許兩個(gè)獨(dú)立的CPU或控制器同時(shí)異步地訪(fǎng)問(wèn)存儲(chǔ)單元。因?yàn)閿?shù)據(jù)共享。則必須具有訪(fǎng)問(wèn)仲裁控制。內(nèi)部仲裁邏輯控制提供以下功能:對(duì)同一地址單元訪(fǎng)問(wèn)的時(shí)序控制;存儲(chǔ)單元數(shù)據(jù)塊的訪(fǎng)問(wèn)權(quán)限分配:信令交換邏輯(例如中斷信號(hào))等。雙口RAM可用于提高RAM的吞吐率,適用于實(shí)時(shí)數(shù)據(jù)緩存。
CY7C006A是Cypress公司生產(chǎn)的16 kb×8高速雙口靜態(tài)RAM,存取速度小于20 ns。該器件具有真正的雙端口,可以同時(shí)進(jìn)行數(shù)據(jù)存取,兩個(gè)端口具有獨(dú)立的控制信號(hào)線(xiàn)、地址線(xiàn)和數(shù)據(jù)線(xiàn),另外通過(guò)主/從選擇可以方便地?cái)U(kuò)存儲(chǔ)容量和數(shù)據(jù)寬度。通過(guò)器件的信號(hào)量標(biāo)志器,左、右兩端口可以實(shí)現(xiàn)器件資源共享。
2 雙口RAM在FPGA中的實(shí)現(xiàn)
本設(shè)計(jì)采用自頂而下的設(shè)計(jì)思想。選用Xilinx公司的Spartan-6 FPGA器件,基于低功耗45 nm、9-金屬銅層、雙柵極氧化層工藝技術(shù),提供高級(jí)功耗管理技術(shù),150 000個(gè)邏輯單元,集成式PCI ExprESS模塊,高級(jí)存儲(chǔ)器支持。250 MHz DSPslice和3.125 Gb/s低功耗收發(fā)器。通過(guò)Verilog HDL語(yǔ)言對(duì)雙口RAM功能的描述就能在一片F(xiàn)PGA器件內(nèi)實(shí)現(xiàn)8位16字節(jié)的雙口RAM,并進(jìn)行讀寫(xiě)操作控制。雙口RAM讀寫(xiě)操作控制Verilog HDL代碼如下:
圖l是雙口RAM的Verilog HDL代碼在Xilinx ISE中綜合后的寄存器傳輸級(jí)電路圖。
功能仿真的是Xilinx公司已經(jīng)建立自己的編譯庫(kù)的Modelsim XEⅢ6.2c軟件,仿真結(jié)果如圖2所示,滿(mǎn)足設(shè)計(jì)要求。
經(jīng)Xilinx ISE軟件綜合實(shí)現(xiàn)設(shè)計(jì),生成可下載的比特流,將其下載到FPGA中,實(shí)現(xiàn)雙口RAM的功能。FPGA器件內(nèi)部具有豐富的資源,可以在實(shí)現(xiàn)雙口RAM基本功能的基礎(chǔ)上。滿(mǎn)足系統(tǒng)設(shè)計(jì)的其他需求,且靈活可配置。
3 基于FPGA的雙口RAM應(yīng)用
雙口RAM在數(shù)字系統(tǒng)中應(yīng)用廣泛。高速數(shù)據(jù)采集系統(tǒng)中,一般的數(shù)據(jù)傳輸系統(tǒng)在大數(shù)據(jù)量情況下會(huì)造成數(shù)據(jù)堵塞現(xiàn)象。在一些實(shí)時(shí)控制場(chǎng)合,實(shí)時(shí)算法經(jīng)常需要由幾個(gè)DSP串行或并行工作以提高系統(tǒng)的運(yùn)行速度和實(shí)時(shí)性。以雙口RAM構(gòu)成的數(shù)據(jù)接口可以在兩個(gè)處理器之間進(jìn)行高速可靠的信息傳輸。此外,雙口RAM可以應(yīng)用在智能總線(xiàn)適配卡、網(wǎng)絡(luò)適配卡中作為高速數(shù)據(jù)傳輸?shù)慕涌?。在許多寬帶信號(hào)處理領(lǐng)域(如無(wú)線(xiàn)通信、多媒體系統(tǒng)、衛(wèi)星通信、雷達(dá)系統(tǒng)等),F(xiàn)PGA技術(shù)已代替DSP實(shí)現(xiàn)許多前端的數(shù)字信號(hào)處理算法。用FPGA來(lái)實(shí)現(xiàn)數(shù)字信號(hào)處理能很好地解決并行性和速度問(wèn)題,而且其靈活的可配置特性,使得FPGA構(gòu)成的數(shù)字信號(hào)處理系統(tǒng)易于修改、測(cè)試及系統(tǒng)升級(jí),降低設(shè)計(jì)成本,縮短開(kāi)發(fā)周期。任何一種自動(dòng)控制系統(tǒng)都離不開(kāi)數(shù)據(jù)采集系統(tǒng),數(shù)據(jù)采集系統(tǒng)的質(zhì)量直接影響整體系統(tǒng)的工作性能。數(shù)據(jù)采集系統(tǒng)高速、實(shí)時(shí)發(fā)展趨勢(shì),對(duì)數(shù)據(jù)的傳輸和控制速度提出較高要求。而采用雙口RAM可有效提高速度,解決速度匹配問(wèn)題。
設(shè)計(jì)l塊數(shù)據(jù)采集系統(tǒng)板,用FPGA實(shí)現(xiàn)雙口RAM功能,并且控制A/D采樣與轉(zhuǎn)換,以及數(shù)據(jù)寫(xiě)入雙口RAM。利用單片機(jī)控制雙口RAM的存取,構(gòu)成一個(gè)獨(dú)立的數(shù)據(jù)采集系統(tǒng),并可以通過(guò)串行接口把數(shù)據(jù)發(fā)送給PC機(jī)。圖3為其系統(tǒng)結(jié)構(gòu)框圖。
首先,時(shí)鐘產(chǎn)生啟動(dòng)信號(hào),F(xiàn)PGA向采樣開(kāi)關(guān)發(fā)出選通信號(hào),選定模擬開(kāi)關(guān)采樣,第0路模擬量進(jìn)入,經(jīng)A/D轉(zhuǎn)換后變?yōu)?位數(shù)字量并存儲(chǔ)于雙口RAM中,ADC0809反饋給FPGA內(nèi)控制電路并告知轉(zhuǎn)換完畢,F(xiàn)PGA內(nèi)控制電路再選通第1路模擬量進(jìn)入,重復(fù)上述過(guò)程。經(jīng)過(guò)0.1 ms后,時(shí)鐘又產(chǎn)生一個(gè)脈沖啟動(dòng)信號(hào)。FPGA又重新從第O路模擬量選通。
在時(shí)鐘脈沖信號(hào)0.1 ms過(guò)程中,F(xiàn)PGA順序通過(guò)0~7路模擬開(kāi)關(guān),在每次選通時(shí)須判斷是否為第7路模擬量,若是則FPGA不再響應(yīng)A/D反饋信號(hào),而是等待0.1ms的時(shí)鐘脈沖信號(hào)到達(dá)再重新開(kāi)始工作。單片機(jī)用于與外部PC機(jī)通信,PC機(jī)查詢(xún)是否在雙端口RAM中有新數(shù)據(jù),并經(jīng)接口電路讀人數(shù)據(jù)。其中雙口RAM具有2組獨(dú)立的數(shù)據(jù)、地址和控制總線(xiàn),可對(duì)任何一個(gè)端口進(jìn)行獨(dú)立的操作。若未采用雙口RAM,F(xiàn)PGA采取中斷方式對(duì)CPU傳輸數(shù)據(jù)時(shí),CPU就會(huì)停止當(dāng)前工作而去處理外部請(qǐng)求,當(dāng)處理完外部事件后再回到原來(lái)被中止處,繼續(xù)原來(lái)的工作,這樣會(huì)影響CPU的速度。因此引入雙口RAM存儲(chǔ)FPGA傳送來(lái)的數(shù)據(jù),然后CPU再?gòu)碾p口RAM中讀數(shù),從而提高效率。本數(shù)據(jù)采集系統(tǒng)采用基于FPGA雙口RAM、單片機(jī)等實(shí)現(xiàn)數(shù)據(jù)運(yùn)行處理和控制功能,使系統(tǒng)的通信和處理能力大大加強(qiáng),保證了系統(tǒng)的實(shí)時(shí)性,可以靈活地通過(guò)多種方式控制數(shù)據(jù)讀寫(xiě)。
4 結(jié)束語(yǔ)
本文充分利用FPGA內(nèi)部豐富的硬件資源和Verilog HDL語(yǔ)言的靈活性,在FPGA內(nèi)實(shí)現(xiàn)了雙口RAM的基本功能,并通過(guò)設(shè)計(jì)一塊數(shù)據(jù)采集板介紹基于FPGA技術(shù)的雙口RAM的應(yīng)用,該系統(tǒng)減小了設(shè)計(jì)電路的復(fù)雜性,增強(qiáng)了設(shè)計(jì)的靈活性和資源的可配置性。整個(gè)系統(tǒng)分工明確,構(gòu)成合理,具有一定的應(yīng)用價(jià)值。
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論