FPGA與SRAM相結(jié)合完成大容量數(shù)據(jù)存儲(chǔ)
出處:xwj 發(fā)布于:2006-09-21 15:16:39
1 引言
隨著數(shù)字信號(hào)處理技術(shù)的不斷發(fā)展,大容量可編程邏輯器件的不斷涌現(xiàn),F(xiàn)PGA技術(shù)越來越多地應(yīng)用在大規(guī)模集成電路設(shè)計(jì)中。在此硬件系統(tǒng)設(shè)計(jì)中,經(jīng)常會(huì)遇到需要大容量的數(shù)據(jù)存儲(chǔ)的情況,下面我們將針對FPGA中內(nèi)部Block RAM有限的缺點(diǎn),提出了將FPGA與外部SRAM相結(jié)合來改進(jìn)設(shè)計(jì)的方法,并給出了部分VHDL程序。
2 硬件設(shè)計(jì)
這里將主要討論以Xilinx公司的 FPGA(XC2S600E-6fg456)和ISSI公司的SRAM(IS61LV25616AL)為主要器件來完成大容量數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)思路。
FPGA即現(xiàn)場可編程門陣列,其結(jié)構(gòu)與傳統(tǒng)的門陣列相似,大量的可編程邏輯塊(CLB, Configurable Logic Block)在芯片中央按矩陣排列,芯片四周為可編程輸入/輸出塊(IOB, Input/Output Block),CLB行列之間及CLB和IOB之間具有可編程的互連資源(ICR, Inter Connect Resource)。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ù)寫入FPGA內(nèi)部的Block RAM中,在一定程度上減少了FPGA的資源分配。但FPGA內(nèi)部自帶的RAM塊畢竟是有限的,當(dāng)需進(jìn)行大容量數(shù)據(jù)存儲(chǔ)時(shí)這有限的RAM塊是遠(yuǎn)遠(yuǎn)不能滿足系統(tǒng)設(shè)計(jì)要求的。此時(shí),就需要將FPGA與外部RAM相結(jié)合完成大容量數(shù)據(jù)存儲(chǔ)。具體硬件電路如圖一所示:
圖一 硬件電路原理圖
3 IS61LV25616AL功能簡介
IS61LV25616AL是Integrated Silicon Solution 公司(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)框圖如圖二所示: 
圖二 IS61LV25616AL結(jié)構(gòu)框圖
3.1主要特征
(1)工作電壓:3.3伏;
(2)訪問時(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) :寫控制線;
(4) : 片選信號(hào);
(5) :輸出使能信號(hào);
(6) 、 :低字節(jié)、高字節(jié)使能信號(hào);
(3)~(6)的控制線均為低電平有效。
3.3控制邏輯電路設(shè)計(jì)
如圖三所示,控制邏輯由FPGA來實(shí)現(xiàn)。主要包括讀地址產(chǎn)生器、寫地址產(chǎn)生器、讀寫時(shí)鐘信號(hào)產(chǎn)生器及讀寫控制等幾部分。下面分別加以講述。

圖三 原理框圖
(1)寫地址產(chǎn)生器:由于設(shè)計(jì)時(shí)采用256K×16 的SRAM,故有18位地址,寫地址產(chǎn)生器用18位計(jì)數(shù)器實(shí)現(xiàn)。靠外部時(shí)鐘驅(qū)動(dòng),每進(jìn)行寫操作后,讀寫控制單元產(chǎn)生計(jì)數(shù)脈沖,使其增1,直到18位計(jì)數(shù)器計(jì)滿再循環(huán)寫入地址為0的空間。
(2)讀地址產(chǎn)生器同上,也采用18位計(jì)數(shù)器實(shí)現(xiàn),根據(jù)系統(tǒng)要求,每隔一定的采樣周期將讀地址指針偏移一定偏移量,并從該位置讀取數(shù)據(jù)。
(3)讀寫地址選擇器由于讀寫地址復(fù)用管腳,因此在讀寫操作時(shí),必須選通相應(yīng)的地址。這就需要由FPGA控制芯片上的 、 、 、 等控制信號(hào)來對SRAM進(jìn)行讀寫的操作。
(4)此外,由于讀寫之間的切換,數(shù)據(jù)線上的數(shù)據(jù)在切換瞬間如不加處理會(huì)出現(xiàn)混亂現(xiàn)象。因此,為避免讀、寫操作發(fā)生沖突,數(shù)據(jù)線呈三種狀態(tài),讀數(shù)據(jù)、寫數(shù)據(jù)及高阻態(tài)。在從寫到讀的過程中需給數(shù)據(jù)線上送高阻態(tài)。
(5) 當(dāng)需要對SRAM進(jìn)行寫操作時(shí),由FPGA控制產(chǎn)生寫地址選通信號(hào),該選通信號(hào)為一單脈沖形式,如圖四中 、 、 ,該脈沖下降沿觸發(fā)SRAM,告知開始對RAM進(jìn)行寫操作,使FPGA輸出寫地址,同時(shí)給數(shù)據(jù)線上送數(shù)據(jù)。在寫操作期間, 、 片選信號(hào)始終保持低電平,而寫地址選通信號(hào)上升沿到來時(shí)使寫地址計(jì)數(shù)器增1。以此類推,通過寫地址選通信號(hào)高低電平變化完成對數(shù)據(jù)依次寫入。需要注意的是,地址線和數(shù)據(jù)線在 、 、 為高時(shí)可同時(shí)賦新值,但只有在 變低后賦予數(shù)據(jù)線上的新值才有效。
圖四 RAM寫操作時(shí)序
對SRAM進(jìn)行讀操作相對較簡單,在進(jìn)行讀操作期間, 、 、 、 始終為低電平, 始終為高電平。每進(jìn)行讀操作,地址按系統(tǒng)要求變化。同時(shí)注意,地址的變化時(shí)刻總要先于數(shù)據(jù)的變化時(shí)刻。圖五為RAM讀操作時(shí)序。
圖五 RAM讀操作時(shí)序
以下是一段用VHDL語言描述的控制RAM的讀寫操作時(shí)序的程序代碼:
OE_SRAM<=LOWLEVEL;
CE_SRAM<=LOWLEVEL;
when 0 => addr_SRAM<=temp_addr_SRAM; --WRITE to SRAM
data_SRAM<=data_in;
WE_SRAM<='1';
LB_SRAM<='1';
UB_SRAM<='1';
when 1 => WE_SRAM<='0';
LB_SRAM<='0';
UB_SRAM<='0';
when 2 => WE_SRAM<='1';
LB_SRAM<='1';
UB_SRAM<='1';
when 3 => WE_SRAM<='1'; --READ from SRAM
LB_SRAM<='0';
UB_SRAM<='0';
data_SRAM<=b"ZZ_ZZZZ_ZZZZ_ZZZZ_ZZZZ"; --給數(shù)據(jù)線上送高阻
addr_SRAM<=temp_addr_SRAM;
when 4 => data_out <=data_SRAM;
程序中,在進(jìn)行讀寫操作時(shí),片選使能信號(hào)CE_SRAM及輸出使能信號(hào)OE_SRAM始終為低電平。
· 第0時(shí)刻到第2時(shí)刻在進(jìn)行寫操作:第0時(shí)刻地址線addr_SRAM和數(shù)據(jù)線data_SRAM同時(shí)賦新值,控制線WE_SRAM 、LB_SRAM、 UB_SRAM要經(jīng)歷一個(gè)窄脈沖的變化過程, RAM在獲取到此控制線下降沿信息后,便知開始進(jìn)行寫操作。需要注意的是,雖然數(shù)據(jù)在第0時(shí)刻已賦到數(shù)據(jù)線上,但因?yàn)閷懖僮魇强刂凭€低電平有效,所以數(shù)據(jù)線上真正發(fā)生數(shù)據(jù)更新是在控制線變?yōu)榈碗娖街螅虼耍瑪?shù)據(jù)線上的實(shí)際更新時(shí)刻是在第2個(gè)時(shí)刻。
·第3、4狀態(tài)是進(jìn)行讀操作:在讀寫轉(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í)刻。從而,完成了對外部RAM的讀寫操作控制。
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)的性能。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52
- 高速PCB阻抗控制核心實(shí)操規(guī)范
- 高速數(shù)字系統(tǒng)(如DDR、SerDes)中的信號(hào)完整性濾波
- MOSFET在UPS電源中的應(yīng)用解析
- 電源管理IC在物聯(lián)網(wǎng)設(shè)備中的應(yīng)用
- SMT連接器焊接缺陷分析
- MOSFET在汽車電子中的應(yīng)用要求
- 通信設(shè)備電源管理IC應(yīng)用解析
- 通信設(shè)備連接器選型與設(shè)計(jì)
- PCB電磁兼容性(EMC)設(shè)計(jì)核心實(shí)操規(guī)范
- 物聯(lián)網(wǎng)節(jié)點(diǎn)低功耗設(shè)計(jì):信號(hào)鏈中的濾波與功耗管理









