幀存是圖形處理器與顯示設(shè)備之間的數(shù)據(jù)通道,所有要顯示的圖形數(shù)據(jù)首先是存放在幀存之中,然后才送出去顯示的,因此幀存的設(shè)計(jì)是圖形顯示系統(tǒng)設(shè)計(jì)的一個(gè)關(guān)鍵。傳統(tǒng)上,可以用來(lái)設(shè)計(jì)幀存的存儲(chǔ)器件有多種,如DRAM、VRAM、SDRAM及SRAM等。DRAM、VRAM及SDRAM屬于動(dòng)態(tài)存儲(chǔ)器,容量大、價(jià)格便宜,但速度比SRAM慢,而且在使用中需要定時(shí)刷新。當(dāng)圖形處理器沒(méi)有外部專(zhuān)用刷新接口時(shí),就需要設(shè)計(jì)刷新電路,這給系統(tǒng)設(shè)計(jì)帶來(lái)不便。SRAM器件高速且接口簡(jiǎn)單,但是價(jià)格較貴、容量小。近年來(lái),隨著SRAM容量的不斷增大和價(jià)格的不斷下降,在一些需要高速實(shí)時(shí)顯示的圖形顯示系統(tǒng)中,用高速SRAM設(shè)計(jì)圖形幀存越來(lái)越普遍。本文介紹已在項(xiàng)目中實(shí)際應(yīng)用的采用雙SRAM幀存交替切換的高速幀存設(shè)計(jì)方法。詳細(xì)介紹應(yīng)用FPGA設(shè)計(jì)幀存控制器,實(shí)現(xiàn)幀存的交替、上電清屏及借鑒電影遮光板原理實(shí)現(xiàn)單幀雙掃描的方法。
1 、圖形顯示系統(tǒng)簡(jiǎn)介
圖1是某專(zhuān)用圖形顯示系統(tǒng)結(jié)構(gòu)框圖,圖形顯示系統(tǒng)采用DSP+FPGA構(gòu)架。圖形處理器采用AD公司的ADSP21061芯片;AMLCD采用Korry公司的KDM710全彩色液晶顯示模塊,該模塊為5×5英寸、600×600分辨率全彩色液晶顯示模塊,24位數(shù)字RGB輸入;兩個(gè)幀存A和B采用IDT公司的71V424L10V高速異步靜態(tài)RAM(讀寫(xiě)速度為10ns)。系統(tǒng)采用雙幀存輪流操作方法:當(dāng)DSP向其中一個(gè)幀存寫(xiě)像素時(shí),由FPGA構(gòu)成的幀存控制器將另一個(gè)幀存中的像素順序讀出,送給AMLCD顯示;反之亦然。圖形顯示系統(tǒng)通過(guò)IDT公司的71V04雙口RAM接收主機(jī)的顯示信息。圖1中的幀存控制器和視頻控制器由Xilinx公司的SpartanII芯片XC2S50實(shí)現(xiàn)。 視頻控制器產(chǎn)生KDM710顯示模塊所需的一些時(shí)序控制信號(hào):行同步信號(hào)/HSYNC、場(chǎng)同步信號(hào)/VSYNC、數(shù)據(jù)使能信號(hào)DATA_EN和像素時(shí)鐘信號(hào)DCLK等。幀存控制器產(chǎn)生24位RGB顏色數(shù)據(jù)信號(hào),該RGB數(shù)據(jù)信號(hào)與視頻控制器中的時(shí)序控制信號(hào)相配合,在液晶顯示屏上顯示出穩(wěn)定的圖形。
2 、幀存控制器設(shè)計(jì)
2.1總線切換模塊
圖2為幀存控制器總線切換模塊框圖。地址總線通過(guò)多路選擇器(MUX)切換,所有數(shù)據(jù)總線通過(guò)三態(tài)門(mén)掛在SRAM的數(shù)據(jù)總線上。幀存SRAM的數(shù)據(jù)總線上掛著三路數(shù)據(jù):一路是DSP的數(shù)據(jù)總線數(shù)據(jù);一路是FPGA的數(shù)據(jù)總線數(shù)據(jù);還有一路是系統(tǒng)上電清屏用的背景寄存器數(shù)據(jù)系統(tǒng)剛上電時(shí),幀存之中存放的是隨機(jī)數(shù),畫(huà)面顯示的將是隨機(jī)畫(huà)面,需要將背景數(shù)據(jù)送入兩個(gè)幀存。總線的切換由體切換信號(hào)Sel和上電清屏信號(hào)Clear控制。幀存控制器在上電時(shí),通過(guò)上電清屏?xí)r序?qū)蓧K幀存中寫(xiě)入背景顏色數(shù)據(jù)。在上電清屏過(guò)程中,Clear信號(hào)為高。當(dāng)Clear為高時(shí),兩個(gè)地址總線選擇器都選擇FPGA總線,即FPGA的地址總線指向兩個(gè)幀存,兩個(gè)幀存的數(shù)據(jù)總線全指向背景數(shù)據(jù)寄存器,即三態(tài)門(mén)1、2、3和4關(guān)閉,而三態(tài)門(mén)5和6打開(kāi)。在上電清屏?xí)r序完成之后,幀存總線的控制由體選擇信號(hào)Sel控制。當(dāng)DSP對(duì)幀存A進(jìn)行寫(xiě)操作時(shí),F(xiàn)PGA所產(chǎn)生的總線對(duì)幀存B進(jìn)行讀操作;反之亦然。如圖2所示,當(dāng)Sel為高時(shí),DSP地址總線選擇幀存A,三態(tài)門(mén)1打開(kāi),三態(tài)門(mén)3、5關(guān)閉;FPGA地址總線選擇幀存B,相應(yīng)的數(shù)據(jù)總線三態(tài)門(mén)4打開(kāi),2、6關(guān)閉。背景寄存器中的顏色數(shù)據(jù)可以由用戶自己定義。
2.2 控制模塊
幀存控制器的控制模塊產(chǎn)生體選擇信號(hào)Sel和上電清屏?xí)r序信號(hào)Clear,控制模塊的結(jié)構(gòu)框圖如圖3所示。圖中,/VSYNC是場(chǎng)同步信號(hào),該信號(hào)經(jīng)過(guò)一個(gè)微分電路,產(chǎn)生一個(gè)像素時(shí)鐘周期寬的使能脈沖信號(hào),控制計(jì)數(shù)器的計(jì)數(shù)使能。計(jì)數(shù)器為一模2計(jì)數(shù)器,Sel信號(hào)為場(chǎng)同步信號(hào)/VSYNC的四分頻,在出現(xiàn)兩個(gè)場(chǎng)同步信號(hào)之后,才切換幀存,即兩個(gè)幀存使用的順序是:AABBAA...這種控制方式類(lèi)似于電影遮光板的設(shè)計(jì)思想,使一幅畫(huà)面在屏幕上重復(fù)出現(xiàn)兩次,從而在25Hz的幀頻時(shí)能獲得50Hz的場(chǎng)頻,使系統(tǒng)視頻帶寬增加一倍。如當(dāng)場(chǎng)頻50Hz時(shí),圖形處理器可以有40ms的時(shí)間處理一幀圖形數(shù)據(jù)。圖4為幀存控制時(shí)序圖,Clear信號(hào)的產(chǎn)生過(guò)程如下:系統(tǒng)上電時(shí),RST信號(hào)高一段時(shí)間(系統(tǒng)邏輯復(fù)位)后變低,在RST的下降沿,ClearA變高,此時(shí)場(chǎng)同步低電平有效信號(hào)還沒(méi)到,ClearB為高,Clear為高,系統(tǒng)開(kāi)始清屏?xí)r序。當(dāng)對(duì)兩個(gè)幀存的清屏工作結(jié)束時(shí),場(chǎng)同步信號(hào)/VSYNC有效,該信號(hào)將“0”電平鎖存輸出,ClearB為低,Clear為低,系統(tǒng)開(kāi)始在Sel控制下工作。從控制模塊框圖中可以看到,Clear信號(hào)僅僅在上電復(fù)位信號(hào)RST結(jié)束時(shí)(下降沿)才變?yōu)楦?,持續(xù)一個(gè)場(chǎng)周期之后,Clear信號(hào)將一直為低,把控制權(quán)交給Sel體切換信號(hào)。控制模塊的VHDL代碼及相應(yīng)的時(shí)序仿真圖如圖5所示(Modelsim5.5FSE仿真器仿真)。
Entity sel_gen is
Port(clk : in std_logic;
Rst : in std_logic;
Vsync : in std_logic;
Sel :out 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í)序分析
要使高速幀存能正常工作,必須滿足一定的時(shí)延要求。AMLCD是在像素時(shí)鐘的下降沿將數(shù)據(jù)鎖存,從像素時(shí)鐘的上升沿到正確的RGB圖形數(shù)據(jù)出現(xiàn)在AMLCD的數(shù)據(jù)總線上,之間的延時(shí)T必須小于25ns(像素時(shí)鐘周期為50ns,半周期為25ns),系統(tǒng)才能正常工作,如圖6所示。圖中的DLL(Delay-Locked Loop)為SpartanII芯片內(nèi)置的數(shù)字鎖相環(huán),Clk_top(40MHz)經(jīng)DLL二分頻后得20MHz像素時(shí)鐘。20MHz時(shí)鐘一路作為系統(tǒng)工作時(shí)鐘為FPGA地址計(jì)數(shù)器提供計(jì)數(shù)脈沖,一路作為像素時(shí)鐘直接送至AMLCD。從圖6可以看出,延時(shí)T包括如下幾個(gè)延時(shí):T1為Clk_top到幀存SRAM地址總線上地址的改變所需的延時(shí)(總線上各個(gè)信號(hào)的延時(shí)是不同的,T1為其中最大值);T2為幀存SRAM從地址改變到有效的數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上所需的延時(shí);T3為FPGA讀幀存數(shù)據(jù)總線上的數(shù)據(jù)到輸出至AMLCD所需的延時(shí);T4為Clk_top經(jīng)DLL產(chǎn)生像素時(shí)鐘直接輸出至AMLCD所需的延時(shí)??梢钥闯鲅訒r(shí)T=T1+T2+T3-T4。系統(tǒng)中的幀存控制器由Xilinx公司的SparatnII 芯片XC2S50-6實(shí)現(xiàn),經(jīng)過(guò)FPGA Express3.7綜合和Xilinx公司的ISE4.2I軟件布局布線。經(jīng)分析,布線后的延時(shí):T1=10.994ns、T3=10.691ns、T4=7.784ns,T2 由IS61LV5128芯片的時(shí)間參數(shù)決定,T2≤10ns,從而T≤23.901ns<25ns,滿足系統(tǒng)的時(shí)序要求。一般開(kāi)發(fā)工具所得出的時(shí)序報(bào)告是系統(tǒng)最壞情況下的延時(shí),實(shí)際系統(tǒng)中的延時(shí)將小于仿真時(shí)所得出的數(shù)據(jù)。
采用高速SRAM存儲(chǔ)器作為圖形幀存,用FPGA設(shè)計(jì)幀存控制器,能大大減小電路板的尺寸,增加系統(tǒng)的可靠性和設(shè)計(jì)靈活性采用雙幀存交替切換及單幀雙掃技術(shù),提高了系統(tǒng)視頻帶寬,并能提高系統(tǒng)實(shí)時(shí)性,減少圖形閃爍采用VHDL語(yǔ)言進(jìn)行FPGA設(shè)計(jì)具有方法簡(jiǎn)單、易讀和可重用性強(qiáng)的特點(diǎn)。該高速圖形幀存已用Xilinx公司的SpartanII系列器件XC2S50實(shí)現(xiàn),并在某型飛機(jī)座艙圖形顯示系統(tǒng)中實(shí)際應(yīng)用。
責(zé)任編輯:gt
-
dsp
+關(guān)注
關(guān)注
554文章
8058瀏覽量
349575 -
FPGA
+關(guān)注
關(guān)注
1630文章
21777瀏覽量
604706 -
芯片
+關(guān)注
關(guān)注
456文章
51037瀏覽量
425476
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論