集成電路課程設計報告基于FPGA實現(xiàn)VGA彩條信號發(fā)生器設計_第1頁
集成電路課程設計報告基于FPGA實現(xiàn)VGA彩條信號發(fā)生器設計_第2頁
集成電路課程設計報告基于FPGA實現(xiàn)VGA彩條信號發(fā)生器設計_第3頁
集成電路課程設計報告基于FPGA實現(xiàn)VGA彩條信號發(fā)生器設計_第4頁
集成電路課程設計報告基于FPGA實現(xiàn)VGA彩條信號發(fā)生器設計_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、集成電路課程設計報告 vga 彩條圖像發(fā)生器設計 姓名:xxx專業(yè)班級:xxxx 學號:xxxxx 指導老師:xxxxxx1、 課程設計要求 通過一周的時間,小組成員進行學習和討論,來設計一個vhdl/verilog 程序來實現(xiàn)以下功能:1. 利用 fpga 實現(xiàn) vga 彩條信號發(fā)生器.2. 可以產(chǎn)生彩色橫條, 彩色豎條信號, 彩色棋盤格信號.3. 由一個按鍵按照順序選擇不同模式的信號輸出.4. 選用 gw48-pk2系統(tǒng), 編寫程序在 fpga 上實現(xiàn)并加以驗證.二、課程設計目的1、熟悉vga顯示器的實現(xiàn)原理2、加深對vhdl語言的設計編程和設計語言規(guī)則的應用3、熟悉集成電路設計的流程,學

2、習使用eda集成電路設計軟件quartusii 進行模擬綜合,然后在fpga上實現(xiàn)。3、 實驗環(huán)境開發(fā)過程中采用集成工具quartuaii實現(xiàn)設計,選用 gw48-pk2實驗箱,以及一個顯示器。4、 課程設計原理1、 vga顯示原理 vga(video graphics array) 作為一種標準的顯示接口得到了廣泛的應用。文中基于標準vga模式來實現(xiàn)。工業(yè)標準的vga 顯示模式為:640 480 16 60。常見的彩色顯示器一般由陰極射線管(crt) 構成,彩色由grb(green red blue) 基色組成。顯示采用逐行掃描的方式解決,陰極射線槍發(fā)出電子束打在涂有熒光粉的熒光屏上,產(chǎn)生g

3、rb 基色,合成一個彩色像素。掃描從屏幕的左上方開始,從左到右,從上到下,逐行掃描,每掃完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,crt 對電子束進行消隱,每行結束時,用行同步信號進行行同步;掃描完所有行,用場同步信號進行場同步,并使掃描回到屏幕的左上方,同時進行場消隱,并預備進行下一次的掃描。2、 vga信號時序一幀屏幕的顯示是由600行從上至下掃描,800列從左至右填充(這也是為什么每當電腦幾乎要當機的時候,視屏顯示從上之下的延遲掃描)然而微觀上,一行的行掃描是由超過800個列填充完成,一幀圖像超過600行掃描。實際上是vga的時序在作怪。上圖是有關 hsync 和 vsyc

4、nc 的時序圖,以 800 x 600 x 60hz 為例,信息如下:800x600x50hza段b段c 段d 段e 段總共n個列像素hsync signal 列像素 128 88 800 40 1056800x600x50hzo 段p 段q 段r 段s段總共n個行像素vsync signal 行像素 4 23 600 1 628hsync signal 是用來控制“列填充”, 而一個hsync signal 可以分為 4個段,也就是 a (同步段) , b(后肩段),c(激活段),d(前肩段)。hsync signal 的a 是拉低的128 個列像素 ,b是拉高的88個列像素,至于c 是拉高

5、的 800 個列像素,而最后的 d 是拉高的40 個列像素。 一列總共有1056 個列像素。vsync signal 是用來控制“行掃描”。而一個 vsync signal 同樣可以分為 4 個段, 也是 o (同步段) , p(后肩段),q(激活段),r(前肩段)。vsync signal 的o 是拉低的4個行像素 ,p是拉高的23 個行像素,至于q 是拉高的 600 個行像素,而最后的 r 是拉高的 1 個行像素。 一行總共有628 個行像素。“一個行像素”是以“列像素為單位”來定義(以 800 x 600 x 60hz 為例)如下所示 :1個行像素 = 1056個列像素。而“一個列像素”

6、是以“時間位單位”來定義(以 800 x 600 x 60hz 為例),如下所示:1個列像素 = 25 ns。1個行像素 = 1056個列像素 = 1056 x 25ns = 2.64us。(以 800 x 600 x 60hz 為例)上述內(nèi)容讀者可以發(fā)現(xiàn)一個事實,要完成一行的掃描,需要 1056 個列像素,也就是說需要 1056 x25ns的時間。如果要完成所有行的掃描的話,需要628 x 1056 x 25ns 的時間。很遺憾的是,不是所有時間都用來顯示圖片,有一部分的時間是用來同步操作。而hsync signal 只有在的c段 和vsync signal 的 q 段的激活段,數(shù)據(jù)的輸入才

7、有效。3、 v ga 彩條信號產(chǎn)生 彩條信號產(chǎn)生模塊包括了彩條模式控制、豎彩條發(fā)生、橫彩條發(fā)生和棋盤格發(fā)生三個模塊。彩條模式控制可以用一個控制端口來實現(xiàn)。豎彩條發(fā)生模塊根據(jù)行點數(shù)器h_cnt 的計數(shù)值來產(chǎn)生彩條,橫彩條發(fā)生模塊根據(jù)列點數(shù)器v_ cnt 的計數(shù)值來產(chǎn)生彩條,棋盤格的彩條就可以用橫彩條和豎彩條異或來得到。5、 課程設計源代碼library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity color is port(clk,md:in std_logic; hs,vs,r,g,b:out

8、std_logic);end color;architecture behav of color is signal hs1,vs1,fclk,cclk: std_logic; signal mmd:std_logic_vector(1 downto 0); signal fs:std_logic_vector(3 downto 0); signal cc:std_logic_vector(4 downto 0); signal ll:std_logic_vector(8 downto 0); signal grbx:std_logic_vector(3 downto 1); signal g

9、rby:std_logic_vector(3 downto 1); signal grbp:std_logic_vector(3 downto 1); signal grb:std_logic_vector(3 downto 1);begin grb(2)=(grbp(2)xor md) and hs1 and vs1; grb(3)=(grbp(3)xor md) and hs1 and vs1; grb(1)=(grbp(1)xor md) and hs1 and vs1; process(md)begin if mdevent and md=0 then if mmd=10 then m

10、md=00; else mmd=mmd+1; end if; end if;end process; process(mmd) begin if mmd=00then grbp=grbx; elsif mmd=01then grbp=grby; elsif mmd=10then grbp=grbx xor grby; else grbp=000; end if; end process;process(clk)begin if clkevent and clk =1 then if fs = 13 then fs =0000; else fs =(fs+1); end if; end if;e

11、nd process;fclk=fs(3);cclk=cc(4);process(fclk)beginif fclkevent and fclk =1 then if cc=29 then cc=00000; else cc=cc+1;end if;end if;end process;process(cclk)begin if cclkevent and cclk =0 then if ll=481 then ll=000000000; else ll23 then hs1 =0; else hs1 479 then vs1=0; else vs1=1;end if;end process;

12、process(cc,ll)begin if cc3 then grbx =111; elsif cc6 then grbx =110; elsif cc9 then grbx =101; elsif cc13 then grbx =100; elsif cc15 then grbx =011; elsif cc18 then grbx =010; elsif cc21 then grbx =001; else grbx=000; end if; if ll60 then grby =111; elsif ll130 then grby =110; elsif ll180 then grby

13、=101; elsif ll240 then grby =100; elsif ll300 then grby =011; elsif ll360 then grby =010; elsif ll420 then grby =001; else grby=000; end if;end process;hs=hs1;vs=vs1;r=grb(2);g=grb(3);b=grb(1);end behav;6、 課程設計步驟 1.1、創(chuàng)建一個文件夾為vga。設置好保存路徑。1.2、打開quartusii,在new窗口中的device design files 中選擇編譯文件的語言類型,這里選擇vh

14、dl file。輸入本設計的程序源代碼。然后filesave as,保存的名字應與實體名保持一致。1.3、選擇菜單filenew project wizard,創(chuàng)建一個新的工程,工程名要和頂層文件的實體名一致,為colour。1.4、點擊next把文件加入工程中,選擇目標芯片,本設計用到的芯片為cyclone系列的ep1c3tc144。1.5、一直next 后finish。2.1、選擇processing 菜單的 start compilation ,開始編譯。編譯過程中,如果有錯誤,在編譯報告窗口中就會出現(xiàn)詳細錯誤內(nèi)容。雙擊此條文,就會彈出相應的vhdl文件,進行修改后再進行編譯,直至編譯成

15、功沒有錯誤。窗口如下圖:3.1、在編譯通過后,對設計進行時序仿真,添加波形。打開波形編輯器。選擇filenewvector waveform fileok3.2、設置仿真時間區(qū)域,選擇editend time,在time欄輸入10本設計設置為10ms。3.3、將波形文件存盤。選擇filesave as ,文件名為colour.vwf3.4、選擇viewutility windowsnode finder,在filter框中選pins:all,然后單擊list按鈕,在下方的nodes found 窗口中就出現(xiàn)工程中的所有端口引腳名,用鼠標把輸入輸出端口引腳拖到波形編輯器。3.5、給clk時鐘信號

16、設置周期為83us,占空比為50,然后設置md的周期,周期為5ms。3.6、選擇start simulation ,直達出現(xiàn)波形圖。如下圖:4.1、引腳設置選擇assignment assignment editor 進入編輯窗口,在category 欄中選擇pin,雙擊to欄,雙擊location,在下拉菜單中選擇對應端口信號名的器件引腳號。引腳號需要查看相關的工具書。引腳如下圖:4.2、在存儲鎖定的引腳后,還要再編譯一次,才能將引腳鎖定信息編譯進下載文件中。5.1、下載到fpga上實現(xiàn) 將顯示器連接電源,通過vga接口接在試驗箱上。5.2、打開顯示器。選擇programmer,編程器選擇byte blater,選擇工程文件,點擊start。這樣在顯示器上就會出現(xiàn)彩色條文。如下: 7、 實驗總結本實驗在課編程技術的基礎上,根據(jù)vga原理,運用vhdl描述語言實現(xiàn)了vga控制設計的方案。1. 再設計的過程中,

溫馨提示

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

評論

0/150

提交評論