基于SRAM和DRAM結(jié)構(gòu)的大容量FIFO的設(shè)計
發(fā)布時間:2008/9/1 0:00:00 訪問次數(shù):595
1 引言
。妫椋妫铮ǎ妫椋颍螅簟。椋睢。妫椋颍螅簟。铮酰簦┦且环N具有先進(jìn)先出存儲功能的部件,在高速數(shù)字系統(tǒng)當(dāng)中通常用作數(shù)據(jù)緩存。在高速數(shù)據(jù)采集、傳輸和實(shí)時顯示控制領(lǐng)域中,往往需要對大量數(shù)據(jù)進(jìn)行快速存儲和讀取,而這種先進(jìn)先出的結(jié)構(gòu)特點(diǎn)很好地適應(yīng)了這些要求,是傳統(tǒng)ram無法達(dá)到的。
許多系統(tǒng)都需要大容量fifo作為緩存,但是由于成本和容量限制,常采用多個fifo芯片級聯(lián)擴(kuò)展,這往往導(dǎo)致系統(tǒng)結(jié)構(gòu)復(fù)雜,成本高。本文分別針對hynix公司的兩款sram和dram器件,介紹了使用cpld進(jìn)行接口連接和編程控制,來構(gòu)成低成本、大容量、高速度fifo的方法。該方法具有通用性,可以方便地移植到與其他ram器件相連的應(yīng)用中去。
。病』冢螅颍幔淼脑O(shè)計與實(shí)現(xiàn)
。玻薄。螅颍幔斫Y(jié)構(gòu)芯片hy64udl6322a
靜態(tài)隨機(jī)存取存儲器sram(static random。幔悖悖澹螅蟆。恚澹恚铮颍┦且环N非常重要的易失性存儲器,它的速度非常快,并且能在快速讀取和刷新時保持?jǐn)?shù)據(jù)完整性。本系統(tǒng)sram器件采用hynix公司的hy64udl6322a。hy64udl6322a是高速、超低功耗32mbit。螅颍幔,內(nèi)部具有2 097。保担矀16。猓椋糇秩萘俊2捎昧耍悖恚铮笾圃旃に、ttl電平接口以及三態(tài)輸出,具有較大的輸入電壓和溫度范圍。同時hy64udl6322a支持dpd(deep。穑铮鳎澹颉。洌铮鳎睿┠J,保證其在待機(jī)模式下功耗進(jìn)一步降低。
。玻病∠到y(tǒng)硬件設(shè)計
整個系統(tǒng)采用cpld作為控制核心器件。cpld選用altera公司的max7128aetcl00-5。max7128基于altera公司第二代max乘積項結(jié)構(gòu),是采用cmos。澹澹穑颍铮砑夹g(shù)制造的epld,它集成了2 500個可用門,128個宏單元以及100個i/0引腳。
圖1是hy64udl6322a內(nèi)部結(jié)構(gòu)以及與cpld接口設(shè)計的系統(tǒng)連接圖。可以看出,hy64udl6322a由地址譯碼、邏輯控制模塊以及大容量存儲陣列組成。cpld接收到fifo控制信號,按照該sram讀寫時序要求完成相應(yīng)的讀寫操作,再通過所構(gòu)造fifo的數(shù)據(jù)輸入輸出和狀態(tài)控制接口返回。
。玻场≈羔?biāo)惴ǔ绦蛟O(shè)計
系統(tǒng)采用cpld作為總控制器件。根據(jù)fifo的特點(diǎn),需要將sram按地址存儲用程序控制成先進(jìn)先出的結(jié)構(gòu)。這里采用指針?biāo)惴▉韺?shí)現(xiàn)這種結(jié)構(gòu)設(shè)計:設(shè)置兩個指針變量startpos和endpos,分別作為進(jìn)入數(shù)據(jù)頭尾指針。當(dāng)有新數(shù)據(jù)寫入時,數(shù)據(jù)從上一次存儲最后位置的下一個位置開始存放,存入一個數(shù)據(jù),endpos就自動加1,保持與最后數(shù)據(jù)位置同步。當(dāng)endpos超過整個ram的最大容量(ram_size)時,就需要循環(huán)返回,從0x000位置存放,一直到endpos與startpos重合,這時可以認(rèn)為ram已經(jīng)存滿。同理,讀出數(shù)據(jù)時,起始位置startpos自動加1。當(dāng)startpos超過整個ram的最大容量時,就從0x000位置讀取,一直到startpos與endpos重合,這時可以認(rèn)為ram已經(jīng)讀空。在這兩個過程當(dāng)中,cpld需要對地址線進(jìn)行控制,不難發(fā)現(xiàn),寫數(shù)據(jù)的時候address與endpos一致,讀數(shù)據(jù)的時候address與startpos一致。圖2是整個系統(tǒng)寫和讀時序控制的流程圖。
。玻础r序控制
寫入數(shù)據(jù)的時候,cpld需要模擬fifo基本的寫操作時序:cpld接收到nwen(寫使能,低有效)和wclk(寫時鐘,上升沿有效),即當(dāng)nwen為低,wclk為上升沿時,將當(dāng)前i/o上的數(shù)據(jù)寫入。在數(shù)據(jù)寫入ram的時候,cpld應(yīng)按照hy64udl6322a的寫時序來控制寫操作。這里,cpld首先按照上述流程計算出當(dāng)前數(shù)據(jù)應(yīng)存放的地址,然后控制nwe信號,nwe為低時,數(shù)據(jù)自動寫入ram。然后再寫下一位數(shù)據(jù)。整個寫時序如圖3所示。
同理,cpud接收到nren(讀使能,低有效)和rlck(讀時鐘,上升沿有效)時,將最先寫入的數(shù)據(jù)讀出。這里,cpld首先按照讀數(shù)據(jù)流程計算出當(dāng)前讀出數(shù)據(jù)存放地址,然后控制noe信號(低電平有效),數(shù)據(jù)自動讀出ram。然后再進(jìn)行下一位數(shù)據(jù)讀
出操作。
可以看出,影響所構(gòu)建fifo讀寫速度的關(guān)鍵因素是twc,該參數(shù)也是決定hy64udl6322a速度的主要因素,因此,所構(gòu)建fi-f0的理論
。薄∫
。妫椋妫铮ǎ妫椋颍螅簟。椋睢。妫椋颍螅簟。铮酰簦┦且环N具有先進(jìn)先出存儲功能的部件,在高速數(shù)字系統(tǒng)當(dāng)中通常用作數(shù)據(jù)緩存。在高速數(shù)據(jù)采集、傳輸和實(shí)時顯示控制領(lǐng)域中,往往需要對大量數(shù)據(jù)進(jìn)行快速存儲和讀取,而這種先進(jìn)先出的結(jié)構(gòu)特點(diǎn)很好地適應(yīng)了這些要求,是傳統(tǒng)ram無法達(dá)到的。
許多系統(tǒng)都需要大容量fifo作為緩存,但是由于成本和容量限制,常采用多個fifo芯片級聯(lián)擴(kuò)展,這往往導(dǎo)致系統(tǒng)結(jié)構(gòu)復(fù)雜,成本高。本文分別針對hynix公司的兩款sram和dram器件,介紹了使用cpld進(jìn)行接口連接和編程控制,來構(gòu)成低成本、大容量、高速度fifo的方法。該方法具有通用性,可以方便地移植到與其他ram器件相連的應(yīng)用中去。
。病』冢螅颍幔淼脑O(shè)計與實(shí)現(xiàn)
。玻薄。螅颍幔斫Y(jié)構(gòu)芯片hy64udl6322a
靜態(tài)隨機(jī)存取存儲器sram(static。颍幔睿洌铮怼。幔悖悖澹螅蟆。恚澹恚铮颍┦且环N非常重要的易失性存儲器,它的速度非?,并且能在快速讀取和刷新時保持?jǐn)?shù)據(jù)完整性。本系統(tǒng)sram器件采用hynix公司的hy64udl6322a。hy64udl6322a是高速、超低功耗32mbit sram,內(nèi)部具有2 097。保担矀16。猓椋糇秩萘。采用了cmos制造工藝、ttl電平接口以及三態(tài)輸出,具有較大的輸入電壓和溫度范圍。同時hy64udl6322a支持dpd(deep power。洌铮鳎睿┠J,保證其在待機(jī)模式下功耗進(jìn)一步降低。
。玻病∠到y(tǒng)硬件設(shè)計
整個系統(tǒng)采用cpld作為控制核心器件。cpld選用altera公司的max7128aetcl00-5。max7128基于altera公司第二代max乘積項結(jié)構(gòu),是采用cmos。澹澹穑颍铮砑夹g(shù)制造的epld,它集成了2。担埃皞可用門,128個宏單元以及100個i/0引腳。
圖1是hy64udl6322a內(nèi)部結(jié)構(gòu)以及與cpld接口設(shè)計的系統(tǒng)連接圖?梢钥闯,hy64udl6322a由地址譯碼、邏輯控制模塊以及大容量存儲陣列組成。cpld接收到fifo控制信號,按照該sram讀寫時序要求完成相應(yīng)的讀寫操作,再通過所構(gòu)造fifo的數(shù)據(jù)輸入輸出和狀態(tài)控制接口返回。
。玻场≈羔?biāo)惴ǔ绦蛟O(shè)計
系統(tǒng)采用cpld作為總控制器件。根據(jù)fifo的特點(diǎn),需要將sram按地址存儲用程序控制成先進(jìn)先出的結(jié)構(gòu)。這里采用指針?biāo)惴▉韺?shí)現(xiàn)這種結(jié)構(gòu)設(shè)計:設(shè)置兩個指針變量startpos和endpos,分別作為進(jìn)入數(shù)據(jù)頭尾指針。當(dāng)有新數(shù)據(jù)寫入時,數(shù)據(jù)從上一次存儲最后位置的下一個位置開始存放,存入一個數(shù)據(jù),endpos就自動加1,保持與最后數(shù)據(jù)位置同步。當(dāng)endpos超過整個ram的最大容量(ram_size)時,就需要循環(huán)返回,從0x000位置存放,一直到endpos與startpos重合,這時可以認(rèn)為ram已經(jīng)存滿。同理,讀出數(shù)據(jù)時,起始位置startpos自動加1。當(dāng)startpos超過整個ram的最大容量時,就從0x000位置讀取,一直到startpos與endpos重合,這時可以認(rèn)為ram已經(jīng)讀空。在這兩個過程當(dāng)中,cpld需要對地址線進(jìn)行控制,不難發(fā)現(xiàn),寫數(shù)據(jù)的時候address與endpos一致,讀數(shù)據(jù)的時候address與startpos一致。圖2是整個系統(tǒng)寫和讀時序控制的流程圖。
。玻础r序控制
寫入數(shù)據(jù)的時候,cpld需要模擬fifo基本的寫操作時序:cpld接收到nwen(寫使能,低有效)和wclk(寫時鐘,上升沿有效),即當(dāng)nwen為低,wclk為上升沿時,將當(dāng)前i/o上的數(shù)據(jù)寫入。在數(shù)據(jù)寫入ram的時候,cpld應(yīng)按照hy64udl6322a的寫時序來控制寫操作。這里,cpld首先按照上述流程計算出當(dāng)前數(shù)據(jù)應(yīng)存放的地址,然后控制nwe信號,nwe為低時,數(shù)據(jù)自動寫入ram。然后再寫下一位數(shù)據(jù)。整個寫時序如圖3所示。
同理,cpud接收到nren(讀使能,低有效)和rlck(讀時鐘,上升沿有效)時,將最先寫入的數(shù)據(jù)讀出。這里,cpld首先按照讀數(shù)據(jù)流程計算出當(dāng)前讀出數(shù)據(jù)存放地址,然后控制noe信號(低電平有效),數(shù)據(jù)自動讀出ram。然后再進(jìn)行下一位數(shù)據(jù)讀
出操作。
可以看出,影響所構(gòu)建fifo讀寫速度的關(guān)鍵因素是twc,該參數(shù)也是決定hy64udl6322a速度的主要因素,因此,所構(gòu)建fi-f0的理論
熱門點(diǎn)擊
- 斷路器的分?jǐn)嗄芰?/a>
- HRW11-10/YH5WS1-17/30型
- 工控主板和工控液晶屏選用實(shí)例
- VAV空調(diào)系統(tǒng)工程實(shí)施方案比較
- 小型斷路器的發(fā)展與應(yīng)用
- 如何正確操作跌落式熔斷器
- 485集線器的成功應(yīng)用
- 伺服電機(jī)原理
- 110 kV無源型磁光電流互感器
- ZW—12/630型戶外高壓真空斷路器的改進(jìn)
推薦技術(shù)資料
- 自制經(jīng)典的1875功放
- 平時我也經(jīng)常逛一些音響DIY論壇,發(fā)現(xiàn)有很多人喜歡LM... [詳細(xì)]
- 100A全集成電源模塊R
- Teseo-VIC6A GNSS車用精準(zhǔn)定位
- 高效先進(jìn)封裝工藝
- 模數(shù)轉(zhuǎn)換器 (Analog-to-Digit
- 集成模數(shù)轉(zhuǎn)換器(ADC)
- 128 通道20 位電流數(shù)字轉(zhuǎn)換器̴
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究