• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的雙端口視頻緩沖器設(shè)計

      2014-02-02 08:45:58
      液晶與顯示 2014年4期
      關(guān)鍵詞:緩沖器仲裁時鐘

      唐 斌

      (貴州財經(jīng)大學(xué) 信息學(xué)院,貴州 貴陽 550025)

      1 引 言

      在多數(shù)的基于FPGA(Field Programmable Gate Arrays)的視頻處理系統(tǒng)中,通常需要使用片外大容量存儲器SDRAM(Synchronous Dynamic Random Access Memory)緩存海量視頻資料[1-2]。同時為了確保視頻流的流暢性,甚至使用多塊SDRAM內(nèi)存和大容量的FIFO(First In First Out)實現(xiàn)乒乓操作以提高讀寫速度[3]。為了節(jié)省內(nèi)存資源和提高系統(tǒng)的數(shù)據(jù)帶寬,本文設(shè)計了一種基于FPGA的視頻緩沖器,系統(tǒng)使用FPGA片內(nèi)4塊小容量的FIFO構(gòu)成雙端口緩沖器,在仲裁器合理的調(diào)度下,采用單塊SDRAM實現(xiàn)了視頻數(shù)據(jù)的實時采集和輸出。

      2 系統(tǒng)結(jié)構(gòu)和工作原理

      本文的雙端口視頻緩沖器采用FPGA和SDRAM構(gòu)成,系統(tǒng)的結(jié)構(gòu)如圖1所示。由于系統(tǒng)的輸入視頻和輸出視頻像素時鐘可能不同,需要使用FPGA片內(nèi)存儲資源構(gòu)建FIFO完成跨時鐘域視頻數(shù)據(jù)的采集和輸出。由于FPGA片內(nèi)存儲器資源有限,為了確保視頻流的流暢性,還需要借助片外存儲器與FPGA構(gòu)建視頻緩沖器。本系統(tǒng)采用SDRAM暫存采集的海量視頻數(shù)據(jù),并將其內(nèi)存儲單元分成兩塊分別緩存兩幀不同視頻數(shù)據(jù),以乒乓方式完成一幀數(shù)據(jù)的輸入和一幀數(shù)據(jù)的輸出。

      圖1 系統(tǒng)方框圖Fig.1 Block diagram of video processing system

      在本系統(tǒng)中,所采集的視頻數(shù)據(jù)來源于攝像頭OV7670,其時鐘頻率為25 MHz,視頻數(shù)據(jù)采用RGB565格式,因此采集模塊的數(shù)據(jù)帶寬為400 Mbit/s;而顯示模塊VGA的數(shù)據(jù)帶寬則是400 Mbit/s (16 bits×25 MHz)。SDRAM的工作時鐘頻率選擇為100 MHz,其數(shù)據(jù)帶寬為1 600 Mbit/s (16 bits×100 MHz),因此在理論上整個系統(tǒng)可以使用單存儲器實現(xiàn)一路視頻數(shù)據(jù)的實時采集和顯示。由于SDRAM不支持同時讀寫功能,而整個系統(tǒng)可能會同時存在讀、寫和刷新3種操作請求,因此還需要仲裁器分配SDRAM的總線使用權(quán)。

      3 模塊設(shè)計

      3.1 SDRAM控制器設(shè)計

      SDRAM存儲器具有高速度、大容量和高性價比等優(yōu)點,廣泛應(yīng)用于數(shù)據(jù)采集和處理系統(tǒng)中[1]。盡管SDRAM具有高速度優(yōu)點,但其實際帶寬往往低于其理論帶寬。原因有兩個:一是SDRAM是利用電容存取電荷的原理保存信息,由于電容介質(zhì)存在漏電現(xiàn)象,因此需要周期刷新保持?jǐn)?shù)據(jù),而在刷新周期中不允許讀寫SDRAM,因此刷新會降低其實際帶寬;二是因為SDRAM的行列地址線采用復(fù)用方式,每次讀寫數(shù)據(jù)操作都分為行地址準(zhǔn)備和數(shù)據(jù)操作兩個階段,分別消耗時間長度為TREADY和TOPERATE。在列地址準(zhǔn)備階段,需要發(fā)出激活命令,提供讀寫單元的行地址,等待TRCD時間后進(jìn)入數(shù)據(jù)操作階段[1]。對于寫操作,數(shù)據(jù)操作階段發(fā)出寫命令,同時提供讀寫單元的列地址和待寫入的數(shù)據(jù);對于讀操作則需要在發(fā)出第一個讀命令和列地址后等待TCAS時間才能讀取數(shù)據(jù)。因此SDRAM的實際帶寬為:

      (1)

      SDRAM的讀寫機(jī)制比較復(fù)雜,支持激活和預(yù)充電等諸多操作命令[1]。為了簡化SDRAM的操作,本系統(tǒng)的SDRAM控制器只選取了激活、預(yù)充電、自刷新、空閑、模式寄存器配置、讀和寫等7條指令。為了簡化SDRAM的讀寫操作,SDRAM的操作時序封裝在控制器中,外設(shè)只需提高讀寫數(shù)據(jù)的起始地址和讀寫使能信號就能讀寫SDRAM存儲器。同時為了提高SDRAM的實際帶寬,控制器采用分塊連續(xù)讀寫方式增大操作時間TOPERATE。SDRAM控制器由外設(shè)接口電路、初始化狀態(tài)機(jī)、地址計數(shù)器、命令字解析電路和SDRAM物理接口電路構(gòu)成。其工作時序如圖2所示,具體工作機(jī)制為:在SDRAM初始化時,將其猝發(fā)長度設(shè)置為1,對于讀寫數(shù)據(jù)長度為N的數(shù)據(jù)都分解為N次猝發(fā)長度設(shè)置為1的讀寫操作。當(dāng)外設(shè)提出讀寫請求時,只需提供一幀視頻數(shù)據(jù)的起始地址,命令字解析電路(使用狀態(tài)機(jī)實現(xiàn))發(fā)出行激活命令后給出兩條空操作命令,在T4周期啟動地址計數(shù)器準(zhǔn)備讀寫數(shù)據(jù)的列地址并給出第一個讀或?qū)懨?,N個數(shù)據(jù)讀或?qū)懨钔瓿珊?,發(fā)出預(yù)充電命令關(guān)閉當(dāng)前行完成一次數(shù)據(jù)塊的連續(xù)讀寫,因此一次數(shù)據(jù)塊的讀寫時間固定為(N+4)/Tsclk。(Tsclk為SDRAM控制器時鐘周期)。為了降低地址計數(shù)器和命令字解析電路的復(fù)雜度,數(shù)據(jù)長度N和SDRAM行長度L須設(shè)置為L=K×N(K為整數(shù)),以防出現(xiàn)跨行讀寫現(xiàn)象。

      圖2 讀寫時序圖Fig.2 Diagram of reading or writing timing

      3.2 FIFO設(shè)計

      本系統(tǒng)使用兩塊小容量的異步FIFO和同步FIFO串聯(lián)實現(xiàn)跨時鐘域視頻數(shù)據(jù)的傳輸,F(xiàn)IFO由FPGA中免費的IP核生成。對于寫緩存器而言,異步FIFO與視頻采集模塊連接,其寫端口的時鐘與視頻采集模塊的像素時鐘相同,讀端口的時鐘與SDRAM的工作時鐘相同,其主要功能是實現(xiàn)跨時鐘域數(shù)據(jù)的緩沖[4];同步FIFO與SDRAM控制器直接連接,工作時鐘與異步FIFO的讀端口時鐘一致,為了支持SDRAM控制器的分塊讀寫機(jī)制,將其深度和寬度設(shè)置成數(shù)據(jù)塊的規(guī)格,待傳輸?shù)臄?shù)據(jù)將被切成固定大小的數(shù)據(jù)塊。為確保數(shù)據(jù)塊的大小固定不變,禁止對同步FIFO進(jìn)行同時讀寫操作。

      讀緩存器的設(shè)計與寫緩存器稍有不同,同步FIFO連接的是顯示模塊,其工作時鐘與顯示模塊相同,主要功能是預(yù)存待顯示的視頻數(shù)據(jù)。異步FIFO 則與SDRAM控制器相連,讀端口采用顯示模塊的工作時鐘,為確保寫端口數(shù)據(jù)有足夠的建立時間和保持時間[5],工作時鐘頻率SDRAM工作時鐘相同,但相位相差180°。同樣為了支持SDRAM控制器的分塊讀寫機(jī)制,將其寬度設(shè)置成數(shù)據(jù)塊的大小,但深度設(shè)置為數(shù)據(jù)塊深度的2倍。異步FIFO的主要功能是實現(xiàn)跨時鐘域視頻數(shù)據(jù)的緩沖。在同步FIFO未寫滿的情況下,異步FIFO中的數(shù)據(jù)直通同步FIFO。

      3.3 仲裁器設(shè)計

      由于SDRAM的總線采用分時復(fù)用方式,不支持同時讀、寫和刷新功能,為了確保視頻流的流暢性,需要合理分配SDRAM的總線使用權(quán)。常用的仲裁方法有固定優(yōu)先級、隨機(jī)爭用和優(yōu)先級循環(huán)等算法[5]。如果采用固定優(yōu)先級算法時可能會出現(xiàn)讀請求長時間占用總線風(fēng)險而導(dǎo)致寫緩存溢出,或是寫請求長時間占用總線風(fēng)險而導(dǎo)致讀緩存無數(shù)據(jù)可讀。而采用優(yōu)先級循環(huán)算法可能導(dǎo)致刷新命令不能及時得到響應(yīng)造成數(shù)據(jù)丟失。綜上考慮后,本系統(tǒng)采用固定優(yōu)先級算法和優(yōu)先級循環(huán)算法相結(jié)合的混合算法,該算法可以實現(xiàn)讀請求、寫請求優(yōu)先級循環(huán)變換,刷新請求優(yōu)先級設(shè)置為最高。

      圖3 仲裁器電路圖Fig.3 Diagram of arbitrator circuit

      視頻緩沖器可以結(jié)合行、場同步信號的特點使用。同步信號的周期一般由同步頭、消隱前肩、有效顯示時間和消隱后肩等4部分構(gòu)成[6]。場同步頭可以用來啟動新一幀視頻數(shù)據(jù)的采集和輸出并復(fù)位視頻緩沖器。在整個行同步的周期內(nèi),只要異步FIFO讀空,便產(chǎn)生讀請求信號;寫緩沖器則在行同步和場同步信號均有效期間采集外設(shè)數(shù)據(jù),寫緩沖器的同步FIFO寫滿時,將產(chǎn)生寫請求信號;而刷新請求信號則由計數(shù)器產(chǎn)生,由于在讀寫數(shù)據(jù)期間不能響應(yīng)刷新請求信號。為了解決這個問題,本系統(tǒng)采用了兩種方法:一是將刷新請求優(yōu)先級設(shè)置成最高,讀和寫請求優(yōu)先級設(shè)置成相等。二是將刷新周期縮短(N+10)×Tsclk時間,縮短的時間可以確保完成讀或?qū)懭蝿?wù)后再執(zhí)行刷新操作而不造成數(shù)據(jù)丟失。

      仲裁器電路如圖3所示,當(dāng)有刷新請求時關(guān)閉兩個與門屏蔽掉讀、寫請求,因此刷新請求優(yōu)先級最高??刂破鞯墓δ苤皇菍崿F(xiàn)數(shù)據(jù)選擇器輪流查詢3個請求信號;之二是在某個請求獲得使用SDRAM總線的使用權(quán)時,禁止其他信號的請求(即不支持中斷),讀、寫任務(wù)或刷新任務(wù)執(zhí)行過程中控制器關(guān)閉數(shù)據(jù)選擇器。任務(wù)完成后釋放總線,然后控制器打開數(shù)據(jù)選擇器查詢下一個請求信號,如果請求有效,對其授權(quán)總線使用權(quán),否則繼續(xù)查詢下一個請求信號。

      3.4 設(shè)計仿真

      為了防止視頻緩沖器出現(xiàn)讀空和寫滿錯誤,在設(shè)計電路時需要對視頻的流暢性分析以選定合適的參數(shù)。影響視頻流暢性的因素有:

      (1)讀緩沖器的時鐘周期Trclk、寫緩沖器時鐘周期Twclk和SDRAM系統(tǒng)時鐘周期Tsclk。三者的時鐘周期必須確保SDRAM帶寬大于讀寫緩沖器帶寬之和。

      (2)仲裁器的切換時間。盡量壓縮仲裁器的切換時間,本系統(tǒng)仲裁器的切換時間為3個時鐘周期。

      (3)行同步信號的消隱前肩和后肩。視頻數(shù)據(jù)的采集和輸出一般在行同步信號的有效顯示期間,但讀緩沖器可以充分利用額外的行消隱前肩和后肩時間預(yù)讀取視頻數(shù)據(jù),而寫緩沖器可以利用額外的行消隱前肩和后肩時間保存數(shù)據(jù)。

      (4)讀緩沖器的同步FIFO的容量和寫緩沖器中異步FIFO的容量。兩個FIFO容量的選取須考慮最壞情況。以寫緩沖的異步FIFO為例,如果同時存在讀、寫和刷新請求,但寫請求優(yōu)先級最低,此時異步FIFO 需要緩存數(shù)據(jù)以等待SDRAM完成刷新和寫任務(wù),容量必須大于(N+18)Tsclk/Twclk。寫緩沖獲得總線后,由于本系統(tǒng)不支持同步FIFO同時讀寫,此時異步FIFO容量應(yīng)大于(2N+25)Tsclk/Twclk。寫操作結(jié)束后釋放總線等待讀任務(wù)執(zhí)行,此時容量應(yīng)該大于(2N+25)Tsclk/Twclk+ (N+7)Tsclk/Trclk-N。

      最后本文根據(jù)上述分析對相關(guān)參數(shù)進(jìn)行設(shè)置,并對設(shè)計的視頻緩沖器進(jìn)行了仿真。仿真軟件采用的是XILINX[7]的ISE12.4,片外存儲器SDRAM的仿真模型選用的是MT48LC8-M16A2,其工作時鐘頻率根據(jù)初步選擇為100 MHz,F(xiàn)PGA采用的是SPARTAN3系列中的XC3S1200E芯片。數(shù)據(jù)塊設(shè)置為固定的64×16 bit格式,在仿真的過程中FIFO的寬度固定為16位,寫緩沖器的同步FIFO容量與數(shù)據(jù)塊相同,讀緩沖器的異步FIFO容量設(shè)定為數(shù)據(jù)塊的兩倍。其余FIFO的容量根據(jù)實驗結(jié)果調(diào)整為數(shù)據(jù)塊的整數(shù)倍。攝像頭OV7670和VGA分別作為輸入和輸出模塊,工作時鐘頻率都選擇為25 MHz,視頻數(shù)據(jù)采用640×480格式。最后實驗仿真結(jié)果如表1所示。

      仿真結(jié)果表明:對于寫緩沖器而言,使用兩個容量為128字節(jié)的FIFO就足夠保證采集的視頻數(shù)據(jù)傳輸無丟失錯誤,增加異步FIFO的容量不能繼續(xù)提高系統(tǒng)的帶寬;對于讀緩沖而言,影響其性能的主要部件是同步FIFO的容量,適當(dāng)?shù)卦黾悠髌淙萘靠梢越档蚐DRAM工作時鐘的頻率。當(dāng)讀寫緩沖器的容量為640字節(jié)時,SDRAM工作頻率須大于110 MHz;當(dāng)讀寫緩沖器的容量為768字節(jié)時,SDRAM工作頻率只需大于71 MHz。用戶可以根據(jù)實際需要在系統(tǒng)穩(wěn)定性和FPGA片內(nèi)存儲器資源之間選擇。

      表1 仿真結(jié)果表

      4 結(jié) 論

      使用FPGA 2塊片內(nèi)同步FIFO和2塊異步FIFO結(jié)合片外存儲器SDRAM構(gòu)成了一個雙端口視頻緩沖器。利用FIFO傳輸跨時鐘域數(shù)據(jù)的傳輸,并將數(shù)據(jù)切成固定大小的數(shù)據(jù)塊以支持SDRAM的分塊讀寫數(shù)據(jù)機(jī)制,在仲裁器的合理調(diào)度下,使用單塊存儲器SDRAM實現(xiàn)了視頻數(shù)據(jù)的實時采集和輸出。同時本系統(tǒng)的設(shè)計和調(diào)試簡單,用戶在保證視頻流的流暢性的前提下可以通過提高系統(tǒng)的工作時鐘減少異步FIFO容量,降低FPGA片上存儲資源的使用量;或是在增加FIFO的容量可以降低SDRAM的工作時鐘而提高系統(tǒng)的穩(wěn)定性。因此本設(shè)計具有一定的靈活性和高效率,在視頻圖像處理工程中具有一定的參考價值。

      [1] 王騫,丁鐵夫.高速圖像存儲系統(tǒng)中SDRAM控制器的實現(xiàn)[J].液晶與顯示,2006,21(1):48-51.

      Wang Q,Ding T F. Realization of SDRAM controller in high-speed image storing system [J].ChineseJournalofLiquidCrystalsandDisplays,2006,21(1):48-51.( in Chinese)

      [2] 吉倩倩,蘇光大,向守兵.嵌入式鄰域圖像并行處理機(jī)的液晶顯示系統(tǒng)設(shè)計[J].液晶與顯示,2011,26(6):768-773.

      Ji Q Q,Su G D,Xiang S B. Design of LCD display system of embedded neighborhood image parallel computer[J].ChineseJournalofLiquidCrystalsandDisplays,2011,26(6):768-773. (in Chinese)

      [3] 呂耀文,王建立,曹景太,等.移動便攜圖像存儲系統(tǒng)的設(shè)計[J].液晶與顯示,2012,27(5):697-702.

      Lv Y W,Wang J L,Cao J T,etal. Design of portable image storage system [J].ChineseJournalofLiquidCrystalsandDisplays,2012,27(5):697-702. (in Chinese)

      [4] 劉少華,陳明義. 基于FPGA的高速海量FIFO的設(shè)計[J].信息技術(shù),2009,33(9):52-54.

      Liu S H,Chen M Y. Design of high speed and great capacity FIFO based on FPGA [J].InformationTechnology,2009,33(9):52-54.(in Chinese)

      [5] 李耀榮,王興軍,梁利平.SOC總線仲裁算法的研究[J].微計算機(jī)信息,2007,6(2):113-115.

      Li Y R,Wang X J,Liang L P. Researchon SOC bus arbitration algorithm [J].MicrocomputerInformation,2007,6(2):113-115. (in Chinese)

      [6] 王鳴浩,吳小霞.基于FPGA的通用液晶顯示控制器的設(shè)計與實現(xiàn)[J].液晶與顯示,2012,27(1):87-88.

      Wang M H,Wu X X.Design and realization of general LCD controller base on FPGA [J].ChineseJournalofLiquidCrystalsandDisplays,2012,27(1):87-88. (in Chinese)

      [7] 田耕,徐文波,胡彬. Xilinx ISE Design Suite 10.X FPGA開發(fā)指南[M].北京:人民郵電出版社,2008.

      Tian G,Xu W B,Hu B.XilinxISEdesignsuite10.XFPGAdevelopmentguide[M]. Beijing:Post &Telecom Press,2008.

      猜你喜歡
      緩沖器仲裁時鐘
      更正
      輕兵器(2022年3期)2022-03-21 08:37:28
      別樣的“時鐘”
      重載貨車用緩沖器選型的研究及分析
      鐵道車輛(2021年4期)2021-08-30 02:07:14
      古代的時鐘
      一種多通道共享讀寫SDRAM的仲裁方法
      電子制作(2018年19期)2018-11-14 02:36:44
      ICSID仲裁中的有效解釋原則:溯源、適用及其略比
      有趣的時鐘
      時鐘會開“花”
      兩岸四地間相互執(zhí)行仲裁裁決:過去、現(xiàn)在及將來(上)
      仲裁研究(2015年4期)2015-04-17 02:56:33
      面向TIA和緩沖器應(yīng)用的毫微微安偏置電流運放可實現(xiàn)500MHz增益帶寬
      博白县| 洛浦县| 九江县| 绥宁县| 德昌县| 古丈县| 石渠县| 开阳县| 康保县| 阿克苏市| 资讯 | 彩票| 东乌珠穆沁旗| 阳春市| 班戈县| 桂林市| 青河县| 阿克苏市| 大足县| 上蔡县| 北辰区| 武邑县| 永平县| 龙川县| 德钦县| 南开区| 高唐县| 金川县| 称多县| 教育| 万盛区| 海兴县| 准格尔旗| 珲春市| 巨鹿县| 闵行区| 乌拉特前旗| 肇州县| 延长县| 盐源县| 彰武县|