《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的VGA圖形控制器設(shè)計(jì)
基于FPGA的VGA圖形控制器設(shè)計(jì)
來(lái)源:微型機(jī)與應(yīng)用2013年第15期
池清萍
(北京工業(yè)大學(xué) 軟件學(xué)院,北京 100124)
摘要: 利用FPGA設(shè)計(jì)并實(shí)現(xiàn)了一種VGA圖形控制器。根據(jù)VGA顯示原理,利用VHDL作為邏輯描述語(yǔ)言,在Xilinx的開(kāi)發(fā)板Nexys2上完成了設(shè)計(jì)的功能。通過(guò)按動(dòng)開(kāi)發(fā)板上的按鍵可切換顯示屏顯示的圖形,可實(shí)現(xiàn)橫條紋、豎條紋、方格棋盤(pán)等8 bit彩色圖形的顯示。
Abstract:
Key words :

摘  要: 利用FPGA設(shè)計(jì)并實(shí)現(xiàn)了一種VGA圖形控制器。根據(jù)VGA顯示原理,利用VHDL作為邏輯描述語(yǔ)言,在Xilinx的開(kāi)發(fā)板Nexys2上完成了設(shè)計(jì)的功能。通過(guò)按動(dòng)開(kāi)發(fā)板上的按鍵可切換顯示屏顯示的圖形,可實(shí)現(xiàn)橫條紋、豎條紋、方格棋盤(pán)等8 bit彩色圖形的顯示。
關(guān)鍵詞: VGA;FPGA;圖形控制器;8 bit彩色圖形

    隨著電子技術(shù)的進(jìn)步和數(shù)字圖像處理應(yīng)用領(lǐng)域的不斷擴(kuò)大,F(xiàn)PGA對(duì)VGA信號(hào)的采集起到了不可忽視的作用[1]。基于FPGA設(shè)計(jì)的VGA圖形控制器有不少便利之處:首先,F(xiàn)PGA以其設(shè)計(jì)靈活、結(jié)構(gòu)簡(jiǎn)單、集成度高等優(yōu)點(diǎn),近年來(lái)被廣泛運(yùn)用到各種功能的電路設(shè)計(jì)當(dāng)中。以硬件描述語(yǔ)言(Verilog或VHDL)完成的電路設(shè)計(jì)可以經(jīng)過(guò)簡(jiǎn)單的綜合與布局快速燒至到FPGA上進(jìn)行測(cè)試,成為現(xiàn)代IC設(shè)計(jì)驗(yàn)證的主流技術(shù)。其次,VGA作為一種通用的顯示接口,已經(jīng)廣泛應(yīng)用于工作和生活當(dāng)中。傳統(tǒng)的VGA顯示控制主要以專(zhuān)門(mén)的芯片電路和通用處理器來(lái)實(shí)現(xiàn),體積大且不靈活,但基于FPGA的VGA顯示控制顯著提高了產(chǎn)品的靈活性。最后,基于FPGA設(shè)計(jì)的產(chǎn)品開(kāi)發(fā)過(guò)程簡(jiǎn)單,投資小,系統(tǒng)成本較低,使得本VGA圖形控制器在同類(lèi)商品中將更具有價(jià)格上的競(jìng)爭(zhēng)優(yōu)勢(shì)。本文著重介紹一種利用Nexys2 FPGA開(kāi)發(fā)板實(shí)現(xiàn)VGA顯示控制的方法,能夠?qū)崿F(xiàn)不同圖案的顯示,該方法也可以方便地應(yīng)用于各種嵌入式便攜系統(tǒng)中。
1 Nexys2概述
     現(xiàn)場(chǎng)可編程門(mén)陣列FPGA(Field Programmable Gate Array)在嵌入式系統(tǒng)中被廣泛運(yùn)用。其配置和編程是通過(guò)軟件進(jìn)行的,通用性和靈活性極強(qiáng)。在產(chǎn)品升級(jí)時(shí),不需要額外改變?cè)械挠布娐罚恍栊薷某绦颍蟠笏薅塘讼到y(tǒng)設(shè)計(jì)周期。Nexys2作為一款比較經(jīng)典的FPGA開(kāi)發(fā)板,能夠完全兼容嵌入式處理器。特別在VGA系統(tǒng)設(shè)計(jì)中,因其板上集成了16 MB高速SDRAM和16 MB Flash ROM,不需接外部ROM便可存儲(chǔ)圖像數(shù)據(jù)或字符數(shù)據(jù),使其得到更加廣泛的運(yùn)用。
2 VGA概述及工作原理
2.1 VGA技術(shù)

    計(jì)算機(jī)顯示器的顯示有許多標(biāo)準(zhǔn),常見(jiàn)的有VGA(視頻圖形陣列)、SVGA(高級(jí)視頻圖形陣列)等。在圖像處理系統(tǒng)中,若是采用傳統(tǒng)辦法將圖像數(shù)據(jù)傳回電腦并通過(guò)顯示器顯示出來(lái),則整個(gè)傳輸過(guò)程中都需要嵌入式系統(tǒng)的CPU不斷對(duì)傳輸?shù)膱D像數(shù)據(jù)信號(hào)進(jìn)行控制,不僅浪費(fèi)CPU資源并且依賴(lài)計(jì)算機(jī),顯著降低了系統(tǒng)運(yùn)行的靈活性。但如果基于FPGA對(duì)VGA接口進(jìn)行設(shè)計(jì),數(shù)據(jù)流就只在系統(tǒng)的內(nèi)部流動(dòng)而不依賴(lài)電腦,實(shí)現(xiàn)了系統(tǒng)的最小化,并且增強(qiáng)了系統(tǒng)的可靠性和設(shè)計(jì)的靈活性[1]。FPGA開(kāi)發(fā)板上集成了很多功能模塊,使得基于FPGA的設(shè)計(jì)還可以根據(jù)用戶(hù)的特定需要設(shè)計(jì)出針對(duì)性強(qiáng)的VGA圖形控制器,不僅滿(mǎn)足了多樣化的用戶(hù)需要,而且降低了開(kāi)發(fā)成本,使產(chǎn)品的升級(jí)換代更加快捷、方便。
2.2 VGA顯示原理
    VGA顯示系統(tǒng)如圖1所示,主要由VGA控制器、存儲(chǔ)器(若顯示更大的圖像,可采用外部ROM取代FPGA內(nèi)部的ROM)和顯示器3部分組成。VGA控制器調(diào)用存儲(chǔ)器里儲(chǔ)存的數(shù)據(jù)并對(duì)此數(shù)據(jù)進(jìn)行相應(yīng)的處理,轉(zhuǎn)換成相應(yīng)的時(shí)序信號(hào)傳送給顯示器,顯示器按照接收到的信號(hào)進(jìn)行顯示[2]。

    對(duì)應(yīng)640×480×60 Hz的模式,工業(yè)標(biāo)準(zhǔn)所要求的時(shí)鐘頻率為25.175 MHz,行周期Tg為800個(gè)時(shí)鐘,場(chǎng)周期Tg為525個(gè)行周期。由于無(wú)法得到25.175 MHz的時(shí)鐘頻率,因此在設(shè)計(jì)中采用將全局時(shí)鐘50 MHz二分頻得到的25 MHz的頻率來(lái)驅(qū)動(dòng)行計(jì)數(shù)器。
    當(dāng)VS=0、HS=0時(shí),CRT顯示的內(nèi)容為亮的過(guò)程。當(dāng)一行掃描完畢,行同步HS=1。期間,CRT掃描產(chǎn)生消隱,電子束回到CRT左邊下一行的起始位置(X=0,Y=1);當(dāng)掃描完480行后,CRT的場(chǎng)同步VS=1,產(chǎn)生場(chǎng)同步使掃描線回到CRT的第一行第一列(X=0,Y=0)處(約為兩個(gè)行周期)。此程也稱(chēng)光柵掃描[3],如圖3所示。

3 系統(tǒng)設(shè)計(jì)方案
    整個(gè)系統(tǒng)以Nexys2 FPGA開(kāi)發(fā)板為核心,通過(guò)對(duì)其編程可輸出紅、綠、藍(lán)三基色信號(hào)和HS、VS行、場(chǎng)掃描同步時(shí)序信號(hào)。當(dāng)FPGA接收到輸出控制信號(hào)后,內(nèi)部的數(shù)據(jù)選擇器模塊根據(jù)控制信號(hào)選擇相應(yīng)的圖形生成模塊,輸出圖形信號(hào)與行、場(chǎng)掃描時(shí)序信號(hào)一起通過(guò)VGA接口電路傳送至顯示器,在VGA顯示器上便可看到相應(yīng)的彩色圖像[4]。系統(tǒng)采用Nexys2開(kāi)發(fā)板上提供的50 MHz時(shí)鐘作為全局參考時(shí)鐘,由一片晶振提供時(shí)鐘源。通過(guò)硬件描述語(yǔ)言VHDL對(duì)時(shí)鐘進(jìn)行分頻,產(chǎn)生各模塊所需時(shí)鐘頻率。通過(guò)硬件描述語(yǔ)言VHDL對(duì)Nexys2開(kāi)發(fā)板上的按鍵進(jìn)行規(guī)定,使得開(kāi)發(fā)板工作時(shí)可以通過(guò)按鍵切換VGA顯示的圖形。系統(tǒng)模塊如圖4所示。

4 系統(tǒng)實(shí)現(xiàn)

 


    本設(shè)計(jì)采用了8 bit數(shù)字信號(hào)線,可產(chǎn)生256種不同的顏色。本彩色條紋模式顯示控制器可通過(guò)按鍵實(shí)現(xiàn)橫彩條、豎彩條、棋盤(pán)格等圖案的顯示。橫彩條可根據(jù)場(chǎng)計(jì)數(shù)器產(chǎn)生,在480個(gè)有效數(shù)據(jù)區(qū)內(nèi),每60個(gè)產(chǎn)生一個(gè)彩條,即對(duì)其進(jìn)行8等分;豎彩條則根據(jù)行計(jì)數(shù)器產(chǎn)生,在640個(gè)有效數(shù)據(jù)區(qū)內(nèi),每80個(gè)產(chǎn)生一個(gè)彩條,也是8等分;棋盤(pán)格可由橫彩條數(shù)據(jù)和豎彩條數(shù)據(jù)“異或”或“同或”而得到。同時(shí),可通過(guò)按鍵來(lái)控制VGA不同圖案的輸出。
4.1 坐標(biāo)定位
    設(shè)定要全屏顯示圖形,如圖2所示,行、場(chǎng)時(shí)序的Td部分是屏幕所顯示部分,即屏幕從坐標(biāo)第45行、第152個(gè)像素(左上角)開(kāi)始顯示。若顯示橫彩條,則從第45行開(kāi)始,每過(guò)60行給輸出rgbout賦一個(gè)顏色值,直到第525行;豎彩條即從第152個(gè)像素開(kāi)始,每過(guò)80個(gè)像素給輸出rgbout賦予一個(gè)顏色值,直到第792個(gè)像素。
4.2 VGA控制程序設(shè)計(jì)
4.2.1 VGA控制器程序信號(hào)定義

    entity vga is
    Port(clk:in std_logic;//全局時(shí)鐘
     keya:in STD_LOGIC;//控制按鍵
      syncV:inout std_logic;//場(chǎng)同步信號(hào)
     syncH:inout std_logic;//行同步型號(hào)
      rgbout:out std_logic_vector(7 downto 0));
//8 bit輸出顏色信號(hào)
end vga;
4.2.2 產(chǎn)生彩條圖形的部分VHDL描述
process(clkdiv)//clkdiv為分頻后的時(shí)鐘信號(hào)
 begin    
      if(clkdiv=′1′ and clkdiv′Event)then
        if(HS>=152)and(HS<232)and(VS>=45)and(VS<525)then//橫彩條
          rgbx<="01010101";
        elsif(HS>=232)and(HS<312)and(VS>=45)and(VS<525)then
          rgbx<="01110101";
        ……
        elsif(HS>=712)and(HS<792)and(VS>=45)and(VS<525)then
           rgbx<="00010111";
        else
           rgbx<="00000000";
        end if;
  end if;
end process;
4.2.3 控制按鍵的VHDL描述
    process(keya)
      begin
        if(keya=′1′and keya′Event)then
      mmd<=mmd+1;//定義的2位邏輯信號(hào)
    end if;
  end process;
process(mmd)
    begin
          case mmd is
       when"00"=>rgbout<=rgbx;
//當(dāng)無(wú)按鍵操作時(shí),VGA顯示屏顯示橫彩條
       when"01"=>rgbout<=rgby;
//第一次按鍵時(shí),VGA顯示屏顯示豎彩條
       when"10"=>rgbout<=rgbx xor rgby;
//第二次按鍵時(shí),VGA顯示第一種棋盤(pán)圖形
       when"11"=>rgbout<=rgbx xnor rgby;
//第二次按鍵時(shí),VGA顯示第二種棋盤(pán)圖形
          when others=>null;
      end case;
end process;
4.3 系統(tǒng)測(cè)試結(jié)果與結(jié)論
    在Xilinx ISE 13.3中創(chuàng)建項(xiàng)目后,輸入系統(tǒng)的VHDL程序代碼進(jìn)行管腳約束,然后進(jìn)行邏輯綜合、布局布線、時(shí)序分析后生成.bit編程文件,再將編程文件下載到Nexys2 FPGA中,并通過(guò)VGA接口與顯示器相連。系統(tǒng)中的keya可約束為Nexys2開(kāi)發(fā)板中任一按鍵,作為顯示圖形的切換按鍵。通過(guò)按keya鍵,系統(tǒng)的顯示效果如圖5所示。

    本文設(shè)計(jì)的VGA圖形顯示控制器是基于FPGA實(shí)現(xiàn)的,采用VHDL語(yǔ)言在Xilinx 13.3軟件環(huán)境下完成軟件設(shè)計(jì),并對(duì)整個(gè)系統(tǒng)進(jìn)行了調(diào)試,最終在硬件平臺(tái)Nexys2上實(shí)現(xiàn)了圖形的顯示。與傳統(tǒng)的VGA控制器相比,本設(shè)計(jì)具有以下有點(diǎn):(1)采用硬件描述語(yǔ)言VHDL進(jìn)行開(kāi)發(fā),軟件程序簡(jiǎn)單且執(zhí)行效率高,使得系統(tǒng)設(shè)計(jì)變得更加快捷方便;(2)脫離了PC控制,減少了控制器的體積,從而擴(kuò)展了其應(yīng)用范圍,對(duì)于各種嵌入式便攜系統(tǒng)具有更重要的現(xiàn)實(shí)意義及工程實(shí)用價(jià)值。
    本設(shè)計(jì)只做了彩條及棋盤(pán)格圖形的顯示,如果要做字符顯示或真彩圖像顯示,則需將像素點(diǎn)數(shù)據(jù)保存到FPGA內(nèi)部的EAB RAM、外部ROM或RAM中。在接下來(lái)的設(shè)計(jì)中,將會(huì)在此方向上進(jìn)行相應(yīng)的改進(jìn)和完善。
參考文獻(xiàn)
[1] 呂康.基于FPGA的VGA圖形控制器設(shè)計(jì)[J].科技風(fēng),2011(14):32.
[2] 朱奕丹,方怡冰.基于FPGA的圖像采集與VGA顯示系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2011,3(5):1258-1261,1264.
[3] 潘松,黃繼業(yè).EDA技術(shù)與VHDL[M].北京:清華大學(xué)出版社,2009.
[4] 楊杰,穆偉斌.基于FPGA的VGA控制器設(shè)計(jì)與實(shí)現(xiàn)[J].齊齊哈爾大學(xué)學(xué)報(bào),2008,24(6):50-52.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品久久在线| 亚洲欧洲视频在线| 亚洲激情电影在线| 国产一区二区三区久久久| 国产精品美女黄网| 欧美日韩伦理在线免费| 欧美国产先锋| 欧美成人dvd在线视频| 久久夜色精品国产亚洲aⅴ | 一区二区高清在线观看| 亚洲精品国产精品乱码不99按摩| 久久精品日韩| 亚洲国产日本| 91久久久一线二线三线品牌| 久久aⅴ国产紧身牛仔裤| 先锋资源久久| 欧美专区在线观看| 亚洲第一精品福利| 亚洲第一精品福利| 亚洲精品在线二区| 一二美女精品欧洲| 亚洲一区二区三区精品在线观看| 亚洲一区二区三区视频| 亚洲视频在线视频| 午夜精品久久久久影视 | 欧美成人在线免费观看| 欧美77777| 欧美日韩国产一级| 国产精品www网站| 国产精品综合视频| 韩国在线一区| 亚洲国产一成人久久精品| 亚洲三级电影全部在线观看高清| 99精品黄色片免费大全| 亚洲男人的天堂在线aⅴ视频| 欧美一区二区大片| 亚洲欧洲日本一区二区三区| 亚洲午夜免费福利视频| 欧美一区二区高清| 免费看黄裸体一级大秀欧美| 欧美精品一线| 国产精品裸体一区二区三区| 国产一区二区日韩| 亚洲全部视频| 亚洲在线日韩| 亚洲国产免费看| 中国av一区| 久久www成人_看片免费不卡| 免费在线播放第一区高清av| 欧美婷婷在线| 黄色av一区| 日韩一级欧洲| 久久精品91久久久久久再现| 亚洲免费成人| 亚洲欧美日韩系列| 免费观看30秒视频久久| 国产精品白丝黑袜喷水久久久| 国产主播一区| 日韩亚洲精品电影| 欧美在线资源| 亚洲一区二区三区精品动漫| 久久久久久免费| 欧美日韩少妇| 欧美日韩免费看| 亚洲国产一区在线观看| 亚洲午夜精品久久| 亚洲激情综合| 先锋资源久久| 欧美精品18videos性欧美| 国产精品免费一区二区三区在线观看| 狠狠久久婷婷| 亚洲午夜性刺激影院| 亚洲精品在线一区二区| 欧美一区二视频| 欧美剧在线免费观看网站| 国产亚洲制服色| 999亚洲国产精| 久久精品国产亚洲aⅴ| 亚洲字幕一区二区| 在线亚洲成人| 亚洲国产日韩欧美一区二区三区| 一区二区三区国产在线| 亚洲激情欧美| 欧美夜福利tv在线| 欧美日韩国产大片| 黄网动漫久久久| 亚洲一区二区少妇| 一本色道久久综合亚洲精品按摩| 久久久久综合网| 国产美女精品| 正在播放欧美视频| 亚洲美女在线国产| 久久婷婷久久| 国产精品资源在线观看| 这里是久久伊人| 一区二区国产精品| 欧美国产精品久久| 一区二区三区在线视频观看| 亚洲欧美日韩另类| 亚洲字幕一区二区| 欧美日韩一区二区三区高清| 亚洲国产成人久久| 久久精品日产第一区二区| 欧美在线观看天堂一区二区三区| 欧美午夜不卡影院在线观看完整版免费| 91久久精品国产| 亚洲黄网站在线观看| 久久综合久久久| 国产在线日韩| 欧美亚洲在线观看| 久久国内精品视频| 国产婷婷97碰碰久久人人蜜臀| 亚洲曰本av电影| 亚洲男人天堂2024| 国产精品久久久久久久久久ktv | 欧美精品系列| 亚洲欧洲一区二区三区在线观看| 亚洲黄色视屏| 免费久久99精品国产自| 伊人久久综合97精品| 91久久在线| 欧美国产国产综合| 亚洲精品一品区二品区三品区| 亚洲免费成人| 欧美日韩中文精品| 一本到12不卡视频在线dvd| 亚洲伊人久久综合| 国产精品乱码| 小嫩嫩精品导航| 久久九九精品| 揄拍成人国产精品视频| 亚洲人成网站影音先锋播放| 欧美xxxx在线观看| 亚洲精品自在久久| 亚洲字幕在线观看| 国产伦精品一区二区三区高清| 性欧美在线看片a免费观看| 久久精品国产在热久久| 黄色精品网站| 亚洲久久成人| 欧美三级视频在线观看| 亚洲一区二区三区激情| 久久精品最新地址| 亚洲大胆视频| 亚洲视频一二| 国产日韩精品在线观看| 亚洲电影毛片| 欧美精品一区二区在线播放| 99热在这里有精品免费| 午夜欧美精品| 国产一区二区中文字幕免费看| 亚洲国产欧美一区二区三区久久| 欧美黄色日本| 亚洲一区中文| 免费国产一区二区| 亚洲视频在线一区观看| 久久精品人人做人人综合| 亚洲国产精品成人va在线观看| 亚洲小说欧美另类婷婷| 国产欧美一级| 亚洲精品网址在线观看| 国产精品国产三级国产专播精品人 | 亚洲欧美日本国产有色| 久久久亚洲影院你懂的| 亚洲激情成人| 午夜影院日韩| 在线观看欧美| 亚洲女同性videos| 一区二区三区在线免费播放| 亚洲午夜久久久久久久久电影院 | 日韩亚洲欧美一区二区三区| 国产精品久久久久av免费| 久久国产精品72免费观看| 欧美日韩中文字幕在线视频| 欧美怡红院视频| 欧美日韩视频第一区| 久久国产免费| 国产精品久久久久久久9999| 亚洲国产婷婷综合在线精品 | 国产精品毛片| 亚洲欧洲综合另类| 国产精品一区二区三区久久久 | 好吊色欧美一区二区三区视频| 一区二区激情视频| 精品999久久久| 新狼窝色av性久久久久久| 亚洲国产日韩欧美在线99| 久久成人免费网| 99成人免费视频| 卡通动漫国产精品| 亚洲图片在线| 欧美激情视频网站| 久久成人免费电影| 欧美午夜在线| 99精品国产热久久91蜜凸| 黑丝一区二区| 欧美诱惑福利视频| 一本色道精品久久一区二区三区| 蜜臀久久久99精品久久久久久| 亚洲欧美bt|