<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于FPGA的FIFO設(shè)計(jì)和應(yīng)用

          基于FPGA的FIFO設(shè)計(jì)和應(yīng)用

          作者: 時(shí)間:2009-11-12 來(lái)源:網(wǎng)絡(luò) 收藏
          引 言
          在利用DSP實(shí)現(xiàn)視頻實(shí)時(shí)跟蹤時(shí),需要進(jìn)行大量高速的圖像采集。而DSP本身自帶的并不足以支持系統(tǒng)中大量數(shù)據(jù)的暫時(shí)存儲(chǔ),這就要求大的中間緩存,而專用的高速芯片價(jià)格昂貴且容量受限,大大增加了商業(yè)成本,因此在實(shí)際應(yīng)用中尋找代替器件是很有必要的。

          1 器件選擇
          這里在視頻信號(hào)處理系統(tǒng)中,將利用作為橋梁,實(shí)現(xiàn)對(duì)SDRAM的控制,以達(dá)到大量高速存取數(shù)據(jù)的功能。之所以選取SDRAM,主要是因?yàn)樵诟鞣N隨機(jī)存取器件中,SDRAM的容量較大,價(jià)格較低,且數(shù)據(jù)突發(fā)傳輸模式大大提高了存取速度,能夠滿足應(yīng)用的要求。
          FIFO的速度受到兩個(gè)因素的限制:
          (1)SDRAM的最高工作頻率。SDRAM的工作頻率越高,數(shù)據(jù)的傳輸速率就越高;
          (2)SDRAM的突發(fā)長(zhǎng)度。SDRAM的突發(fā)長(zhǎng)度越長(zhǎng),對(duì)數(shù)據(jù)流的吞吐量就越大,可以從某種程度上提高數(shù)據(jù)的傳輸速率。
          FIFO的大小由所選SDRAM芯片的容量來(lái)決定。該設(shè)計(jì)以采用MICRON公司的MT48LC4M3282(4 BANK×4M×32 b)為例,存儲(chǔ)容量為128 Mb,數(shù)據(jù)帶寬為32位,內(nèi)部由4個(gè)BANK組成,每個(gè)BANK有4 096行和256列。
          MT48LC4M3282的控制信號(hào)有CLK(時(shí)鐘信號(hào))、CKE(時(shí)鐘使能)、CS(片選信號(hào))、WE(寫(xiě)使能)、CAS(列有效)、RAS(行有效)、DQM0~DQM3(輸入輸出使能)??刂菩盘?hào)組成的常用控制命令如表1所示。

          本文引用地址:http://www.ex-cimer.com/article/188521.htm

          2 FIFO系統(tǒng)設(shè)計(jì)
          FIFO系統(tǒng)由FGPA和SDRAM兩部分組成。其中,F(xiàn)GPA內(nèi)部包含F(xiàn)IFO監(jiān)控器、緩沖器、SDRAM控制器三個(gè)模塊。FIFO監(jiān)控器的作用是將FIFO的狀態(tài)轉(zhuǎn)變成狀態(tài)機(jī)的讀、寫(xiě)信號(hào)。若操作為向SDRAM寫(xiě)數(shù)據(jù),則在FIFO已滿時(shí),F(xiàn)IFO監(jiān)控器送出一個(gè)信號(hào),以阻止寫(xiě)操作繼續(xù)向FIFO中寫(xiě)數(shù)據(jù)而造成溢出;若操作為向SDRAM讀數(shù)據(jù),則在緩沖器已空時(shí),F(xiàn)IFO監(jiān)控器送出一個(gè)信號(hào),以阻止讀操作繼續(xù)從FIFO中讀數(shù)據(jù)而造成無(wú)效數(shù)據(jù)的讀出。FIFO的模塊結(jié)構(gòu)如圖1所示。

          在該設(shè)計(jì)中,攝像頭采用640×480的屏幕分辨率,圖像深度為8,每秒為25幀,圖像數(shù)據(jù)量的大小為圖像中像素總數(shù)與圖像深度的乘積,由此可以得出每幀圖像的大小為2.457 Mb,每秒鐘視頻產(chǎn)生數(shù)據(jù)的大小為61.44 Mb。因?yàn)橄到y(tǒng)向SDRAM控制器寫(xiě)入和讀出數(shù)據(jù)的速度比較低,約為62 MHz,的外接晶振CLK為27 MHz,和SDRAM的工作時(shí)鐘由鎖相環(huán)4倍頻后生成,即為108 MHz,所以SDRAM控制器向SDRAM寫(xiě)入和讀出數(shù)據(jù)的速率為108 MHz,因此二者屬于不同的時(shí)鐘域,需要用緩沖器作為輸入和輸出的緩存。
          SDRAM控制器的模塊結(jié)構(gòu)如圖2所示,其中SDRAM控制器內(nèi)部包括:初始化模塊、模式寄存器、控制模塊和狀態(tài)機(jī)。SDRAM的接口設(shè)計(jì)是極其關(guān)鍵的,可根據(jù)SDRAM內(nèi)部操作狀態(tài)之間的聯(lián)系,通過(guò)狀態(tài)機(jī)來(lái)實(shí)現(xiàn)接口設(shè)計(jì)。初始化模塊負(fù)責(zé)SDRAM的初始化,在上電和時(shí)鐘穩(wěn)定后等待100 ms,至少執(zhí)行一條空操作,然后對(duì)所有頁(yè)執(zhí)行預(yù)充電操作,使所有頁(yè)處于空閑狀態(tài),接著向各頁(yè)發(fā)出兩條刷新操作指令,最后發(fā)出一個(gè)模式寄存器裝載命令,使SDRAM有確定的狀態(tài)進(jìn)行讀寫(xiě)操作。模式寄存器可根據(jù)要求對(duì)SDRAM的突發(fā)長(zhǎng)度、突發(fā)類型、CAS延時(shí)的時(shí)鐘數(shù)、運(yùn)行模式和寫(xiě)突發(fā)模式進(jìn)行設(shè)置,確定SDRAM在讀寫(xiě)操作時(shí)的工作狀態(tài)。模式寄存器M0~M2用于規(guī)定突發(fā)長(zhǎng)度,可以為1,2,4,8。M3用于規(guī)定突發(fā)類型,當(dāng)M3=0時(shí),突發(fā)類型是連續(xù)的;當(dāng)M3=1時(shí),突發(fā)類型是交錯(cuò)的。M4~M6用于規(guī)定CAS延遲的時(shí)鐘周期數(shù),可以分為1,2,3。M7,M8用于規(guī)定運(yùn)行模式。M9用于規(guī)定寫(xiě)突發(fā)模式,當(dāng)M9=0時(shí),按實(shí)際編程的突發(fā)長(zhǎng)度存??;當(dāng)M9=1時(shí),按單個(gè)存取單元寫(xiě)入,但可按實(shí)際編程的突發(fā)長(zhǎng)度讀出。


          上一頁(yè) 1 2 下一頁(yè)

          關(guān)鍵詞: FPGA FIFO

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();