版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)開課學(xué)期: 第六學(xué)期 課程名稱: fpga課程設(shè)計(jì) 學(xué) 院: 專 業(yè): 班 級(jí): 學(xué) 號(hào): 姓 名: 任課教師: 2015 年 7 月 20 日 基于fpga的vga顯示控制器設(shè)計(jì)一、設(shè)計(jì)方案1. 設(shè)計(jì)的主要內(nèi)容此設(shè)計(jì)要求實(shí)現(xiàn)某一分辨率下(如640*48060hz)的vga顯示驅(qū)動(dòng),能簡(jiǎn)單顯示彩條和圖像等。能夠熟悉vga接口協(xié)議、工作時(shí)序及vga工作原理,并計(jì)算出合適的時(shí)序,對(duì)原始時(shí)鐘進(jìn)行分頻處理以獲取符合時(shí)序要求的各率,此外須要顯示的圖像等可存儲(chǔ)于外部存儲(chǔ)器,運(yùn)行時(shí),從外部存儲(chǔ)器讀取顯示數(shù)據(jù)。將圖像控制模塊分為這樣幾部分;二分頻電路、地址發(fā)生器、vga時(shí)序控制模塊、圖像數(shù)據(jù)存儲(chǔ)器讀出
2、模塊.如圖1-1所示:圖1-1 vga顯示控制系統(tǒng)框圖2. 設(shè)計(jì)原理顯示控制器是一個(gè)較大的數(shù)字系統(tǒng),采用模塊化設(shè)計(jì)原則、借鑒自頂向下的程序設(shè)計(jì)思想,進(jìn)行功能分離并按層次設(shè)計(jì)。利用vhdl硬件描述語(yǔ)言對(duì)每個(gè)功能模塊進(jìn)行描述,并逐一對(duì)每個(gè)功能模塊進(jìn)行編譯仿真,使頂層vga顯示控制器的模塊實(shí)體仿真綜合得以順利通過。其中二分頻把50mhz實(shí)在頻率分成25mhz并提供給其它模塊作為時(shí)鐘;vga時(shí)序控制模塊用于產(chǎn)生640x480顯示范圍,并控制顯示范圍和消隱范圍以及產(chǎn)生水平同步時(shí)序信號(hào)hs和垂直同步時(shí)序信號(hào)vs的值;存儲(chǔ)器讀出模塊提供給sram地址并按地址讀出八位數(shù)據(jù)(灰度值y),然后得到r、g、b的值(
3、若y中間值,則r=g=b=1;否則r=g=b=0),并把r、g、b 的值通過vga接口傳送給vrt顯示器9。地址發(fā)生器接收所要顯示的數(shù)據(jù)讀取控制信號(hào),產(chǎn)生與圖像數(shù)據(jù)rom模塊對(duì)應(yīng)得地址,根據(jù)vga顯示的像素分布,確定讀取對(duì)應(yīng)數(shù)據(jù)的地址,由于所顯示的圖形每行需256個(gè)像素,而rom中每個(gè)地址存儲(chǔ)的數(shù)據(jù)時(shí)64位,故每4個(gè)地址取出的數(shù)據(jù)用于一行的顯示。vga顯示控制模塊:主要分為時(shí)序信號(hào)和數(shù)據(jù)顏色的控制,imgrom模塊即圖像數(shù)據(jù)rom模塊,在這一模塊中需要解決的是圖像數(shù)據(jù)bmp位圖文件的來(lái)源及轉(zhuǎn)換成hex文件,利用image2lcd對(duì)本次設(shè)計(jì)圖片處理得到bmp文件,最終在quartus ii得到h
4、ex文件,在已設(shè)置lpm_rom進(jìn)行加載圖像數(shù)據(jù)。注意其數(shù)據(jù)線寬為3,恰好可以放置rgb三信號(hào)數(shù)據(jù),因此此設(shè)計(jì)圖像僅能顯示8種顏色。此外注意各模塊對(duì)圖像顯示的區(qū)域控制。二、系統(tǒng)實(shí)現(xiàn) 此系統(tǒng)設(shè)計(jì)分主要由,二分頻模塊,地址譯碼器模塊,vga顯示控制模塊及圖像數(shù)據(jù)rom來(lái)實(shí)現(xiàn)對(duì)圖像的顯示。計(jì)數(shù)器模塊設(shè)計(jì)簡(jiǎn)單,用計(jì)數(shù)器計(jì)數(shù)來(lái)控制,以實(shí)現(xiàn)某一個(gè)區(qū)域顯示相應(yīng)的顏色。具體以vga顯示模塊和圖像數(shù)據(jù)rom為例進(jìn)行詳細(xì)分析與操作。1. vga顯示控制模塊vga顯示控制模塊主要通過vga時(shí)序產(chǎn)生640*480顯示范圍,并控制和消隱范圍以及產(chǎn)生水平同步時(shí)序信號(hào)hs和垂直同步時(shí)序信號(hào)vs的值。一個(gè)獨(dú)立的計(jì)數(shù)器產(chǎn)生垂直
5、時(shí)序信號(hào)。垂直同步計(jì)數(shù)器在每個(gè)hs脈沖信號(hào)來(lái)臨時(shí)自動(dòng)加1,譯碼值產(chǎn)生vs信號(hào)。計(jì)數(shù)器產(chǎn)生當(dāng)前顯示行。這兩個(gè)計(jì)數(shù)器從地址到顯示緩沖器連續(xù)計(jì)數(shù)。首先啟動(dòng)quartus 軟件,新建vga640480顯示掃描模塊工程文件,如下圖2-1所示:圖2-1 創(chuàng)建工程vga640480 單擊完成按鈕,創(chuàng)建好了設(shè)計(jì)工程,選擇【file】【new】菜單,出現(xiàn)如圖2-2所示的新建設(shè)計(jì)文件類型窗口。圖2-2 選擇編程vhdl文本文件在上圖2-2中選擇【vhdl file】,單擊【ok】建立一個(gè)新的文本設(shè)計(jì)文件,命名為vga640480.vhd。隨即進(jìn)行程序代碼的輸入。圖2-3 保存設(shè)計(jì)文件在圖2-3中的【file】菜單
6、中點(diǎn)選【save as】存盤并保證該文件添加到了工程中,文件名為默認(rèn)的即可。至此,vga640480顯示掃描模塊文件建立完成。2. rom載入當(dāng)vga顯示器要顯示一幀圖像,需要較多的數(shù)據(jù)量,fpga芯片內(nèi)置的rom存儲(chǔ)器很難符合如此大的數(shù)據(jù)存儲(chǔ)要求,所以必須借助于外部的存儲(chǔ)器存入圖像數(shù)據(jù)。讀取控制模塊的數(shù)據(jù)讀取方式?jīng)Q定于采用何種存儲(chǔ)器。然而外部存儲(chǔ)器有多種選擇,如rom,、雙口ram、甚至sdram等,例如rom可用直接產(chǎn)生地址信號(hào)的方式對(duì)芯片進(jìn)行訪問,而sdram則是利用dma控制方式配合cpu進(jìn)行讀寫操作6。 圖2-4 載入rom接下來(lái)將詳細(xì)介紹如何將已有的rom_r、rom_g和rom_
7、b文件載入開發(fā)板的rom中。首先,以“rom”作為關(guān)鍵詞在ip目錄中進(jìn)行搜索,選擇并雙擊“rom:1-port”: 在對(duì)話框中選擇“verilog”,在默認(rèn)目錄下選擇合適的“*.v”文件。圖2-5 選擇文件 選擇rom控制線,地址線和數(shù)據(jù)線。在圖2-6所示的對(duì)話框中選擇地址線位寬和rom數(shù)據(jù)線分別為8和65536,選擇的地址鎖存控制信號(hào)single clock。圖2-6 選擇rom模塊數(shù)據(jù)線和地址線寬度選擇已有的“*.mif”文件,載入rom。圖2-7 載入rom3. 二分頻模塊在系統(tǒng)進(jìn)行設(shè)計(jì)中二分頻把50mhz時(shí)鐘頻率分成25mhz并提供給其它模塊作為時(shí)鐘。顯示器的像素分辨率是640480,
8、像素時(shí)鐘25mhz,刷新頻率60hz1。開發(fā)板提供的系統(tǒng)時(shí)鐘50mhz,所以要對(duì)板載時(shí)鐘進(jìn)行分頻后才能使用。由于50m分頻難以仿真,故將輸入時(shí)鐘clk50m設(shè)置為50khz,分頻得到clk25m實(shí)際為25khz。它的模塊設(shè)計(jì)相比vga顯示模塊更為簡(jiǎn)單,在項(xiàng)目中創(chuàng)建新的文件,編寫二分頻模塊代碼,保存編譯。4. 頂層設(shè)計(jì)在以上模塊設(shè)計(jì)完成后,整體編譯并無(wú)錯(cuò)誤后,建原理圖文件,調(diào)用vga顯示模塊、圖像數(shù)據(jù)rom、二分頻模塊,用軟件自帶的rtl viewer自動(dòng)生成他們連線組成系統(tǒng)的原理圖,如圖2-8所示:圖2-8 rtl viewer自動(dòng)生成的原理圖 圖2-9 fpga開發(fā)板管腳分配按照開發(fā)板手冊(cè)進(jìn)
9、行管腳分配,如下圖所示:圖2-10 仿真波形圖5. 仿真波形6. 設(shè)計(jì)結(jié)果通過上述的步驟之后,將系統(tǒng)頂層文件燒寫進(jìn)開發(fā)板,將crt顯示器連接到開發(fā)板的vga接口上。給系統(tǒng)上電,在顯示器就可以看見本次設(shè)計(jì)所選用的圖片,如圖1-11所示:三、 結(jié)束語(yǔ)用fpga來(lái)控制vga,充分利用了fpga可重構(gòu)這一優(yōu)勢(shì),克服了以前通用處理器體積較大體系結(jié)構(gòu)不易修改、體系結(jié)構(gòu)不易修改等弊端。通過rom 來(lái)存儲(chǔ)圖片的信息,實(shí)現(xiàn)了基于fpga的圖形顯示,方便圖片信息的輸入,更新顯示的內(nèi)容以及修改??梢允箞D片的顯示脫離計(jì)算機(jī)的控制,而且使控制器的體積減小很多,對(duì)各種便攜式設(shè)備和小型嵌入式系統(tǒng)的實(shí)現(xiàn)具有工程價(jià)值現(xiàn)實(shí)意義和
10、現(xiàn)實(shí)意義。使用可編程邏輯器件可以很方便地實(shí)現(xiàn)數(shù)字系統(tǒng)設(shè)計(jì),為此基于fpga器件的vga控制器可以實(shí)現(xiàn)顯示器的實(shí)時(shí)顯示。系統(tǒng)設(shè)計(jì)方案、硬件描述語(yǔ)言設(shè)計(jì)以及開發(fā)工具的性能決定了該系統(tǒng)性能高低。隨著vga接口的普遍使用,這種結(jié)合fpga的系統(tǒng)級(jí)設(shè)計(jì)方法已經(jīng)展現(xiàn)優(yōu)勢(shì)。從整個(gè)設(shè)計(jì)流程來(lái)看,系統(tǒng)的可靠性高,靈活性強(qiáng),設(shè)計(jì)周期大大縮減,成本降低,且系統(tǒng)的可擴(kuò)展性強(qiáng)。不久的將來(lái),vga接口的圖像與視頻監(jiān)控系統(tǒng)應(yīng)用定會(huì)很有廣闊的市場(chǎng)。經(jīng)過此次課程設(shè)計(jì),我不僅更加學(xué)會(huì)知識(shí)之間的融會(huì)貫通,而且豐富了大腦,同時(shí)在查找資料的過程中也了解了許多課外知識(shí),開拓了視野,認(rèn)識(shí)了未來(lái)電子的發(fā)展方向,專業(yè)基礎(chǔ)知識(shí)方面和動(dòng)手能力方面
11、有了質(zhì)的飛躍。做課程設(shè)計(jì)的同時(shí)也是對(duì)自己能力的一種提高。通過此課程設(shè)計(jì),我明白了自己原來(lái)所掌握的知識(shí)太理論化了,面對(duì)單獨(dú)的課題產(chǎn)生著很茫然的感覺,自己要學(xué)習(xí)的東西還很多。也讓我明白學(xué)習(xí)是一個(gè)長(zhǎng)期的過程,需要不斷的積累,在以后的工作和生活中都需堅(jiān)持學(xué)習(xí),努力提高自己的知識(shí)和綜合素質(zhì)??傊?,不管掌握的了的還是不懂得,困難確實(shí)比較多,凡是難開頭,不知道從哪入手。也得到一個(gè)結(jié)論:知識(shí)也只能通過應(yīng)用和實(shí)踐方能實(shí)現(xiàn)它應(yīng)具有的價(jià)值!有些東西自認(rèn)為會(huì)了,然而當(dāng)?shù)接脮r(shí)才發(fā)現(xiàn)其實(shí)真的是兩回事,為此知識(shí)真正能用時(shí)才是真的學(xué)會(huì)了。感謝三位指導(dǎo)老師們所給予過的幫助。在設(shè)計(jì)過程中,我通過查閱大量有關(guān)資料,自學(xué)和與同學(xué)之間
12、經(jīng)驗(yàn)的交流,并向老師請(qǐng)教等方式。使自己學(xué)到了不少知識(shí),也經(jīng)歷了不少艱辛,因而得以有巨大的收獲。在整個(gè)設(shè)計(jì),使我懂得了許多東西,不僅培養(yǎng)了我獨(dú)立工作的能力,而且更加樹立了對(duì)自己工作能力的信心,定會(huì)對(duì)今后的學(xué)習(xí)工作生活有非常重要的影響。在動(dòng)手的能力大大提高之余,充分體會(huì)在創(chuàng)造過程中探索的艱難和成功時(shí)的喜悅。也許這個(gè)設(shè)計(jì)做的并不是很好,但在設(shè)計(jì)過程中所學(xué)到的東西才是這次課程設(shè)計(jì)的最大收獲和財(cái)富,為之受益終身。完成之后更深體會(huì)到課程設(shè)計(jì)是對(duì)前面所學(xué)知識(shí)的一種總結(jié)與檢驗(yàn)。附 錄 顯示控制模塊代碼modulevga_ctrl(/host sideired,igreen,iblue,ocurrent_x,o
13、current_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:0ovga_r;output7:0ovga
14、_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;parameterh_back=48
15、;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_act;/assignovga_sy
16、nc=1b1;/this pin is assignovga_blank=(h_conth_blank)|(v_cont=h_blank & h_cont=v_blank & v_cont=h_blank)?h_cont-h_blank:8h0;assignocurrent_y=(v_cont=v_blank)?v_cont-v_blank:8h0;/assignpicture_x = ocurrent_x 150 ? ocurrent_x : 155;/assignpicture_y = ocurrent_y 200 ? ocurrent_y : 155;/horizontal genera
17、tor: refer to the pixel clockalways(posedge iclk or negedge irst_n)beginif(!irst_n)beginh_cont=0;ovga_hs=1;endelsebeginif(h_conth_total)h_cont=h_cont+1b1;elseh_cont=0;/horizontal syncif(h_cont=h_front-1)/front porch ovga_hs=1b0;if(h_cont=h_front+h_sync-1)/sync pulse endovga_hs=1b1;endend/vertical ge
18、nerator: refer to the horizontal syncalways(posedge ovga_hs or negedge irst_n)beginif(!irst_n)beginv_cont=0;ovga_vs=1;endelsebeginif(v_contv_total)v_cont=v_cont+1b1;elsev_cont=0;/vertical syncif(v_cont=v_front-1)/front porch ovga_vs=1b0;if(v_cont=v_front+v_sync-1)/sync pulse endovga_vs=1b1;endendend
19、module 二分頻器模塊代碼module clock(clkin,clkout);input clkin;output clkout;reg clkout;always(posedge clkin)beginclkout = clkout;endendmodule 頂層文件代碼module vga_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_blan
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度年福建省高校教師資格證之高等教育心理學(xué)真題練習(xí)試卷B卷附答案
- 2024年交通運(yùn)輸設(shè)備項(xiàng)目資金需求報(bào)告代可行性研究報(bào)告
- 一年級(jí)數(shù)學(xué)計(jì)算題專項(xiàng)練習(xí)1000題匯編
- 2024年個(gè)人房產(chǎn)抵押貸款協(xié)議范本
- 文書模板-《勞務(wù)用工合同》
- 2024年度安置性質(zhì)房產(chǎn)購(gòu)買協(xié)議典范
- 2024老年專家返聘協(xié)議詳細(xì)條款
- 2024屆安徽省皖南八校聯(lián)盟高三4月(二診)調(diào)研測(cè)試卷(康德版)數(shù)學(xué)試題
- 2024年度建筑資產(chǎn)轉(zhuǎn)讓協(xié)議樣例
- 2024精簡(jiǎn)型牛肉購(gòu)銷協(xié)議文本
- 20以內(nèi)進(jìn)位加法100題(精心整理6套-可打印A4)
- 陜西師范大學(xué)學(xué)位英語(yǔ)試題
- 中小學(xué)反恐風(fēng)險(xiǎn)評(píng)估報(bào)告
- 品牌營(yíng)銷策略和品牌策略
- 視力矯正商業(yè)計(jì)劃書
- 醫(yī)學(xué)課件:臨床決策分析
- 幼兒園優(yōu)質(zhì)公開課:中班音樂韻律《打噴嚏的小老鼠》課件
- 質(zhì)量管理體系品質(zhì)保證體系圖
- 人教版(新插圖)三年級(jí)上冊(cè)數(shù)學(xué) 第9課時(shí) 用乘除兩步計(jì)算 解決-歸總問題 教學(xué)課件
- 《現(xiàn)代漢語(yǔ)》考試復(fù)習(xí)題庫(kù)及答案
- 13J104《蒸壓加氣混凝土砌塊、板材構(gòu)造》
評(píng)論
0/150
提交評(píng)論