數(shù)電實驗-vga圖像顯示控制_第1頁
數(shù)電實驗-vga圖像顯示控制_第2頁
數(shù)電實驗-vga圖像顯示控制_第3頁
數(shù)電實驗-vga圖像顯示控制_第4頁
數(shù)電實驗-vga圖像顯示控制_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、-作者xxxx-日期xxxx數(shù)電實驗-vga圖像顯示控制【精品文檔】數(shù)字電路綜合實驗報告學(xué)校: 北京郵電大學(xué) 學(xué)院:信息與通信工程學(xué)院專業(yè): 通信工程 班級: 2008211115 學(xué)號: 08210460 班內(nèi)序號: 30 姓名: 唐秋月 2011年1月5日VGA圖像顯示控制器1、 摘要和關(guān)鍵詞摘要:VGA顯示屏顯示采用逐行掃描的方式解決,陰極射線槍發(fā)出電子束打在涂有熒光粉的熒光屏上,產(chǎn)生GRB基色,合成一個彩色像素。掃描從屏幕的左上方開始,從左到右,從上到下,逐行掃描,每掃完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結(jié)束時,用行同步信號進行行同步;掃

2、描完所有行,用場同步信號進行場同步,并使掃描回到屏幕的左上方,同時進行場消隱,并預(yù)備進行下一次的掃描。通過控制掃描計數(shù)器不同值時對RGB三原色信號的控制,來完成顯示設(shè)計。關(guān)鍵詞:行列掃描 行列同步 RGB三原色控制2、 設(shè)計任務(wù)要求實驗?zāi)康?. 熟練掌握 VHDL 語言和QuartusII 軟件的使用;2. 理解狀態(tài)機的工作原理和設(shè)計方法;3. 掌握利用 EDA 工具進行自頂向下的電子系統(tǒng)設(shè)計方法;4. 熟悉 VGA 接口協(xié)議規(guī)范。實驗要求:設(shè)計一個VGA 圖像顯示控制器,達到如下功能: 顯示模式為64048060HZ 模式; 用撥碼開關(guān)控制R、G、B(每個2 位),使顯示器可以顯示64種純色

3、; 在顯示器上顯示橫向彩條信號(至少6 種顏色); 在顯示器上顯示縱向彩條信號(至少8 種顏色); 在顯示器上顯示自行設(shè)定的圖形、圖像等。 選做:自擬其它功能。三、實驗原理1、 顯示控制原理 常見的彩色顯示器一般由陰極射線管(CRT)構(gòu)成,彩色由GRB(Green Red Blue)基色組成。顯示采用逐行掃描的方式解決,陰極射線槍發(fā)出電子束打在涂有熒光粉的熒光屏上,產(chǎn)生GRB基色,合成一個彩色像素。掃描從屏幕的左上方開始,從左到右,從上到下,逐行掃描,每掃完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT、對電子束進行消隱,每行結(jié)束時,用行同步信號進行行同步;掃描完所有行,用場同步

4、信號進行場同步,并使掃描回到屏幕的左上方,同時進行場消隱,并預(yù)備進行下一次的掃描。VGA顯示控制器控制 CRT顯示圖象的過程如圖1所示2、VGA時序信號計算機內(nèi)部以數(shù)字方式生成的顯示圖像信息,被顯卡中的數(shù)字/模擬轉(zhuǎn)換器轉(zhuǎn)變?yōu)镽、G、B 三原色信號和行、場同步信號,信號通過電纜傳輸?shù)斤@示設(shè)備中。對于模擬顯示設(shè)備,如模擬CRT 顯示器,信號被直接送到相應(yīng)的處理電路,驅(qū)動控制顯像管生成圖像。設(shè)計 VGA 控制器的關(guān)鍵是產(chǎn)生符合VGA 接口協(xié)議規(guī)定的行同步和場同步信號,它們的時序關(guān)系如下圖所示:h_sync:水平同步信號(負脈沖),每個水平掃描周期顯示器刷新一行;v_sync:垂直同步信號(負脈沖),

5、每個垂直掃描周期顯示器刷新一幀;行同步信號(HS)場同步信號(VS)時序名稱時鐘數(shù)(像素數(shù))時序名稱行數(shù)前沿16前沿10行同步96場同步2數(shù)據(jù)640數(shù)據(jù)480后沿48后沿33總像素數(shù)800總行數(shù)525按照每秒60幀的刷新速度來計算,所需要的時鐘頻率為: 頻率60Hz(幀數(shù))525(行)800(每一行像素數(shù))25.2MHz 所以我們通過開發(fā)系統(tǒng)的50MHz時鐘資源,通過時鐘分頻產(chǎn)生25MHz的頻率即可。雖然沒有達到精確的的時鐘頻率(刷新率可能會是59Hz),但是并不會造成影響。3、VGA顯示器的工作過程 ms的時間后,開始刷新第一行的第一個像素(列數(shù)加1),并按照所需的時鐘頻率,刷新此行中其余像

6、素。直到顯示器接收到下一個h_sync信號,又開始刷新第二行。 重復(fù)此過程,直到刷新到屏幕的底部。當(dāng)刷新了最下面一行的最后一個像素后,顯示器即完成了一幀的刷新,控制器又輸出v_sync信號,顯示器又開始一個新的垂直刷新循環(huán)。四、系統(tǒng)設(shè)計(包括設(shè)計思路、總體框圖、分塊設(shè)計)總體設(shè)計思路:VGA顯示器的控制器可劃分為3個子模塊:I.時鐘分頻子模塊;II.時序控制子模塊 ,提供同步信號(h_sync和v_sync)及像素位置信息;III.生成圖形子模塊,接收像素位置信息,并輸出顏色信息;由于系統(tǒng)時鐘為50MHZ,實驗所需頻率為25MHZ,故時鐘分頻模塊只需在程序中通過分頻語句完成;生成圖形子模塊由系

7、統(tǒng)提供;所以重點設(shè)計的模塊就是時序控制模塊。生成圖形模塊時序控制模塊VGA顯示器總體系統(tǒng)框圖如下: 分頻模塊 HS系統(tǒng)時 VS鐘 R G B撥碼輸入時序控制模塊設(shè)計顯示顯示前沿后沿同步同步前沿后沿 Hcnt=639 Hcnt=799 Hcnt=655 Hcnt=751 行同步狀態(tài)機狀態(tài)轉(zhuǎn)移圖 Vcnt=479 Vcnt=524 Vcnt=489 Vcnt=491 列同步狀態(tài)機狀態(tài)轉(zhuǎn)移圖時序控制模塊流程圖:五、源程序(含注釋)library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity vgacod

8、e isport(sw0 : in std_logic; -撥碼開關(guān)輸入sw1 : in std_logic; sw2 : in std_logic; sw3 : in std_logic; sw4 : in std_logic; sw5 : in std_logic; sw6 : in std_logic; sw7 : in std_logic; clk : in std_logic; -系統(tǒng)時鐘輸入hsync : out std_logic;vsync : out std_logic;rdata : out std_logic;gdata : out std_logic;bdata : o

9、ut std_logic; lrdata : out std_logic;lgdata : out std_logic;lbdata : out std_logic); end vgacode;architecture behave of vgacode is- horizontal timing signalsconstant h_data: integer:=640; -VGA時序中幾個關(guān)鍵數(shù)據(jù)constant h_front: integer:=16;constant h_back: integer:=48;constant h_sync: integer:=96;constant h_

10、period: integer:= h_sync + h_data + h_front + h_back; -800- vertical timing signalsconstant v_data: integer:=480;constant v_front: integer:=10;constant v_back: integer:=33;constant v_sync: integer:=2;constant v_period: integer:= v_sync + v_data + v_front + v_back; -525signal henable, venable : std_l

11、ogic;signal clk25M : std_logic;signal hcnt: std_logic_vector(9 downto 0);- horizontal pixel countersignal vcnt: std_logic_vector(9 downto 0);- vertical line counterbeginprocess(clk)beginif clkevent and clk = 1 then -由系統(tǒng)時鐘分頻得到25MHZ的頻率信號clk25M = not clk25M;end if;end process;process(clk25M) -行掃描begini

12、f (clk25Mevent and clk25M = 1) thenif hcnt h_period thenhcnt = hcnt + 1;elsehcnt 0);end if;end if;end process;process(clk25M) -行同步beginif (clk25Mevent and clk25M = 1) thenif (hcnt = (h_data + h_front) and hcnt (h_data + h_sync + h_front) thenhsync = 0;else hsync = 1;end if;end if;end process;process

13、(clk25M)-列掃描beginif (clk25Mevent and clk25M = 1) thenif hcnt = (h_data + h_sync + h_front) thenif vcnt v_period thenvcnt = vcnt + 1;elsevcnt 0);end if;end if;end if;end process;process(clk25M)-列同步beginif (clk25Mevent and clk25M = 1) thenif (vcnt = (v_data + v_front) and vcnt (v_data + v_sync + v_fro

14、nt) thenvsync = 0;else vsync = 1;end if;end if;end process;process(clk25M)-行顯示beginif (clk25Mevent and clk25M = 1) thenif hcnt h_data thenhenable = 1;elsehenable = 0;end if;end if;end process;process(clk25M)-列顯示beginif (clk25Mevent and clk25M = 1) thenif vcnt v_data thenvenable = 1;elsevenable = 0;e

15、nd if;end if;end process;process(clk25M,henable,venable) -幾種顯示模式begin if (clk25Mevent and clk25M = 1) thenif(henable=1 and venable=1) thenif sw0 = 0 and sw1 = 0 then -64 color rdata = sw7 ; gdata = sw5 ; bdata = sw3 ; lrdata = sw6; lgdata = sw4 ; lbdata = sw2 ; else if sw1 = 0 and sw0 = 1 then -豎條紋

16、rdata = hcnt(9); gdata = hcnt(8); bdata = hcnt(7); lrdata = hcnt(6); lgdata = hcnt(5); lbdata = hcnt(4); else if sw1 = 1 and sw0 = 0 then -橫條紋 rdata = vcnt(9); gdata = vcnt(8); bdata = vcnt(7); lrdata = vcnt(6); lgdata = vcnt(5); lbdata = vcnt(4); else if sw1 = 1 and sw0 = 1 then -棋盤顯示 if ( henable

17、= 1 and venable = 1 ) then if ( hcnt(4) = 0 and hcnt(3) = 0 and hcnt(2) =0and hcnt(1) = 0 and hcnt(0) = 0 ) or (vcnt(4) = 0 and vcnt(3) =0 and vcnt(2) =0 and vcnt(1) = 0 and vcnt(0) = 0 ) thenlrdata = 0;lgdata = 0;lbdata = 0;rdata = 0;gdata = 0;bdata = 0; else lrdata = 1;lgdata = 1 ;lbdata = 0 ;rdat

18、a = 1 ;gdata = 0 ;bdata = 0 ; end if; end if; end if; end if; end if; end if;end if;end process;end behave;六、實驗器材1 計算機;2 VGA顯示器;3 直流穩(wěn)壓電源;4 EDA 開發(fā)板及相應(yīng)元器件七、功能說明本實驗實現(xiàn)的功能時通過撥碼開關(guān)控制顯示器的圖像顯示。撥碼開關(guān)一共有8個,D0D1控制模式,D2D3為B信號輸入D4D5為G信號輸入D6D7為R信號輸入。其中 D1D0=00,為純色模式,通過控制前面6個撥碼開關(guān)來調(diào)整顯示器的顏色; D1D0=01為橫條紋顯示; D1D0=10為豎條紋

19、顯示; D1D0=11為棋盤方式顯示后三個方式下條紋的寬度以及顏色都可以通過程序來修改控制。以下為實驗結(jié)果截圖: 純紅色 純綠色 純藍撥碼調(diào)整的64種顏色之一 豎條紋橫條紋棋盤模式占用系統(tǒng)資源情況:八、故障及問題分析1、在實驗中,第一次寫出來的程序可以編譯通過并很好的實現(xiàn)設(shè)計功能,但程序顯得過于冗長和復(fù)雜,重復(fù)性強。于是我在對實驗的理解下做了一些簡化,結(jié)果簡化后實驗結(jié)果與預(yù)想的不同。仔細分析程序的邏輯順序后發(fā)現(xiàn)對程序的細小簡化改變了程序的邏輯,所以造成了實驗結(jié)果不對甚至出不來結(jié)果的現(xiàn)象。在程序的編寫過程中,我們應(yīng)該首先分析各個端口的優(yōu)先級順序,這一點就可以利用if語句首先進行判斷。2、而在編寫vhdl源文件的過程中,我加深了對信號和變量的延時區(qū)別的理解和對process“內(nèi)部串行外部并行”的理解。3、在實驗中,寫完程序編譯時報錯不含頂層實體名,剛開始始終找不出問題在哪,翻閱了數(shù)字電路實驗教程后,才明白在建立一個新的工程時在寫頂層實體名時,實體名、文件名必須和建立工程時所設(shè)定的頂層實體名相同。4、實驗中,需要對每一個端口指定器件的引腳,在引腳指定過程中需

溫馨提示

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

評論

0/150

提交評論