《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA與SRAM的大容量數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)
基于FPGA與SRAM的大容量數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)
電子發(fā)燒友
摘要: 1 前言 針對(duì)FPGA中內(nèi)部BlockRAM有限的缺點(diǎn),,提出了將FPGA與外部SRAM相結(jié)合來(lái)改進(jìn)設(shè)計(jì)的方法,,并給出了部分VHDL程序?! ? 硬件設(shè)計(jì)  這里將主要討論以Xilinx公司的FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)為主要器件來(lái)完成大容量數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)思路,。  FPGA即現(xiàn)場(chǎng)可編程門(mén)陣列,其結(jié)構(gòu)與傳統(tǒng)的門(mén)陣列相似,大量的可編程邏輯塊( CLB , Configurable Logic Block ) 在芯片中央按矩陣排列,芯片四周為可編程輸入/輸出塊( IOB , Input / Output Block),CLB行列之間及CLB和IOB之間具有可編程的互連資源(ICR,InterConnectResource),。CLB,、IOB和ICR都由分布在芯片中的SRAM靜態(tài)存儲(chǔ)單元控制,SRAM中的數(shù)據(jù)決定FPGA的功能,這些數(shù)據(jù)可以在系統(tǒng)加電時(shí)自動(dòng)或由命令控制從外部存儲(chǔ)器裝入?! ≡谶M(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),,可直接將數(shù)據(jù)寫(xiě)入FPGA內(nèi)部的BlockRAM中,在一定程度上減少了FPGA的資源分配,。但FPGA內(nèi)部自帶的RAM塊畢竟是有限的,,當(dāng)需進(jìn)行大容量數(shù)據(jù)存
Abstract:
Key words :

 1 前言

 針對(duì)FPGA中內(nèi)部BlockRAM有限的缺點(diǎn),提出了將FPGA與外部SRAM相結(jié)合來(lái)改進(jìn)設(shè)計(jì)的方法,,并給出了部分VHDL程序,。

  2 硬件設(shè)計(jì)

  這里將主要討論以Xilinx公司的FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)為主要器件來(lái)完成大容量數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)思路。

  FPGA即現(xiàn)場(chǎng)可編程門(mén)陣列,其結(jié)構(gòu)與傳統(tǒng)的門(mén)陣列相似,大量的可編程邏輯塊( CLB , Configurable Logic Block ) 在芯片中央按矩陣排列,芯片四周為可編程輸入/輸出塊( IOB , Input / Output Block),CLB行列之間及CLB和IOB之間具有可編程的互連資源(ICR,InterConnectResource),。CLB,、IOB和ICR都由分布在芯片中的SRAM靜態(tài)存儲(chǔ)單元控制,SRAM中的數(shù)據(jù)決定FPGA的功能,這些數(shù)據(jù)可以在系統(tǒng)加電時(shí)自動(dòng)或由命令控制從外部存儲(chǔ)器裝入。

  在進(jìn)行數(shù)據(jù)存儲(chǔ)時(shí),,可直接將數(shù)據(jù)寫(xiě)入FPGA內(nèi)部的BlockRAM中,,在一定程度上減少了FPGA的資源分配。但FPGA內(nèi)部自帶的RAM塊畢竟是有限的,,當(dāng)需進(jìn)行大容量數(shù)據(jù)存儲(chǔ)時(shí)這有限的RAM塊是遠(yuǎn)遠(yuǎn)不能滿(mǎn)足系統(tǒng)設(shè)計(jì)要求的,。此時(shí),就需要將FPGA與外部RAM相結(jié)合完成大容量數(shù)據(jù)存儲(chǔ),。具體硬件電路如圖一所示:

  

 

  3 IS61LV25616AL功能簡(jiǎn)介

  IS61LV25616AL是IntegratedSiliconSolution公司(ISSI)的一款容量為256K×16的且引腳功能完全兼容的4Mb的異步SRAM,,可為Xilinx公司的Spartan-2E系列FPGA提供高性能、高消費(fèi)比的外圍存儲(chǔ),。除了256K×16異步SRAM外,,ISSI還提供128K×16、512K×16,、256K×8,、512K×8和1M×8的異步SRAM。 IS61LV25616AL引腳結(jié)構(gòu)框圖如圖二所示:

  

 

  3.1 主要特征

  (1)工作電壓:3.3伏;

  (2)訪問(wèn)時(shí)間:10ns,、12ns;

  (3)芯片容量:256K×16;

  (4)封裝形式:44引腳TSOPII封裝,,也有48引腳mBGA和44引腳SOJ封裝;

  (5)采用0.18μm技術(shù)制造。

  3.2 引腳功能

  (1)A0~A17:18位的地址輸入線;

  (2)IO0~I(xiàn)O15:16位的三態(tài)數(shù)據(jù)輸入輸出線;

  (3)寫(xiě)控制線;

  (4)片選信號(hào);

  (5)輸出使能信號(hào);

  (6)低字節(jié),、高字節(jié)使能信號(hào);

  (3)~(6)的控制線均為低電平有效,。

  3.3 控制邏輯電路設(shè)計(jì)

  如圖三所示,控制邏輯由FPGA來(lái)實(shí)現(xiàn),。主要包括讀地址產(chǎn)生器,、寫(xiě)地址產(chǎn)生器、讀寫(xiě)時(shí)鐘信號(hào)產(chǎn)生器及讀寫(xiě)控制等幾部分,。下面分別加以講述,。

  

 

  (1)寫(xiě)地址產(chǎn)生器:由于設(shè)計(jì)時(shí)采用256K×16的SRAM,故有18位地址,,寫(xiě)地址產(chǎn)生器用18位計(jì)數(shù)器實(shí)現(xiàn),。靠外部時(shí)鐘驅(qū)動(dòng),,每進(jìn)行一次寫(xiě)操作后,讀寫(xiě)控制單元產(chǎn)生計(jì)數(shù)脈沖,,使其增1,直到18位計(jì)數(shù)器計(jì)滿(mǎn)再循環(huán)寫(xiě)入地址為0的空間,。

  (2)讀地址產(chǎn)生器同上,,也采用18位計(jì)數(shù)器實(shí)現(xiàn),根據(jù)系統(tǒng)要求,,每隔一定的采樣周期將讀地址指針偏移一定偏移量,,并從該位置讀取數(shù)據(jù)。

  (3)讀寫(xiě)地址選擇器由于讀寫(xiě)地址復(fù)用管腳,,因此在讀寫(xiě)操作時(shí),,必須選通相應(yīng)的地址。這就需要由FPGA控制芯片上的等控制信號(hào)來(lái)對(duì)SRAM進(jìn)行讀寫(xiě)的操作,。

  (4)此外,,由于讀寫(xiě)之間的切換,數(shù)據(jù)線上的數(shù)據(jù)在切換瞬間如不加處理會(huì)出現(xiàn)混亂現(xiàn)象,。因此,,為避免讀、寫(xiě)操作發(fā)生沖突,,數(shù)據(jù)線呈三種狀態(tài),,讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)及高阻態(tài),。在從寫(xiě)到讀的過(guò)程中需給數(shù)據(jù)線上送高阻態(tài),。

  (5)當(dāng)需要對(duì)SRAM進(jìn)行寫(xiě)操作時(shí),由FPGA控制產(chǎn)生寫(xiě)地址選通信號(hào),,該選通信號(hào)為一單脈沖形式,,如圖四中該脈沖下降沿觸發(fā)SRAM,,告知開(kāi)始對(duì)RAM進(jìn)行寫(xiě)操作,使FPGA輸出寫(xiě)地址,,同時(shí)給數(shù)據(jù)線上送數(shù)據(jù),。在寫(xiě)操作期間,片選信號(hào)始終保持低電平,,而寫(xiě)地址選通信號(hào)上升沿到來(lái)時(shí)使寫(xiě)地址計(jì)數(shù)器增1,。以此類(lèi)推,通過(guò)寫(xiě)地址選通信號(hào)高低電平變化完成對(duì)數(shù)據(jù)依次寫(xiě)入,。需要注意的是,,地址線和數(shù)據(jù)線在為高時(shí)可同時(shí)賦新值,但只有在變低后賦予數(shù)據(jù)線上的新值才有效,。

  

 

  對(duì)SRAM進(jìn)行讀操作相對(duì)較簡(jiǎn)單,,在進(jìn)行讀操作期間,始終為低電平,,始終為高電平,。每進(jìn)行一次讀操作,地址按系統(tǒng)要求變化一次,。同時(shí)注意,,地址的變化時(shí)刻總要先于數(shù)據(jù)的變化時(shí)刻。圖五為RAM讀操作時(shí)序,。

  

 

  以下是一段用VHDL語(yǔ)言描述的控制RAM的讀寫(xiě)操作時(shí)序的程序代碼:

  

 

  程序中,,在進(jìn)行讀寫(xiě)操作時(shí),片選使能信號(hào)CE_SRAM及輸出使能信號(hào)OE_SRAM始終為低電平,。

  第0時(shí)刻到第2時(shí)刻在進(jìn)行寫(xiě)操作:第0時(shí)刻地址線addr_SRAM和數(shù)據(jù)線data_SRAM同時(shí)賦新值,,控制線WE_SRAM、LB_SRAM,、UB_SRAM要經(jīng)歷一個(gè)窄脈沖的變化過(guò)程,,RAM在獲取到此控制線下降沿信息后,便知開(kāi)始進(jìn)行寫(xiě)操作,。需要注意的是,,雖然數(shù)據(jù)在第0時(shí)刻已賦到數(shù)據(jù)線上,但因?yàn)閷?xiě)操作是控制線低電平有效,,所以數(shù)據(jù)線上真正發(fā)生數(shù)據(jù)更新是在控制線變?yōu)榈碗娖街?,因此,?shù)據(jù)線上的實(shí)際更新時(shí)刻是在第2個(gè)時(shí)刻,。

  第3,、4狀態(tài)是進(jìn)行讀操作:在讀寫(xiě)轉(zhuǎn)換時(shí)刻,也就是在第3時(shí)刻如前所述需給數(shù)據(jù)線上送高阻態(tài),。這樣,,讀取數(shù)據(jù)的時(shí)序關(guān)系由系統(tǒng)時(shí)鐘進(jìn)行控制,,在第3時(shí)刻給地址線上送要讀取的地址,第4時(shí)刻將數(shù)據(jù)端口上的數(shù)據(jù)送出,。這里需注意的是,,讀取數(shù)據(jù)要比讀取地址晚一個(gè)時(shí)刻。從而,,完成了對(duì)外部RAM的讀寫(xiě)操作控制。

  4結(jié)論

  該系統(tǒng)已應(yīng)用在羅蘭—C導(dǎo)航接收機(jī)的信號(hào)處理中,。實(shí)驗(yàn)證明,,此設(shè)計(jì)可靠穩(wěn)定地完成了大容量高速異步數(shù)據(jù)存儲(chǔ),進(jìn)一步提高了系統(tǒng)的性能,。

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