資源描述:
《基于fpga的vga顯示控制器設(shè)計》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、課程設(shè)計開課學(xué)期:第六學(xué)期課程名稱:FPGA課程設(shè)計學(xué)院:專業(yè):班級:學(xué)號:姓名:任課教師:2015年7月20日基于FPGA的VGA顯示控制器設(shè)計一、設(shè)計方案1.設(shè)計的主要內(nèi)容此設(shè)計要求實現(xiàn)某一分辨率下(如640*480@60Hz)的VGA顯示驅(qū)動,能簡單顯示彩條和圖像等。能夠熟悉VGA接口協(xié)議、工作時序及VGA工作原理,并計算出合適的時序,對原始時鐘進(jìn)行分頻處理以獲取符合時序要求的各率,此外須要顯示的圖像等可存儲于外部存儲器,運行時,從外部存儲器讀取顯示數(shù)據(jù)。將圖像控制模塊分為這樣幾部分;二分頻電路、地址發(fā)生器、VGA時序控制模塊、圖像數(shù)據(jù)存儲器讀出模塊.如圖1-1所示:圖1-1VGA顯示
2、控制系統(tǒng)框圖2.設(shè)計原理顯示控制器是一個較大的數(shù)字系統(tǒng),采用模塊化設(shè)計原則、借鑒自頂向下的程序設(shè)計思想,進(jìn)行功能分離并按層次設(shè)計。利用VHDL硬件描述語言對每個功能模塊進(jìn)行描述,并逐一對每個功能模塊進(jìn)行編譯仿真,使頂層VGA顯示控制器的模塊實體仿真綜合得以順利通過。15其中二分頻把50MHZ實在頻率分成25Mhz并提供給其它模塊作為時鐘;VGA時序控制模塊用于產(chǎn)生640X480顯示范圍,并控制顯示范圍和消隱范圍以及產(chǎn)生水平同步時序信號HS和垂直同步時序信號VS的值;存儲器讀出模塊提供給SRAM地址并按地址讀出八位數(shù)據(jù)(灰度值Y),然后得到R、G、B的值(若Y>中間值,則R=G=B=1;否則R
3、=G=B=0),并把R、G、B的值通過VGA接口傳送給VRT顯示器[9]。地址發(fā)生器接收所要顯示的數(shù)據(jù)讀取控制信號,產(chǎn)生與圖像數(shù)據(jù)ROM模塊對應(yīng)得地址,根據(jù)VGA顯示的像素分布,確定讀取對應(yīng)數(shù)據(jù)的地址,由于所顯示的圖形每行需256個像素,而ROM中每個地址存儲的數(shù)據(jù)時64位,故每4個地址取出的數(shù)據(jù)用于一行的顯示。VGA顯示控制模塊:主要分為時序信號和數(shù)據(jù)顏色的控制,imgrom模塊即圖像數(shù)據(jù)ROM模塊,在這一模塊中需要解決的是圖像數(shù)據(jù)BMP位圖文件的來源及轉(zhuǎn)換成HEX文件,利用Image2lcd對本次設(shè)計圖片處理得到BMP文件,最終在QuartusII得到HEX文件,在已設(shè)置LPM_ROM進(jìn)
4、行加載圖像數(shù)據(jù)。注意其數(shù)據(jù)線寬為3,恰好可以放置RGB三信號數(shù)據(jù),因此此設(shè)計圖像僅能顯示8種顏色。此外注意各模塊對圖像顯示的區(qū)域控制。二、系統(tǒng)實現(xiàn)此系統(tǒng)設(shè)計分主要由,二分頻模塊,地址譯碼器模塊,VGA顯示控制模塊及圖像數(shù)據(jù)ROM來實現(xiàn)對圖像的顯示。計數(shù)器模塊設(shè)計簡單,用計數(shù)器計數(shù)來控制,以實現(xiàn)某一個區(qū)域顯示相應(yīng)的顏色。具體以VGA顯示模塊和圖像數(shù)據(jù)ROM為例進(jìn)行詳細(xì)分析與操作。1.VGA顯示控制模塊VGA顯示控制模塊主要通過VGA時序產(chǎn)生640*480顯示范圍,并控制和消隱范圍以及產(chǎn)生水平同步時序信號hs和垂直同步時序信號vs的值。一個獨立的計數(shù)器產(chǎn)生垂直時序信號。垂直同步計數(shù)器在每個HS脈
5、沖信號來臨時自動加1,譯碼值產(chǎn)生VS信號。計數(shù)器產(chǎn)生當(dāng)前顯示行。這兩個計數(shù)器從地址到顯示緩沖器連續(xù)計數(shù)。首先啟動QUARTUSⅡ軟件,新建vga顯示掃描模塊工程文件,如下圖2-1所示:15圖2-1創(chuàng)建工程vga單擊完成按鈕,創(chuàng)建好了設(shè)計工程,選擇【FILE】>【NEW】菜單,出現(xiàn)如圖2-2所示的新建設(shè)計文件類型窗口。圖2-2選擇編程VHDL文本文件在上圖2-2中選擇【VHDLFile】,單擊【OK】建立一個新的文本設(shè)計文件,命名為vga.vhd。隨即進(jìn)行程序代碼的輸入。圖2-3保存設(shè)計文件15在圖2-3中的【File】菜單中點選【Saveas】存盤并保證該文件添加到了工程中,文件名為默認(rèn)的即
6、可。至此,vga顯示掃描模塊文件建立完成。2.rom載入當(dāng)VGA顯示器要顯示一幀圖像,需要較多的數(shù)據(jù)量,F(xiàn)PGA芯片內(nèi)置的ROM存儲器很難符合如此大的數(shù)據(jù)存儲要求,所以必須借助于外部的存儲器存入圖像數(shù)據(jù)。讀取控制模塊的數(shù)據(jù)讀取方式?jīng)Q定于采用何種存儲器。然而外部存儲器有多種選擇,如ROM,、雙口RAM、甚至SDRAM等,例如ROM可用直接產(chǎn)生地址信號的方式對芯片進(jìn)行訪問,而SDRAM則是利用DMA控制方式配合CPU進(jìn)行讀寫操作[6]。圖2-4載入rom接下來將詳細(xì)介紹如何將已有的rom_r、rom_g和rom_b文件載入開發(fā)板的rom中。首先,以“rom”作為關(guān)鍵詞在IP目錄中進(jìn)行搜索,選擇并
7、雙擊“ROM:1-PORT”:在對話框中選擇“Verilog”,在默認(rèn)目錄下選擇合適的“*.v”文件。圖2-5選擇文件15選擇ROM控制線,地址線和數(shù)據(jù)線。在圖2-6所示的對話框中選擇地址線位寬和ROM數(shù)據(jù)線分別為8和65536,選擇的地址鎖存控制信號Singleclock。圖2-6選擇rom模塊數(shù)據(jù)線和地址線寬度選擇已有的“*.mif”文件,載入rom。圖2-7載入rom153.二分頻模塊在系統(tǒng)進(jìn)行設(shè)計中二