<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于SRAM/DRAM的大容量FIFO的設計與實(shí)現

基于SRAM/DRAM的大容量FIFO的設計與實(shí)現

作者: 時(shí)間:2014-07-01 來(lái)源:網(wǎng)絡(luò ) 收藏

1 引言

本文引用地址:http://dyxdggzs.com/article/249052.htm

(First In First Out)是一種具有先進(jìn)先出存儲功能的部件。在高速數字系統當中通常用作數據緩存。在高速數據采集、傳輸和實(shí)時(shí)顯示控制領(lǐng)域中.往往需要對大量數據進(jìn)行快速存儲和讀取,而這種先進(jìn)先出的結構特點(diǎn)很好地適應了這些要求,是傳統RAM無(wú)法達到的。

許多系統都需要大容量作為緩存,但是由于成本和容量限制,常采用多個(gè)芯片級聯(lián)擴展,這往往導致系統結構復雜,成本高。本文分別針對Hynix公司的兩款器件,介紹了使用CPLD進(jìn)行接口連接和編程控制,來(lái)構成低成本、大容量、高速度 FIFO的方法。該方法具有通用性,可以方便地移植到與其他RAM器件相連的應用中去[1]。

2基于的設計與實(shí)現

2.1 結構芯片HY64UD16322A

靜態(tài)隨機存取存儲器SRAM(Static Random Access Memory)是一種非常重要的易失性存儲器,它的速度非???,并且能在快速讀取和刷新時(shí)保持數據完整性。本系統SRAM器件采用Hynix公司的 HY64UD16322A[2]。HY64UD16322A是高速、超低功耗32 Mbit SRAM,內部具有2 097 152個(gè)16 bit字容量。采用了CMOS制造工藝、TTL電平接口以及三態(tài)輸出,具有較大的輸入電壓和溫度范圍。同時(shí)HY64UD16322A支持DPD(Deep Power Down)模式,保證其在待機模式下功耗進(jìn)一步降低。

2.2系統硬件設計

整個(gè)系統采用CPLD作為控制核心器件。CPLD選用Altera公司的MAX7128AETC100-5[3]。 MAX7128基于A(yíng)ltera公司第二代MAX乘積項結構,是采用CMOS EEPROM技術(shù)制造的EPLD,它集成了2 500個(gè)可用門(mén),128個(gè)宏單元以及100個(gè)I/O引腳。

圖1是HY64UD16322A內部結構以及與CPLD接口設計的系統連接圖??梢钥闯?,HY64UD16322A由地址譯碼、邏輯控制模塊以及大容量存儲陣列組成。CPLD接收到FIFO控制信號.按照該SRAM讀寫(xiě)時(shí)序要求完成相應的讀寫(xiě)操作.再通過(guò)所構造FIFO的數據輸入輸出和狀態(tài)控制接口返回。

 

 

2.3指針算法程序設計

系統采用CPLD作為總控制器件。根據FIFO的特點(diǎn),需要將SRAM按地址存儲用程序控制成先進(jìn)先出的結構。這里采用指針算法來(lái)實(shí)現這種結構設計:設置兩個(gè)指針變量StartPos和EndPos.分別作為進(jìn)入數據頭尾指針。當有新數據寫(xiě)入時(shí),數據從上一次存儲最后位置的下一個(gè)位置開(kāi)始存放.存入一個(gè)數據.EndPos就自動(dòng)加1,保持與最后數據位置同步。當EndPos超過(guò)整個(gè)RAM的最大容量(RAM_SIZE) 時(shí),就需要循環(huán)返回,從0x000位置存放,一直到EndPos與StartPos重合。這時(shí)可以認為RAM已經(jīng)存滿(mǎn)。同理,讀出數據時(shí)。起始位置 StartPos自動(dòng)加1。當StartPos超過(guò)整個(gè)RAM的最大容量時(shí),就從0x000位置讀取。一直到StartPos與EndPos重合,這時(shí)可以認為RAM已經(jīng)讀空。在這兩個(gè)過(guò)程當中,CPLD需要對地址線(xiàn)進(jìn)行控制.不難發(fā)現,寫(xiě)數據的時(shí)候Address與EndPos一致,讀數據的時(shí)候 Address與StartPos一致。圖2是整個(gè)系統寫(xiě)和讀時(shí)序控制的流程圖。

 

 

2.4時(shí)序控制

寫(xiě)入數據的時(shí)候,CPLD需要模擬FIFO基本的寫(xiě)操作時(shí)序:CPLD接收到nWEN(寫(xiě)使能,低有效)和WCLK(寫(xiě)時(shí)鐘,上升沿有效),即當nWEN為低,WCLK為上升沿時(shí),將當前I/O上的數據寫(xiě)入。在數據寫(xiě)入RAM的時(shí)候.CPLD應按照 HY64UD16322A的寫(xiě)時(shí)序來(lái)控制寫(xiě)操作。這里,CPLD首先按照上述流程計算出當前數據應存放的地址,然后控制nWE信號,nWE為低時(shí),數據自動(dòng)寫(xiě)入RAM。然后再寫(xiě)下一位數據。整個(gè)寫(xiě)時(shí)序如圖3所示。

 

 

同理.CPLD接收到nREN(讀使能,低有效)和RLCK(讀時(shí)鐘,上升沿有效)時(shí)。將最先寫(xiě)入的數據讀出。這里.CPLD首先按照讀數據流程計算出當前讀出數據存放地址.然后控制nOE信號(低電平有效),數據自動(dòng)讀出RAM。然后再進(jìn)行下一位數據讀出操作。

可以看出,影響所構建FIFO讀寫(xiě)速度的關(guān)鍵因素是tWc,該參數也是決定HY64UD16322A速度的主要因素,因此.所構建FIFO的理論速率應該接近HY64UD16322A的速率。

3 基于的設計與實(shí)現

3.1 結構芯片HY57V281620E

一般來(lái)說(shuō)。動(dòng)態(tài)隨機存取存儲器DRAM(Dynamic Random Access Memory)是由大的矩形存儲單元陣列與用來(lái)對陣列讀和寫(xiě)的支持性邏輯電路,以及維持存儲數據完整性的刷新電路組成。盡管操作較SRAM復雜,但由于 DRAM具有每存儲位單元低成本和高密度的優(yōu)點(diǎn),使得它們成為商業(yè)領(lǐng)域最廣泛使用的半導體存儲器。本系統的DRAM芯片采用Hynix公司的134 217 728 bit同步DHY57V281620E[4]。它由4塊2 097 152x16 bit組成。采用了CMOS制造工藝.LVTTL電平接口。

3.2系統硬件設計

同樣采用MAX7128AETC100-5完成系統控制。HY57V281620E內部結構以及與CPLD接口的系統連接圖。接口控制原理類(lèi)似2.2所述。不同的是,HY57V281620E內部由行列地址譯碼、多塊大容量存儲單元陣列和一些邏輯控制模塊組成。

3.3程序設計

這里,主要采用2.3中設立頭尾兩個(gè)指針的思想。與SRAM不同的是,DRAM采用的矩形存儲單元陣列是由行線(xiàn)和列線(xiàn)來(lái)控制,并且內部采用分塊結構.這里HY57V281620E由4塊存儲單元組成.通過(guò)BA1和BA0來(lái)控制。在寫(xiě)數據操作的時(shí)候,當存放數據長(cháng)度超過(guò)當前存儲單元容量時(shí),需要CPLD切換至下一存儲塊進(jìn)行存儲,同樣,讀操作的時(shí)候也存在這種操作,即如果StartPos或者EndPos超過(guò)了存儲塊容量.這里是2 097 152,則通過(guò)一個(gè)模4計數器控制切換至下一個(gè)存儲塊。

3.4時(shí)序控制

寫(xiě)入(或讀出)數據的時(shí)候,CPLD需要模擬FIFO基本的寫(xiě)(或讀)操作時(shí)序:CPLD接收到nWEN(nREN)和 WCLK(RCLK),即當。nWEN(nREN)為低,WCLK(RClK)為上升沿時(shí),將當前I/O上的數據寫(xiě)入(讀出)。在數據寫(xiě)入(讀出)RAM 的時(shí)候,CPLD應按照HY57V281620E器件的寫(xiě)(讀)時(shí)序來(lái)控制寫(xiě)(讀)操作:CPLD首先控制nRAS從高電平變至低電平,選擇行地址。再通過(guò)控制nCAS選擇列地址。這里,當寫(xiě)入(或讀出)數據在同一塊當中進(jìn)行,可以保持nRAS低電平,連續選擇多列數據操作(也稱(chēng)作快頁(yè)模式讀寫(xiě))。當數據地址超過(guò)塊容量,則需要重新選擇行地址,然后再進(jìn)行連續多列數據讀寫(xiě)操作。讀寫(xiě)使能控制和SRAM類(lèi)似,通過(guò)nOE和nWE(低有效)來(lái)控制。

圖 5是DRAM主要讀寫(xiě)控制時(shí)序??梢钥闯?,影響所構建FIFO讀寫(xiě)速度的主要因素是tPC,這也是決定DRAM速率的關(guān)鍵所在,因此,所構建FIFO的理論速度也應該接近DRAM最高頻率。同時(shí),還必須考慮DRAM的刷新操作。這里,系統采用nCAS先于nRAS的方式(CBR),即控制nCS、 nCAS、nRAS,并保持nWE為高電平,利用芯片內部計數器決定要被刷新的行。HY57V281620E提供了這種自刷新模式,刷新速率由tREF來(lái)決定,通常為64 ms。在系統或某存儲塊長(cháng)時(shí)間無(wú)操作的情況下,需要定時(shí)刷新,以保持數據完整。

 

 

4實(shí)驗結果和分析

圖6是用QuartusIl4.0根據2.3中設立的頭尾指針算法設計仿真出來(lái)的時(shí)序波形??梢钥闯?系統從0x000 底開(kāi)始寫(xiě)數據,當寫(xiě)入3個(gè)數據時(shí)。EndPos增加到0x003,再進(jìn)行3個(gè)數據讀操作,即StartPos增加到0x003,此時(shí),所構建的FIFO是讀空狀態(tài),可以看到讀空信號Empty在這時(shí)變?yōu)楦唠娖?,達到FIFO設計所需要求。

 

 

還需要注意:由于所采用的RAM只采用一個(gè)數據總線(xiàn)作為輸入輸出,因此在寫(xiě)數據的時(shí)候不能進(jìn)行讀操作。而常用FIFO器件可以同時(shí)讀寫(xiě)。所以.如果要在同一時(shí)間內進(jìn)行讀和寫(xiě)操作,那么需要在一個(gè)FIFO讀寫(xiě)時(shí)鐘周期內對RAM進(jìn)行讀寫(xiě)等多個(gè)操作,這時(shí)所構建的FIFO速率將降低。

此外.在與DRAM構建高速FIFO時(shí),由于存儲塊選擇需要一定時(shí)間操作,因此跨塊存儲操作在頻率較高時(shí)會(huì )影響正常的數據讀寫(xiě),出現個(gè)別數據丟失情況。而且當某段時(shí)間進(jìn)行刷新操作時(shí),有突發(fā)數據需要讀或寫(xiě),這時(shí)不允許中斷。解決這種問(wèn)題的辦法是用一個(gè)I/O引腳 (nREADY)標識出當前所構建的FIFO是否可讀寫(xiě),如果有上述情況發(fā)生,則nREADY為高,可以讀寫(xiě)時(shí)為低。

常用的FIFO器件還有半滿(mǎn)、接近滿(mǎn)、接近空等狀態(tài)指示,可以在上述構建FIFO的基礎上加上簡(jiǎn)單的邏輯控制,計算 StartPos和EndPos之間的差值,根據當前是寫(xiě)操作還是讀操作來(lái)指示。其他狀態(tài)信號也可以通過(guò)CPLD經(jīng)由邏輯運算很方便地實(shí)現。同時(shí),讀和寫(xiě)同步時(shí)鐘可以不一致。這樣就可以很方便地構成同步或者異步兩種FIFO,具有很好的可擴展性。

5 結束語(yǔ)

現在,SRAM的數據傳輸速率可以達到10 ns以?xún)?,DRAM要比SRAM稍慢一些。因此。SRAM通常用于高速緩沖存儲.而DRAM則通常用來(lái)存儲較大的數據。從成本來(lái)考慮,DRAM比SRAM成本要低得多。

采用本文給出的結構和設計思想,避免了以往主CPU接管RAM時(shí)的一系列復雜讀寫(xiě)操作,而直接類(lèi)似FIFO使用,接口簡(jiǎn)單方便,而且避開(kāi)了傳統FIFO器件容量和成本的限制。本文通過(guò)理論分析,實(shí)際電路設計調試,已成功實(shí)現用兩種不同結構的RAM構建FIFO,并應用于多個(gè)實(shí)時(shí)高速信號采集系統中。

塵埃粒子計數器相關(guān)文章:塵埃粒子計數器原理


關(guān)鍵詞: FIFO SRAM DRAM CPLD

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>