《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的雙口RAM實現(xiàn)及應用
基于FPGA的雙口RAM實現(xiàn)及應用
秦鴻剛 劉京科 吳 迪
摘要: 本文充分利用FPGA內(nèi)部豐富的硬件資源和Verilog HDL語言的靈活性,在FPGA內(nèi)實現(xiàn)了雙口RAM的基本功能,并通過設計一塊數(shù)據(jù)采集板介紹基于FPGA技術的雙口RAM的應用,,該系統(tǒng)減小了設計電路的復雜性,增強了設計的靈活性和資源的可配置性,。整個系統(tǒng)分工明確,構成合理,,具有一定的應用價值,。
關鍵詞: FPGA RAM CY7C006A Cypress
Abstract:
Key words :

  隨著電子技術的飛速發(fā)展,大量的高速數(shù)據(jù)采集和在線測試對現(xiàn)代工業(yè)測控系統(tǒng)和儀器儀表的功能和性能提更高要求,。CPU并行工作(雙單片機系統(tǒng))方式得到廣泛應用,。為了使2個單片機能夠快速有效交換信息,,充分利用系統(tǒng)資源,,采用雙口RAM實現(xiàn)存儲器共享是目前較為流行的方法。

  大容量,、高速FPGA器件具有集成度高,、體積小、靈活可重配置,、實驗風險小等優(yōu)點,,在復雜數(shù)字系統(tǒng)中得到越來越廣泛的應用。數(shù)字電路設計采用l片F(xiàn)PGA器件,、存儲設備和一些電氣接口匹配電路的解決方案已成為主流選擇方案,。用FPGA來實現(xiàn)雙口RAM的功能可以很好地解決并行性和速度問題,而且其靈活的可配置特性使得基于FPGA的雙口RAM易于進行修改,、測試及系統(tǒng)升級,,可降低設計成本,縮短開發(fā)周期,。

  1 雙口RAM簡介

  雙口RAM是在1個SRAM存儲器上具有兩套完全獨立的數(shù)據(jù)線,、地址線和讀寫控制線,并允許兩個獨立的系統(tǒng)同時對其進行隨機性訪問的存儲器,,即共享式多端口存儲器,。雙口RAM最大的特點是存儲數(shù)據(jù)共享,。1個存儲器配備兩套獨立的地址、數(shù)據(jù)和控制線,,允許兩個獨立的CPU或控制器同時異步地訪問存儲單元,。因為數(shù)據(jù)共享。則必須具有訪問仲裁控制,。內(nèi)部仲裁邏輯控制提供以下功能:對同一地址單元訪問的時序控制,;存儲單元數(shù)據(jù)塊的訪問權限分配:信令交換邏輯(例如中斷信號)等。雙口RAM可用于提高RAM的吞吐率,,適用于實時數(shù)據(jù)緩存,。

  CY7C006ACypress公司生產(chǎn)的16 kb×8高速雙口靜態(tài)RAM,存取速度小于20 ns,。該器件具有真正的雙端口,,可以同時進行數(shù)據(jù)存取,兩個端口具有獨立的控制信號線,、地址線和數(shù)據(jù)線,,另外通過主/從選擇可以方便地擴存儲容量和數(shù)據(jù)寬度。通過器件的信號量標志器,,左,、右兩端口可以實現(xiàn)器件資源共享。

  2 雙口RAM在FPGA中的實現(xiàn)

  本設計采用自頂而下的設計思想,。選用Xilinx公司的Spartan-6 FPGA器件,,基于低功耗45 nm、9-金屬銅層,、雙柵極氧化層工藝技術,,提供高級功耗管理技術,150 000個邏輯單元,,集成式PCI Express模塊,,高級存儲器支持。250 MHz DSPslice和3.125 Gb/s低功耗收發(fā)器,。通過Verilog HDL語言對雙口RAM功能的描述就能在一片F(xiàn)PGA器件內(nèi)實現(xiàn)8位16字節(jié)的雙口RAM,,并進行讀寫操作控制。雙口RAM讀寫操作控制Verilog HDL代碼如下:


   圖l是雙口RAM的Verilog HDL代碼在Xilinx ISE中綜合后的寄存器傳輸級電路圖,。

   功能仿真的是Xilinx公司已經(jīng)建立自己的編譯庫的Modelsim XEⅢ6.2c軟件,,仿真結果如圖2所示,滿足設計要求,。


   經(jīng)Xilinx ISE軟件綜合實現(xiàn)設計,,生成可下載的比特流,將其下載到FPGA中,,實現(xiàn)雙口RAM的功能,。FPGA器件內(nèi)部具有豐富的資源,,可以在實現(xiàn)雙口RAM基本功能的基礎上。滿足系統(tǒng)設計的其他需求,,且靈活可配置,。

  3 基于FPGA的雙口RAM應用

  雙口RAM在數(shù)字系統(tǒng)中應用廣泛。高速數(shù)據(jù)采集系統(tǒng)中,,一般的數(shù)據(jù)傳輸系統(tǒng)在大數(shù)據(jù)量情況下會造成數(shù)據(jù)堵塞現(xiàn)象,。在一些實時控制場合,實時算法經(jīng)常需要由幾個DSP串行或并行工作以提高系統(tǒng)的運行速度和實時性,。以雙口RAM構成的數(shù)據(jù)接口可以在兩個處理器之間進行高速可靠的信息傳輸,。此外,雙口RAM可以應用在智能總線適配卡,、網(wǎng)絡適配卡中作為高速數(shù)據(jù)傳輸?shù)慕涌?。在許多寬帶信號處理領域(如無線通信、多媒體系統(tǒng),、衛(wèi)星通信,、雷達系統(tǒng)等),F(xiàn)PGA技術已代替DSP實現(xiàn)許多前端的數(shù)字信號處理算法,。用FPGA來實現(xiàn)數(shù)字信號處理能很好地解決并行性和速度問題,,而且其靈活的可配置特性,使得FPGA構成的數(shù)字信號處理系統(tǒng)易于修改,、測試及系統(tǒng)升級,,降低設計成本,縮短開發(fā)周期,。任何一種自動控制系統(tǒng)都離不開數(shù)據(jù)采集系統(tǒng),,數(shù)據(jù)采集系統(tǒng)的質量直接影響整體系統(tǒng)的工作性能,。數(shù)據(jù)采集系統(tǒng)高速,、實時發(fā)展趨勢,對數(shù)據(jù)的傳輸和控制速度提出較高要求,。而采用雙口RAM可有效提高速度,,解決速度匹配問題。

  設計l塊數(shù)據(jù)采集系統(tǒng)板,,用FPGA實現(xiàn)雙口RAM功能,,并且控制A/D采樣與轉換,以及數(shù)據(jù)寫入雙口RAM,。利用單片機控制雙口RAM的存取,,構成一個獨立的數(shù)據(jù)采集系統(tǒng),并可以通過串行接口把數(shù)據(jù)發(fā)送給PC機,。圖3為其系統(tǒng)結構框圖,。

   首先,,時鐘產(chǎn)生啟動信號,F(xiàn)PGA向采樣開關發(fā)出選通信號,,選定模擬開關采樣,,第0路模擬量進入,經(jīng)A/D轉換后變?yōu)?位數(shù)字量并存儲于雙口RAM中,,ADC0809反饋給FPGA內(nèi)控制電路并告知轉換完畢,,F(xiàn)PGA內(nèi)控制電路再選通第1路模擬量進入,重復上述過程,。經(jīng)過0.1 ms后,,時鐘又產(chǎn)生一個脈沖啟動信號。FPGA又重新從第O路模擬量選通,。

  在時鐘脈沖信號0.1 ms過程中,,F(xiàn)PGA順序通過0~7路模擬開關,在每次選通時須判斷是否為第7路模擬量,,若是則FPGA不再響應A/D反饋信號,,而是等待0.1ms的時鐘脈沖信號到達再重新開始工作。單片機用于與外部PC機通信,,PC機查詢是否在雙端口RAM中有新數(shù)據(jù),,并經(jīng)接口電路讀人數(shù)據(jù)。其中雙口RAM具有2組獨立的數(shù)據(jù),、地址和控制總線,,可對任何一個端口進行獨立的操作。若未采用雙口RAM,,F(xiàn)PGA采取中斷方式對CPU傳輸數(shù)據(jù)時,,CPU就會停止當前工作而去處理外部請求,當處理完外部事件后再回到原來被中止處,,繼續(xù)原來的工作,,這樣會影響CPU的速度。因此引入雙口RAM存儲FPGA傳送來的數(shù)據(jù),,然后CPU再從雙口RAM中讀數(shù),,從而提高效率。本數(shù)據(jù)采集系統(tǒng)采用基于FPGA雙口RAM,、單片機等實現(xiàn)數(shù)據(jù)運行處理和控制功能,,使系統(tǒng)的通信和處理能力大大加強,保證了系統(tǒng)的實時性,,可以靈活地通過多種方式控制數(shù)據(jù)讀寫,。

  4 結束語

  本文充分利用FPGA內(nèi)部豐富的硬件資源和Verilog HDL語言的靈活性,在FPGA內(nèi)實現(xiàn)了雙口RAM的基本功能,,并通過設計一塊數(shù)據(jù)采集板介紹基于FPGA技術的雙口RAM的應用,,該系統(tǒng)減小了設計電路的復雜性,,增強了設計的靈活性和資源的可配置性。整個系統(tǒng)分工明確,,構成合理,,具有一定的應用價值。
 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權禁止轉載,。