電子設(shè)計自動化課程設(shè)計報告_第1頁
電子設(shè)計自動化課程設(shè)計報告_第2頁
電子設(shè)計自動化課程設(shè)計報告_第3頁
電子設(shè)計自動化課程設(shè)計報告_第4頁
電子設(shè)計自動化課程設(shè)計報告_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、電子設(shè)計自動化課程設(shè)計報告學生姓名:學 號:課設(shè)題目: VGA 彩條信號顯示控制器設(shè)計同組人:電子設(shè)計自動化課程設(shè)計報告郝欣欣課程設(shè)計內(nèi)容1、 使用Verilog 語言和Modelsim仿真器完成可顯示橫彩條、豎彩條、棋盤格相間的VGA 控制器的設(shè)計和驗證2、設(shè)計并驗證可顯示英語單詞 ”HIT”的VGA控制器3、使用Quartus II 和SOPC實驗箱驗證設(shè)計的正確性4、Verilog 代碼要符合微電子中心編碼標準二、FPGA原理CPLD FPGA是在PAL GAL等基礎(chǔ)上發(fā)展起來的一種具有豐富的可編程I/O引腳、邏輯宏單元、門電路以及RAM空間的可編程邏輯器件,幾乎所有應(yīng)用門陣 列、PLD

2、和中小規(guī)模通用數(shù)字集成電路的場合均可應(yīng)用FPGA和 CPLD器件。CPLD的設(shè)計是基于乘積項選擇矩陣來實現(xiàn)的,而FPGAS于查找表來設(shè)計的。查找表就是實現(xiàn)將輸入信號的各種組合功能以一定的次序?qū)懭隦AM中,然后在輸入信號的作用下,輸出特定的函數(shù)運算結(jié)果。其結(jié)構(gòu)圖如圖1所示:徊入器輸入4T-圖1. FPGA查找表單元一個N輸入查找表(LUT,Look Up Table)可以實現(xiàn)N個輸入變量的任何邏輯功 能,如 N輸入“與”、N輸入“異或”等。輸入多于N個的函數(shù)、方程必須分開用幾個查找表(LUT)實現(xiàn)(如圖2所示)o16x1RAMI |圖2 FPGA查.找表單元內(nèi)部結(jié)構(gòu)該系統(tǒng)設(shè)計中,F(xiàn)PGA芯片用的

3、是ALTERA公司的EP1K30QC208-2它的系統(tǒng)結(jié)構(gòu) 如圖3所示。它由若干個邏輯單元和中央布線池加 I/O端口構(gòu)成快速通道互連函I固邏輯單兀邏輯陣列塊圖3 EP1K30QC20站部結(jié)構(gòu)三、VGA接口VGA勺全稱為Video Graphic Array,即顯示繪圖陣列。在 PC行業(yè)發(fā)展的初 期,VGA以其支持在640X480的較高分辨率下同時顯示16種色彩或256種灰度, 同時在320X240分辨率下可以同時顯示256種顏色的良好特性得到廣泛支持。后 來,廠商們紛紛在VGA基礎(chǔ)上加以擴充,如將顯存提高至1M并使其支持更高分 辨率如800X600或1024X768,這些擴充的模式就稱之為 V

4、ESA(VideoElectronics Standards Association ,視頻電子標準協(xié)會)的Super VGA模式,簡稱SVGA 現(xiàn)在的顯卡和顯示器都支持 SVGA莫式。MgCiti10tot臨址地聊1VGA圖4 VGA接口VGA接口就是顯卡上輸出模擬信號的接口,也叫 D-Sub接口。VGA接口是- 種D型接口,上面共有15針空,分成三排,每排五個。VGA接口是顯卡上應(yīng)用 最為廣泛的接口類型,絕大多數(shù)的顯卡都帶有此種接口。表1 VGA管腳定義管腳定義1紅基色red2綠基色gree n3藍基色blue4地址碼ID Bit5自測試(各家定義不同)6紅地7綠地8藍地9保留(各家定義不

5、同)10數(shù)字地11地址碼12地址碼13行同步14場同步15地址碼(各家定義不同)通過模擬VGAS口和計算機連接的顯示器的工作原理,是計算機內(nèi)部以數(shù)字方式 生成的顯示圖像信息,被顯卡中的數(shù)字/模擬轉(zhuǎn)換器轉(zhuǎn)變?yōu)镽、G B三原色信號 和行、場同步信號,信號通過電纜傳輸?shù)斤@示設(shè)備中。對于模擬顯示設(shè)備,如模 擬CRT顯示器,信號被直接送到相應(yīng)的處理電路,驅(qū)動控制顯像管生成圖像。而 對于LCD DLP等數(shù)字顯示設(shè)備,顯示設(shè)備中需配置相應(yīng)的 A/D(模擬/數(shù)字)轉(zhuǎn)換 器,將模擬信號轉(zhuǎn)變?yōu)閿?shù)字信號。在經(jīng)過 D/A和A/D2次轉(zhuǎn)換后,不可避免地造 成了一些圖像細節(jié)的損失。VGAS口應(yīng)用于CRT顯示器無可厚非,但

6、用于連接液 晶之類的顯示設(shè)備,則轉(zhuǎn)換過程的圖像損失會使顯示效果略微下降。CRT顯示器因為設(shè)計制造上的原因,只能接受模擬信號輸入,也就是我們?yōu)槭裁丛贑RT顯示 器上只看到VGA接口的原因。四、VGAS示接口原理計算機顯示器的顯示有許多標準,常見的有VGA SVGA等。本系統(tǒng)采用FPGA 來實現(xiàn)圖像顯示控制器,這在產(chǎn)品開發(fā)設(shè)計中有許多實際應(yīng)用。常見的彩色顯示器,一般由CRT(陰極射線管)構(gòu)成,彩色是由G R、B(綠: Green,紅:Red,藍:Blue)三基色組成。顯示是用逐行掃描的方式解決,陰極 射線槍發(fā)出電子束打在涂有熒光粉的熒光屏上,產(chǎn)生GRBE基色,合成一個彩色像素。掃描從屏幕的左上方開

7、始,從左到右,從上到下,進行掃描,每掃完一行, 電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結(jié)束時,用行同步信號進行行同步;掃描完所有行,用場同步信號進行場同 步,并使掃描回到屏幕的左上方,同時進行場消隱,預備下一場的掃描。對于普通的VGA顯示器,其引出線共含5個信號:G R、B:三基色信號; HS:行同步信號;VS:場同步信號。對于5個信號的時序驅(qū)動,對于 VGA顯示器要嚴格遵循“ VGA工業(yè)標準”, 即640X480X 60Hz模式。通常我們用的顯示器都滿足工業(yè)標準,因此我們設(shè)計 VGA控制器時要參考顯示器的技術(shù)規(guī)格。圖5是VGA行掃描、場掃描的時序圖:bl

8、akkBLANKVijTKThft scrHtyifiQ舛點書效顯示數(shù)據(jù)也_ 什丁爐-p廠牛tLFtF 12 3 4SQ :12 3Hsjnw;BLANK圖5 VGA行掃描、場掃描時序圖行時序禎時序abcdabd1024 x%SXGA (75Ih)L.212.20.2328768i1 Q24x76&XG A(60Hz)2.12.5 15.80.4676838tX)x600SVGA(60Hz)3.22.220,01.04h6001640x480VGA(75Hz)2.0工8 I20.30.5374801表2 VGA參考時序設(shè)計VGA工業(yè)標準所要求的頻率:時鐘頻率(Clock frequency )

9、: 25.175MHz (像素輸出的頻率);行頻(Line frequency ): 31469Hz場頻(Field frequency ): 59.94Hz (每秒圖像刷新頻率)。五、FPGA的設(shè)計實現(xiàn)設(shè)計VGA圖像顯示控制需要注意兩個問題:一個是時序的驅(qū)動,這是完成設(shè) 計的關(guān)鍵,時序稍有偏差,顯示必然不正常,甚至會損壞彩色顯示器;另一個是 VGA信號的電平驅(qū)動。顯示控制器設(shè)計提示:顯示器的技術(shù)規(guī)格提供的行頻一般都滿足在 30-45KHZ (保守數(shù)據(jù)),場頻一般滿足在50-75HZ (保守數(shù)據(jù)),針對以上保守數(shù) 據(jù),我們以30KHZ的行頻進行掃描時所需時鐘頻率為:30KHZX 800 (行周

10、期) =24MHz則場頻為:30KHz 525 (場周期)=57.14Hz,針對實驗箱的條件,可以 用12MHz的信號經(jīng)過倍頻(EP1K30QC208-芯片特有的功能,在 MaxPlusll軟件 中調(diào)用參數(shù)可設(shè)置兆功能元件庫 mega_lpm的CLKLOC元件來倍頻)來產(chǎn)生24MHz 的時鐘頻率,參考設(shè)計的頂層文件如下圖所示::CL0CKB0aST=2:IINFLIT FREQIUENCY=Z4HS &H hs Q3(fotl27 -VS:阿時-|/ VS 打dot 偵 128,RESETIR:QU7PVT 、0 一raiBia-innraiaiiBiaiiiiiraiaiBiii4 r-HD

11、石:dUTPirr.aiaiBJbiii. jibH Q madot砂站:卅rprr1 b ;gadat126;圖6.VGA接口實現(xiàn)頂視圖VGACOR模塊包含了掃描時序產(chǎn)生模塊、圖像描述模塊。時序產(chǎn)生模塊的設(shè) 計可參考圖5所示來設(shè)計,圖像描述模塊主要通過 640X 480個像素點來描述圖 像。如本項設(shè)計的彩條信號發(fā)生器可通過圖像描述模塊產(chǎn)生如下表所示的3種顯示模式,共6種顯示變化的圖像。表3 VGA圖形編碼1行彩條1白黃青綠品紅監(jiān)黑2:黑藍紅品綠青黃白2r豎彩條11白黃青綠品紅監(jiān)黑2:黑藍紅品綠青黃白3棋盤格1棋盤格顯示模式12 :棋盤格顯示模式2上表顏色對應(yīng)的編碼為:表4 VGA顏色編碼顏色

12、黑八、藍紅品綠青黃白G00001111R00110011B01010101在設(shè)計完彩條信號發(fā)生器的基礎(chǔ)上很容易完成漢字 /圖像的設(shè)計。由于本設(shè) 計是對視頻數(shù)據(jù)進行處理,用普通的設(shè)計方法(不使用專用芯片),在單芯片上實現(xiàn)是不可思議的,而在此用 FPGA設(shè)計,輕松地達到了面積和速度上的要求。六、程序及仿真(一)、管腳分配本設(shè)計米用主板上的VGA接口實驗?zāi)J剑耗J?時鐘及控制clk-pin_29 clock9實驗要求采用12M的時鐘rstpin_240 鍵8,低電平有效,作為使能信號 MD -pin_233 鍵1,模式選擇信號,共有6種模式 顯示器輸出R -pin_180PIO29G -pin_18

13、1PIO30B -pin_182PIO31HS -pin_183PIO32VS -pin_185PIO34(二八彩條發(fā)生器程序?qū)崿F(xiàn)及仿真1、主程序module vga( clk_25m,rst_n, / 系統(tǒng)控制 hsyn c,vs yn c,vga_rgb,MD / VGA 控制 );in put clk_25m; / 25MHzin put rst_n; 低電平復位in put MD;/ FPGA與VGA接口信號output hsync; 行同步信號output vsync; 場同步信號output2:0 vga_rgb;/坐標計數(shù)reg9:0 x_cnt;行坐標reg9:0 y_cnt;

14、/ 列坐標always (posedge clk_25m or negedge rst_n) if(!rst_n) x_cnt = 10d0;else if(x_cnt = 10d799) x_cnt = 10d0; else x_cnt = x_cnt+1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) y_cnt = 10d0;else if(y_cnt = 10d524) y_cnt = 10d0; else if(x_cnt = 10d799) y_cnt = y_cnt+1b1;/ 產(chǎn)生 VGA 場同步 ,行同步信號 re

15、g hsync_r,vsync_r;always (posedge clk_25m or negedge rst_n) if(!rst_n) hsync_r = 1b1;else if(x_cnt = 10d0) hsync_r = 1b0; /產(chǎn)生 hsync 信號 else if(x_cnt = 10d96) hsync_r = 1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) vsync_r = 1b1;else if(y_cnt = 10d0) vsync_r = 1b0; / 產(chǎn)生 vsync 信號 else if(y_

16、cnt = 10d2) vsync_r = 1b1;assign hsync = hsync_r; assign vsync = vsync_r;/有效顯示標志位產(chǎn)生reg valid_yr; /行顯示有效信號 always (posedge clk_25m or negedge rst_n)if(!rst_n) valid_yr = 1b0;else if(y_cnt = 10d32) valid_yr = 1b1; else if(y_cnt = 10d512) valid_yr = 1b0;wire valid_y = valid_yr;reg valid_r; / VGA 有效顯示區(qū)標

17、志位always (posedge clk_25m or negedge rst_n)if(!rst_n) valid_r = 1b0;else if(x_cnt = 10d141) & valid_y) valid_r = 1b1;else if(x_cnt = 10d781) & valid_y) valid_r = 1b0;wire valid = valid_r;wire9:0 x_dis;/橫坐標顯示有效區(qū)域相對坐標值 0-639wire9:0 y_dis;/豎坐標顯示有效區(qū)域相對坐標值 0-479assign x_dis = x_cnt - 10d142;assign y_dis

18、= y_cnt - 10d33;/reg2:0 cnt;always (posedge MD or negedge rst_n) begin if(!rst_n)cnt = 3d0;else if(cnt=3d5) cnt=3d0;else cnt=cnt+3d1;end/ VGA 色彩信號產(chǎn)生/*RGB = 000黑色RGB = 100紅色= 001藍色= 101紫色= 010綠色= 110黃色= 011青色= 111白色*/reg2:0 vga_rgb;always( posedge clk_25m)begin if(!valid) vga_rgb = 10d0 & x_dis 10d80

19、) vga_rgb = 10d80 & x_dis 10d160) vga_rgb = 10d160 & x_dis 10d240) vga_rgb = 10d240 & x_dis 10d320) vga_rgb = 10d320 & x_dis 10d400) vga_rgb = 10d400 & x_dis 10d480) vga_rgb = 10d480 & x_dis 10d560) vga_rgb = 10d560 & x_dis 10d640) vga_rgb = 10d0 & x_dis 10d80) vga_rgb = 10d80 & x_dis 10d160) vga_rg

20、b = 10d160 & x_dis 10d240) vga_rgb = 10d240 & x_dis 10d320) vga_rgb = 10d320 & x_dis 10d400) vga_rgb = 10d400 & x_dis 10d480) vga_rgb = 10d480 & x_dis 10d560) vga_rgb = 10d560 & x_dis 10d640) vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d

21、180 & y_dis 10d240) vga_rgb = 10d240 & y_dis 10d300) vga_rgb = 10d300 & y_dis 10d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d180 & y_dis 10d240) vga_rgb = 10d240 & y

22、_dis 10d300) vga_rgb = 10d300 & y_dis 10d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d180 & y_dis 10d240) vga_rgb = 10d240 & y_dis 10d300) vga_rgb = 10d300 & y_dis 10

23、d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 3d7;end 10d80,10d160,10d240,10d320,10d400,10d480,10d560,10d640: vga_rgb = 10d0 & y_dis 10d60) vga_rgb = 10d60 & y_dis 10d120) vga_rgb = 10d120 & y_dis 10d180) vga_rgb = 10d180 & y_dis 10d240) vga_rgb = 10d240 & y_dis 1

24、0d300) vga_rgb = 10d300 & y_dis 10d360) vga_rgb = 10d360 & y_dis 10d420) vga_rgb = 10d420 & y_dis 10d480) vga_rgb = 3d0; end 10d80,10d160,10d240,10d320,10d400,10d480,10d560,10d640: vga_rgb = vga_rgb+3d1; /每 80 個橫坐標像素點后顯示色彩數(shù)據(jù)增 1 變化 default: ;endcaseend end endendmodule2、驗證程序timescale 1 ns/ 1 ps modul

25、e tb_vga ();reg t_clk_25m; reg t_rst_n;wire t_hsync;wire 2:0 t_vga_rgb;wire t_vsync;wire t_MD;vgahct dut( .clk_25m(t_clk_25m), .hsync(t_hsync), .rst_n(t_rst_n), .vga_rgb(t_vga_rgb), .vsync(t_vsync),.MD(t_MD) );initial begin t_clk_25m=0;t_rst_n=1;t)MD=O;#20;t_rst_ n=0;#50;t_rst_ n=1;$display(R unning

26、 testbe nch);#10000000000 $stop;endalways #0.04 t_clk_25m=t_clk_25m;always #200 t_MD=t_MD;en dmodule(三八 字符顯示程序及仿真1、主程序timescale 1ns / 1psmodule vga_char( clk_25m,rst_n, 系統(tǒng)控制hsync,vsync,vga_rgb / VGA 控制 );in put clk_25m; / 25MHzin put rst_ n;低電平復位/ FPGA與VGA接口信號output hsync; 行同步信號output vsync; 場同步信號 o

27、utput2:0 vga_rgb;/坐標計數(shù)reg9:0 x_cnt;行坐標always (posedge clk_25m or negedge rst_n) if(!rst_n) x_cnt = 10d0;else if(x_cnt = 10d799) x_cnt = 10d0; else x_cnt = x_cnt+1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) y_cnt = 10d0;else if(y_cnt = 10d524) y_cnt = 10d0; else if(x_cnt = 10d799) y_cnt =

28、 y_cnt+1b1;/ VGA 場同步 ,行同步信號 reg hsync_r,vsync_r;/同步信號always (posedge clk_25m or negedge rst_n) if(!rst_n) hsync_r = 1b1;else if(x_cnt = 10d0) hsync_r = 1b0;/產(chǎn)生 hsync 信號else if(x_cnt = 10d96) hsync_r = 1b1;always (posedge clk_25m or negedge rst_n) if(!rst_n) vsync_r = 1b1;else if(y_cnt = 10d0) vsync_

29、r = 1b0;/產(chǎn)生 vsync 信號else if(y_cnt = 10d2) vsync_r = 1b1;assign hsync = hsync_r; assign vsync = vsync_r;/有效顯示標志位產(chǎn)生reg valid_yr; /行顯示有效信號 always (posedge clk_25m or negedge rst_n)if(!rst_n) valid_yr = 1b0;else if(y_cnt = 10d32) valid_yr = 1b1;else if(y_cnt = 10d512) valid_yr = 1b0;wire valid_y = valid

30、_yr;reg valid_r; / VGA 有效顯示區(qū)標志位 always (posedge clk_25m or negedge rst_n) if(!rst_n) valid_r = 1b0;else if(x_cnt = 10d141) & valid_y) valid_r = 1b1;else if(x_cnt = 10d781) & valid_y) valid_r = 1b0;wire valid = valid_r;/wire9:0 x_dis;/橫坐標顯示有效區(qū)域相對坐標值0-639wire9:0 y_dis;/豎坐標顯示有效區(qū)域相對坐標值0-479/assign x_dis

31、 = x_cnt - 10d142; assign y_dis = y_cnt - 10d33; / VGA色彩信號產(chǎn)生/*RGB= 000黑色RGB= 100紅色= 001藍色=101紫色= 010綠色=110黃色= 011青色=111白色*/*HIT 字模參數(shù) */parameter char_line0=24h000000, char_line1=24h000000, char_line2=24h000000, char_line3=24he77cfe, char_line4=24h421092, char_line5=24h421010, char_line6=24h421010, c

32、har_line7=24h421010, char_line8=24h7e1010, char_line9=24h421010, char_linea=24h421010, char_lineb=24h421010, char_linec=24h421010, char_lined=24he77c38, char_linee=24h000000, char_linef=24h000000;reg4:0 char_bit; /顯示位計算always (posedge clk_25m or negedge rst_n)if(!rst_n) char_bit = 5h1f;else if(x_cnt

33、 = 10d442) char_bit 10d442 & x_cnt 10d466) char_bit = char_bit-1b1; 后面的數(shù)據(jù)reg2:0 vga_rgb; / VGA 色彩顯示寄存器always (posedge clk_25m)if(!valid) vga_rgb 10d442 & x_cnt 10d467) begin case(y_dis)10d231: if(char_line0char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d232: if(char_line1char_bit) vga_rgb = 3b

34、100; else vga_rgb = 3b010;/綠色10d233: if(char_line2char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d234: if(char_line3char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d235: if(char_line4char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d236: if(char_line5char_bit) vga_rgb = 3b100; else vg

35、a_rgb = 3b010;/綠色10d237: if(char_line6char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d238: if(char_line7char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d239: if(char_line8char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d240: if(char_line9char_bit) vga_rgb = 3b100; else vga_rgb = 3b010;/綠色10d241: if(char_lineachar_bit) vga_rgb = 3b100; else vga_rgb = 3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論