基于FPGA的一種高速圖形幀存設計

發(fā)布時(shí)間:2010-6-28 15:21    發(fā)布者:我芯依舊
關(guān)鍵詞: FPGA , 高速 , 圖形幀存
幀存是圖形處理器與顯示設備之間的數據通道,所有要顯示的圖形數據首先是存放在幀存之中,然后才送出去顯示的,因此幀存的設計是圖形顯示系統設計的一個(gè)關(guān)鍵。傳統上,可以用來(lái)設計幀存的存儲器件有多種,如DRAM、VRAM、SDRAM及SRAM等。DRAM、VRAM及SDRAM屬于動(dòng)態(tài)存儲器,容量大、價(jià)格便宜,但速度比SRAM慢,而且在使用中需要定時(shí)刷新。當圖形處理器沒(méi)有外部專(zhuān)用刷新接口時(shí),就需要設計刷新電路,這給系統設計帶來(lái)不便。SRAM器件高速且接口簡(jiǎn)單,但是價(jià)格較貴、容量小。近年來(lái),隨著(zhù)SRAM容量的不斷增大和價(jià)格的不斷下降,在一些需要高速實(shí)時(shí)顯示的圖形顯示系統中,用高速SRAM設計圖形幀存越來(lái)越普遍。本文介紹已在項目中實(shí)際應用的采用雙SRAM幀存交替切換的高速幀存設計方法。詳細介紹應用FPGA設計幀存控制器,實(shí)現幀存的交替、上電清屏及借鑒電影遮光板原理實(shí)現單幀雙掃描的方法。

1 圖形顯示系統簡(jiǎn)介

圖1是某專(zhuān)用圖形顯示系統結構框圖,圖形顯示系統采用DSP+FPGA構架。圖形處理器采用AD公司的ADSP21061芯片;AMLCD采用Korry公司的KDM710全彩色液晶顯示模塊,該模塊為5×5英寸、600×600分辨率全彩色液晶顯示模塊,24位數字RGB輸入;兩個(gè)幀存A和B采用IDT公司的71V424L10V高速異步靜態(tài)RAM(讀寫(xiě)速度為10ns)。系統采用雙幀存輪流操作方法:當DSP向其中一個(gè)幀存寫(xiě)像素時(shí),由FPGA構成的幀存控制器將另一個(gè)幀存中的像素順序讀出,送給AMLCD顯示;反之亦然。圖形顯示系統通過(guò)IDT公司的71V04雙口RAM接收主機的顯示信息。圖1中的幀存控制器和視頻控制器由Xilinx公司的SpartanII芯片XC2S50實(shí)現。 視頻控制器產(chǎn)生KDM710顯示模塊所需的一些時(shí)序控制信號:行同步信號/HSYNC、場(chǎng)同步信號/VSYNC、數據使能信號DATA_EN和像素時(shí)鐘信號DCLK等。幀存控制器產(chǎn)生24位RGB顏色數據信號,該RGB數據信號與視頻控制器中的時(shí)序控制信號相配合,在液晶顯示屏上顯示出穩定的圖形。有關(guān)視頻控制器的設計方法參見(jiàn)文獻[2]。



2 幀存控制器設計

2.1總線(xiàn)切換模塊

圖2為幀存控制器總線(xiàn)切換模塊框圖。地址總線(xiàn)通過(guò)多路選擇器(MUX)切換,所有數據總線(xiàn)通過(guò)三態(tài)門(mén)掛在SRAM的數據總線(xiàn)上。幀存SRAM的數據總線(xiàn)上掛著(zhù)三路數據:一路是DSP的數據總線(xiàn)數據;一路是FPGA的數據總線(xiàn)數據;還有一路是系統上電清屏用的背景寄存器數據?系統剛上電時(shí),幀存之中存放的是隨機數,畫(huà)面顯示的將是隨機畫(huà)面,需要將背景數據送入兩個(gè)幀存??偩(xiàn)的切換由體切換信號Sel和上電清屏信號Clear控制。幀存控制器在上電時(shí),通過(guò)上電清屏時(shí)序將兩塊幀存中寫(xiě)入背景顏色數據。在上電清屏過(guò)程中,Clear信號為高。當Clear為高時(shí),兩個(gè)地址總線(xiàn)選擇器都選擇FPGA總線(xiàn),即FPGA的地址總線(xiàn)指向兩個(gè)幀存,兩個(gè)幀存的數據總線(xiàn)全指向背景數據寄存器,即三態(tài)門(mén)1、2、3和4關(guān)閉,而三態(tài)門(mén)5和6打開(kāi)。在上電清屏時(shí)序完成之后,幀存總線(xiàn)的控制由體選擇信號Sel控制。當DSP對幀存A進(jìn)行寫(xiě)操作時(shí),FPGA所產(chǎn)生的總線(xiàn)對幀存B進(jìn)行讀操作;反之亦然。如圖2所示,當Sel為高時(shí),DSP地址總線(xiàn)選擇幀存A,三態(tài)門(mén)1打開(kāi),三態(tài)門(mén)3、5關(guān)閉;FPGA地址總線(xiàn)選擇幀存B,相應的數據總線(xiàn)三態(tài)門(mén)4打開(kāi),2、6關(guān)閉。背景寄存器中的顏色數據可以由用戶(hù)自己定義。



2.2 控制模塊

幀存控制器的控制模塊產(chǎn)生體選擇信號Sel和上電清屏時(shí)序信號Clear,控制模塊的結構框圖如圖3所示。圖中,/VSYNC是場(chǎng)同步信號,該信號經(jīng)過(guò)一個(gè)微分電路,產(chǎn)生一個(gè)像素時(shí)鐘周期寬的使能脈沖信號,控制計數器的計數使能。計數器為一模2計數器,Sel信號為場(chǎng)同步信號/VSYNC的四分頻,在出現兩個(gè)場(chǎng)同步信號之后,才切換幀存,即兩個(gè)幀存使用的順序是:AABBAA...這種控制方式類(lèi)似于電影遮光板的設計思想,使一幅畫(huà)面在屏幕上重復出現兩次,從而在25Hz的幀頻時(shí)能獲得50Hz的場(chǎng)頻,使系統視頻帶寬增加一倍。如當場(chǎng)頻50Hz時(shí),圖形處理器可以有40ms的時(shí)間處理一幀圖形數據。圖4為幀存控制時(shí)序圖,Clear信號的產(chǎn)生過(guò)程如下:系統上電時(shí),RST信號高一段時(shí)間(系統邏輯復位)后變低,在RST的下降沿,ClearA變高,此時(shí)場(chǎng)同步低電平有效信號還沒(méi)到,ClearB為高,Clear為高,系統開(kāi)始清屏時(shí)序。當對兩個(gè)幀存的清屏工作結束時(shí),場(chǎng)同步信號/VSYNC有效,該信號將"0"電平鎖存輸出,ClearB為低,Clear為低,系統開(kāi)始在Sel控制下工作。從控制模塊框圖中可以看到,Clear信號僅僅在上電復位信號RST結束時(shí)(下降沿)才變?yōu)楦,持續一個(gè)場(chǎng)周期之后,Clear信號將一直為低,把控制權交給Sel體切換信號?刂颇K的VHDL代碼及相應的時(shí)序仿真圖如圖5所示(Modelsim5.5FSE仿真器仿真)。


Entity sel_gen is

Port(clk : in std_Logic;

Rst : in std_logic;

Vsync : in std_logic;

Sel ut std_logic;

Clear : out std_logic;?

end sel_gen

architecture rtl_sel_gen of sel_gen is

signal clken : std_logic;

signal cleartemp : std_logic;

signal inputrega : std_logic;

signal inputregb : std_logic ;

signal qn : std_logic_vector(1 downto 0);

signal seltemp : std_logic;

begin

process(rst,vsync)

begin

if rst'event and rst='0' then

cleartemp <='1'?

end if;

if(vsync='0')then

cleartemp <='0';

end if;

end process;

clear<=cleartemp;

process(clk)

begin

if clk'event and clk='1'then

inputregb <= inputrega;

inputrega <= not vsync;

end if;

end process;

clken <= not inputregb and inputrega;

process (clk,rst)

begin

if (rst-'1') then

qn <= (others = >'0');

elsif clk'event and clk = '1' then

if clken='1' then

if qn = 3 then

qn <= (others =>'0')?;

else

qn <=qn +1;

end if;

end if;

end if;

seltemp <=qn(1);

end process;

sel <= seltemp;

end rtl sel gen;


3 時(shí)序分析

要使高速幀存能正常工作,必須滿(mǎn)足一定的時(shí)延要求。AMLCD是在像素時(shí)鐘的下降沿將數據鎖存,從像素時(shí)鐘的上升沿到正確的RGB圖形數據出現在A(yíng)MLCD的數據總線(xiàn)上,之間的延時(shí)T必須小于25ns(像素時(shí)鐘周期為50ns,半周期為25ns),系統才能正常工作,如圖6所示。圖中的DLL(Delay-Locked Loop)為SpartanII芯片內置的數字鎖相環(huán),Clk_top(40MHz)經(jīng)DLL二分頻后得20MHz像素時(shí)鐘。20MHz時(shí)鐘一路作為系統工作時(shí)鐘為FPGA地址計數器提供計數脈沖,一路作為像素時(shí)鐘直接送至AMLCD。從圖6可以看出,延時(shí)T包括如下幾個(gè)延時(shí):T1為Clk_top到幀存SRAM地址總線(xiàn)上地址的改變所需的延時(shí)(總線(xiàn)上各個(gè)信號的延時(shí)是不同的,T1為其中最大值);T2為幀存SRAM從地址改變到有效的數據出現在數據總線(xiàn)上所需的延時(shí);T3為FPGA讀幀存數據總線(xiàn)上的數據到輸出至AMLCD所需的延時(shí);T4為Clk_top經(jīng)DLL產(chǎn)生像素時(shí)鐘直接輸出至AMLCD所需的延時(shí)?梢钥闯鲅訒r(shí)T=T1+T2+T3-T4。系統中的幀存控制器由Xilinx公司的SparatnII 芯片XC2S50-6實(shí)現,經(jīng)過(guò)FPGA Express3.7綜合和Xilinx公司的ISE4.2I軟件布局布線(xiàn)。經(jīng)分析,布線(xiàn)后的延時(shí):T1=10.994ns、T3=10.691ns、T4=7.784ns,T2 由IS61LV5128芯片的時(shí)間參數決定,T2≤10ns,從而T≤23.901ns<25ns,滿(mǎn)足系統的時(shí)序要求。一般開(kāi)發(fā)工具所得出的時(shí)序報告是系統最壞情況下的延時(shí),實(shí)際系統中的延時(shí)將小于仿真時(shí)所得出的數據。



采用高速SRAM存儲器作為圖形幀存,用FPGA設計幀存控制器,能大大減小電路板的尺寸,增加系統的可靠性和設計靈活性?采用雙幀存交替切換及單幀雙掃技術(shù),提高了系統視頻帶寬,并能提高系統實(shí)時(shí)性,減少圖形閃爍?采用VHDL語(yǔ)言進(jìn)行FPGA設計具有方法簡(jiǎn)單、易讀和可重用性強的特點(diǎn)。該高速圖形幀存已用Xilinx公司的SpartanII系列器件XC2S50實(shí)現,并在某型飛機座艙圖形顯示系統中實(shí)際應用。
本文地址:http://selenalain.com/thread-13861-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页