




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上課程設計開課學期: 第六學期 課程名稱: FPGA課程設計 學 院: 專 業: 班 級: 學 號: 姓 名: 任課教師: 2015 年 7 月 20 日 專心-專注-專業基于FPGA的VGA顯示控制器設計一、設計方案1. 設計的主要內容此設計要求實現某一分辨率下(如640*48060Hz)的VGA顯示驅動,能簡單顯示彩條和圖像等。能夠熟悉VGA接口協議、工作時序及VGA工作原理,并計算出合適的時序,對原始時鐘進行分頻處理以獲取符合時序要求的各率,此外須要顯示的圖像等可存儲于外部存儲器,運行時,從外部存儲器讀取顯示數據。將圖像控制模塊分為這樣幾部分;二分頻電路、地址發生
2、器、VGA時序控制模塊、圖像數據存儲器讀出模塊.如圖1-1所示:圖1-1 VGA顯示控制系統框圖2. 設計原理顯示控制器是一個較大的數字系統,采用模塊化設計原則、借鑒自頂向下的程序設計思想,進行功能分離并按層次設計。利用VHDL硬件描述語言對每個功能模塊進行描述,并逐一對每個功能模塊進行編譯仿真,使頂層VGA顯示控制器的模塊實體仿真綜合得以順利通過。其中二分頻把50MHZ實在頻率分成25Mhz并提供給其它模塊作為時鐘;VGA時序控制模塊用于產生640X480顯示范圍,并控制顯示范圍和消隱范圍以及產生水平同步時序信號HS和垂直同步時序信號VS的值;存儲器讀出模塊提供給SRAM地址并按地址讀出八位
3、數據(灰度值Y),然后得到R、G、B的值(若Y>中間值,則R=G=B=1;否則R=G=B=0),并把R、G、B 的值通過VGA接口傳送給VRT顯示器9。地址發生器接收所要顯示的數據讀取控制信號,產生與圖像數據ROM模塊對應得地址,根據VGA顯示的像素分布,確定讀取對應數據的地址,由于所顯示的圖形每行需256個像素,而ROM中每個地址存儲的數據時64位,故每4個地址取出的數據用于一行的顯示。VGA顯示控制模塊:主要分為時序信號和數據顏色的控制,imgrom模塊即圖像數據ROM模塊,在這一模塊中需要解決的是圖像數據BMP位圖文件的來源及轉換成HEX文件,利用Image2lcd對本次設計圖片處
4、理得到BMP文件,最終在Quartus II得到HEX文件,在已設置LPM_ROM進行加載圖像數據。注意其數據線寬為3,恰好可以放置RGB三信號數據,因此此設計圖像僅能顯示8種顏色。此外注意各模塊對圖像顯示的區域控制。二、系統實現 此系統設計分主要由,二分頻模塊,地址譯碼器模塊,VGA顯示控制模塊及圖像數據ROM來實現對圖像的顯示。計數器模塊設計簡單,用計數器計數來控制,以實現某一個區域顯示相應的顏色。具體以VGA顯示模塊和圖像數據ROM為例進行詳細分析與操作。1. VGA顯示控制模塊VGA顯示控制模塊主要通過VGA時序產生640*480顯示范圍,并控制和消隱范圍以及產生水平同步時序信號hs和
5、垂直同步時序信號vs的值。一個獨立的計數器產生垂直時序信號。垂直同步計數器在每個HS脈沖信號來臨時自動加1,譯碼值產生VS信號。計數器產生當前顯示行。這兩個計數器從地址到顯示緩沖器連續計數。首先啟動QUARTUS 軟件,新建vga顯示掃描模塊工程文件,如下圖2-1所示:圖2-1 創建工程vga 單擊完成按鈕,創建好了設計工程,選擇【FILE】>【NEW】菜單,出現如圖2-2所示的新建設計文件類型窗口。圖2-2 選擇編程VHDL文本文件在上圖2-2中選擇【VHDL File】,單擊【OK】建立一個新的文本設計文件,命名為vga.vhd。隨即進行程序代碼的輸入。圖2-3 保存設計文件在圖2-
6、3中的【File】菜單中點選【Save as】存盤并保證該文件添加到了工程中,文件名為默認的即可。至此,vga顯示掃描模塊文件建立完成。2. rom載入當VGA顯示器要顯示一幀圖像,需要較多的數據量,FPGA芯片內置的ROM存儲器很難符合如此大的數據存儲要求,所以必須借助于外部的存儲器存入圖像數據。讀取控制模塊的數據讀取方式決定于采用何種存儲器。然而外部存儲器有多種選擇,如ROM,、雙口RAM、甚至SDRAM等,例如ROM可用直接產生地址信號的方式對芯片進行訪問,而SDRAM則是利用DMA控制方式配合CPU進行讀寫操作6。 圖2-4 載入rom接下來將詳細介紹如何將已有的rom_r、rom_g
7、和rom_b文件載入開發板的rom中。首先,以“rom”作為關鍵詞在IP目錄中進行搜索,選擇并雙擊“ROM:1-PORT”: 在對話框中選擇“Verilog”,在默認目錄下選擇合適的“*.v”文件。圖2-5 選擇文件 選擇ROM控制線,地址線和數據線。在圖2-6所示的對話框中選擇地址線位寬和ROM數據線分別為8和65536,選擇的地址鎖存控制信號Single clock。圖2-6 選擇rom模塊數據線和地址線寬度選擇已有的“*.mif”文件,載入rom。圖2-7 載入rom3. 二分頻模塊在系統進行設計中二分頻把50MHz時鐘頻率分成25MHz并提供給其它模塊作為時鐘。顯示器的像素分辨率是64
8、0×480,像素時鐘25Mhz,刷新頻率60Hz±1。開發板提供的系統時鐘50MHz,所以要對板載時鐘進行分頻后才能使用。由于50M分頻難以仿真,故將輸入時鐘clk50m設置為50kHz,分頻得到clk25m實際為25kHz。它的模塊設計相比VGA顯示模塊更為簡單,在項目中創建新的文件,編寫二分頻模塊代碼,保存編譯。4. 頂層設計在以上模塊設計完成后,整體編譯并無錯誤后,建原理圖文件,調用VGA顯示模塊、圖像數據rom、二分頻模塊,用軟件自帶的RTL Viewer自動生成他們連線組成系統的原理圖,如圖2-8所示:圖2-8 RTL Viewer自動生成的原理圖 圖2-9 FP
9、GA開發板管腳分配按照開發板手冊進行管腳分配,如下圖所示:圖2-10 仿真波形圖5. 仿真波形6. 設計結果通過上述的步驟之后,將系統頂層文件燒寫進開發板,將CRT顯示器連接到開發板的VGA接口上。給系統上電,在顯示器就可以看見本次設計所選用的圖片,如圖1-11所示:三、 結束語用FPGA來控制VGA,充分利用了FPGA可重構這一優勢,克服了以前通用處理器體積較大體系結構不易修改、體系結構不易修改等弊端。通過rom 來存儲圖片的信息,實現了基于FPGA的圖形顯示,方便圖片信息的輸入,更新顯示的內容以及修改。可以使圖片的顯示脫離計算機的控制,而且使控制器的體積減小很多,對各種便攜式設備和小型嵌入
10、式系統的實現具有工程價值現實意義和現實意義。使用可編程邏輯器件可以很方便地實現數字系統設計,為此基于FPGA器件的VGA控制器可以實現顯示器的實時顯示。系統設計方案、硬件描述語言設計以及開發工具的性能決定了該系統性能高低。隨著VGA接口的普遍使用,這種結合FPGA的系統級設計方法已經展現優勢。從整個設計流程來看,系統的可靠性高,靈活性強,設計周期大大縮減,成本降低,且系統的可擴展性強。不久的將來,VGA接口的圖像與視頻監控系統應用定會很有廣闊的市場。經過此次課程設計,我不僅更加學會知識之間的融會貫通,而且豐富了大腦,同時在查找資料的過程中也了解了許多課外知識,開拓了視野,認識了未來電子的發展方
11、向,專業基礎知識方面和動手能力方面有了質的飛躍。做課程設計的同時也是對自己能力的一種提高。通過此課程設計,我明白了自己原來所掌握的知識太理論化了,面對單獨的課題產生著很茫然的感覺,自己要學習的東西還很多。也讓我明白學習是一個長期的過程,需要不斷的積累,在以后的工作和生活中都需堅持學習,努力提高自己的知識和綜合素質。總之,不管掌握的了的還是不懂得,困難確實比較多,凡是難開頭,不知道從哪入手。也得到一個結論:知識也只能通過應用和實踐方能實現它應具有的價值!有些東西自認為會了,然而當到用時才發現其實真的是兩回事,為此知識真正能用時才是真的學會了。感謝三位指導老師們所給予過的幫助。在設計過程中,我通過
12、查閱大量有關資料,自學和與同學之間經驗的交流,并向老師請教等方式。使自己學到了不少知識,也經歷了不少艱辛,因而得以有巨大的收獲。在整個設計,使我懂得了許多東西,不僅培養了我獨立工作的能力,而且更加樹立了對自己工作能力的信心,定會對今后的學習工作生活有非常重要的影響。在動手的能力大大提高之余,充分體會在創造過程中探索的艱難和成功時的喜悅。也許這個設計做的并不是很好,但在設計過程中所學到的東西才是這次課程設計的最大收獲和財富,為之受益終身。完成之后更深體會到課程設計是對前面所學知識的一種總結與檢驗。附 錄 顯示控制模塊代碼moduleVGA_Ctrl(/Host SideiRed,iGreen,i
13、Blue,oCurrent_X,oCurrent_Y,oAddress,oRequest,/VGA SideoVGA_R,oVGA_G,oVGA_B,oVGA_HS,oVGA_VS,oVGA_SYNC,oVGA_BLANK,oVGA_CLOCK,/Control SignaliCLK,iRST_N);/Host Sideinput7:0iRed;input7:0iGreen;input7:0iBlue;output16:0oAddress;output10:0oCurrent_X;output10:0oCurrent_Y;outputoRequest;/VGA Sideoutput7:0oVG
14、A_R;output7:0oVGA_G;output7:0oVGA_B;outputregoVGA_HS;outputregoVGA_VS;outputoVGA_SYNC;outputoVGA_BLANK;outputoVGA_CLOCK;/Control SignalinputiCLK;inputiRST_N;/Internal Registersreg10:0H_Cont;reg10:0V_Cont;wire10:0picture_x;wire10:0picture_y;/HorizontalParameterparameterH_FRONT=16;parameterH_SYNC=96;p
15、arameterH_BACK=48;parameterH_ACT=640;parameterH_BLANK=H_FRONT+H_SYNC+H_BACK;parameterH_TOTAL=H_FRONT+H_SYNC+H_BACK+H_ACT;/Vertical ParameterparameterV_FRONT=11;parameterV_SYNC=2;parameterV_BACK=31;parameterV_ACT=480;parameterV_BLANK=V_FRONT+V_SYNC+V_BACK+32;parameterV_TOTAL=V_FRONT+V_SYNC+V_BACK+V_A
16、CT;/assignoVGA_SYNC=1'b1;/This pin is assignoVGA_BLANK=(H_Cont<H_BLANK)|(V_Cont<V_BLANK);assignoVGA_CLOCK=iCLK;assignoVGA_R=iRed;assignoVGA_G=iGreen;assignoVGA_B=iBlue;wire 10:0x,y;assign x=oCurrent_X/3;assign y=oCurrent_Y/3;assignoAddress=x*150+y;/assign oAddress = 1;assignoRequest=(H_Con
17、t>=H_BLANK && H_Cont<H_TOTAL) && (V_Cont>=V_BLANK && V_Cont<V_TOTAL);assignoCurrent_X=(H_Cont>=H_BLANK)?H_Cont-H_BLANK:8'h0;assignoCurrent_Y=(V_Cont>=V_BLANK)?V_Cont-V_BLANK:8'h0;/assignpicture_x = oCurrent_X < 150 ? oCurrent_X : 155;/assignpictur
18、e_y = oCurrent_Y < 200 ? oCurrent_Y : 155;/Horizontal Generator: Refer to the pixel clockalways(posedge iCLK or negedge iRST_N)beginif(!iRST_N)beginH_Cont<=0;oVGA_HS<=1;endelsebeginif(H_Cont<H_TOTAL)H_Cont<=H_Cont+1'b1;elseH_Cont<=0;/Horizontal Syncif(H_Cont=H_FRONT-1)/Front po
19、rch oVGA_HS<=1'b0;if(H_Cont=H_FRONT+H_SYNC-1)/Sync pulse endoVGA_HS<=1'b1;endend/Vertical Generator: Refer to the horizontal syncalways(posedge oVGA_HS or negedge iRST_N)beginif(!iRST_N)beginV_Cont<=0;oVGA_VS<=1;endelsebeginif(V_Cont<V_TOTAL)V_Cont<=V_Cont+1'b1;elseV_Co
20、nt<=0;/Vertical Syncif(V_Cont=V_FRONT-1)/Front porch oVGA_VS<=1'b0;if(V_Cont=V_FRONT+V_SYNC-1)/Sync pulse endoVGA_VS<=1'b1;endendendmodule 二分頻器模塊代碼module clock(clkin,clkout);input clkin;output clkout;reg clkout;always(posedge clkin)beginclkout = clkout;endendmodule 頂層文件代碼module VGA_
21、TOP(/VGA SideoVGA_R,oVGA_G,oVGA_B,oVGA_HS,oVGA_VS,oVGA_SYNC,oVGA_BLANK,oVGA_CLOCK,/Control Signalclkin,rst_n);/Host Sidewire7:0iRed;wire7:0iGreen;wire7:0iBlue;/VGA Sideoutput7:0oVGA_R;output7:0oVGA_G;output7:0oVGA_B;outputoVGA_HS;outputoVGA_VS;outputoVGA_SYNC;outputoVGA_BLANK;outputoVGA_CLOCK;/Control Si
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 脂肪肝超聲課件
- 2025伊春市友好區中心經營所社區工作者考試真題
- 2025五指山市抱由鎮社區工作者考試真題
- 幼兒園保育教育工作總結
- 腎結石病人護理指南
- 面部護理團餐方案設計
- 幼兒教育健康說課
- 腦出血昏迷病人的護理
- 蔬菜物流配送方案
- 圖書館管理系統設計專業
- “中華傳統文化經典研習”任務群下先秦諸子散文教學策略研究
- 2025年高考語文模擬作文導寫及點評:社會時鐘
- 《護理信息系統》課件
- 單片機技術與應用知到智慧樹章節測試課后答案2024年秋甘肅省農墾中等專業學校
- 施工現場平面布置與臨時設施、臨時道路布置方案
- 建筑施工大型機械設備安全使用與管理培訓
- T-CNPPA 3027-2024 藥品泡罩包裝應用指南
- 山東省濰坊市2025屆高考數學二模試卷含解析
- 6S管理制度(可參考)-6s管理制度
- 四肢與關節檢查
- 產后抑郁癥講課課件
評論
0/150
提交評論