一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FPGA學(xué)習(xí)系列:27. VGA驅(qū)動(dòng)設(shè)計(jì)

FPGA學(xué)習(xí)交流 ? 2018-08-13 13:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

設(shè)計(jì)背景:

VGA(Video Graphics Array) 視頻圖形陣列,IBM1987年隨PS/2機(jī)(PersonalSystem 2)一起推出的使用模擬信號(hào)的一種視頻傳輸標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)對(duì)于現(xiàn)今的個(gè)人電腦市場(chǎng)已經(jīng)十分過時(shí)。但在當(dāng)時(shí)具有分辨率高、顯示速率快、顏色豐富等優(yōu)點(diǎn)在彩色顯示器領(lǐng)域取得了廣泛的應(yīng)用,是眾多制造商所共同支持的一個(gè)低標(biāo)準(zhǔn)。

設(shè)計(jì)原理:

VGA的實(shí)體圖與接口示意圖,如下圖所示,它有15個(gè)針孔:


在開發(fā)板(ZX_1)中,VGA電路原理圖如下圖所示:

image.png


通過原理圖,我們不難發(fā)現(xiàn),VGA需要我們控制的接口只有5個(gè):

image.png


顯示器的掃描規(guī)律是什么?本設(shè)計(jì)采用逐行掃描,逐行掃描是掃描從屏幕左上角一點(diǎn)開始,從左向右逐點(diǎn)掃描,每掃描完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對(duì)電子束進(jìn)行消隱,每行結(jié)束時(shí),用行同步信號(hào)進(jìn)行行同步;當(dāng)掃描完所有的行,形成一幀,用場(chǎng)同步信號(hào)進(jìn)行場(chǎng)同步,并使掃描回到屏幕左上方,同時(shí)進(jìn)行場(chǎng)消隱,開始下一幀。通過這種掃描規(guī)律,很容易看出,在設(shè)計(jì)兩個(gè)有效范圍計(jì)數(shù)器時(shí),場(chǎng)同步信號(hào)計(jì)數(shù)器是以行同步信號(hào)計(jì)數(shù)器為周期的。

VGA的顯示標(biāo)準(zhǔn)如下表所示:

image.png


對(duì)于普通的VGA顯示器都要嚴(yán)格遵循“VGA工業(yè)標(biāo)準(zhǔn)”,否則可能會(huì)損害VGA顯示器,因此我們?cè)谠O(shè)計(jì)時(shí)VGA控制器時(shí),都需要參考顯示器的顯示標(biāo)準(zhǔn),下面是VGA的行掃描時(shí)序與場(chǎng)掃描時(shí)序:

行掃描時(shí)序:

image.png


場(chǎng)掃描時(shí)序:

image.png


根據(jù)上述顯示器的掃描參數(shù)以及掃描時(shí)序,例如800*600@60的顯示模式,60指得是顯示器圖像的刷新頻率,時(shí)鐘40MHz指得是一個(gè)像素輸出的頻率。800*600VGA的分辨率,指有效顯示區(qū)域?yàn)闀r(shí)序中的c段只有800*600,也就是行計(jì)數(shù)在[216,1016],列計(jì)數(shù)在[27,627],在這個(gè)范圍內(nèi),給RGB色值才會(huì)有效。

VGA 工業(yè)標(biāo)準(zhǔn)顯示模式要求:行同步、場(chǎng)同步都為負(fù)極性,即同步脈沖要求是負(fù)脈沖。行同步信號(hào)上電拉高,在行同步計(jì)數(shù)為0時(shí)拉低a個(gè)時(shí)鐘周期,即128,之后拉高,在行同步計(jì)數(shù)到1055時(shí),行同步計(jì)數(shù)器清零,場(chǎng)同步計(jì)數(shù)器加1。在行掃描時(shí)序中,掃描計(jì)數(shù)時(shí),周期就是一個(gè)像素點(diǎn)的時(shí)間。

場(chǎng)同步信號(hào)上電拉高,在場(chǎng)同步計(jì)數(shù)為0時(shí)拉低場(chǎng)同步a個(gè)時(shí)鐘周期,即4,之后拉高,在場(chǎng)同步計(jì)數(shù)到627時(shí),場(chǎng)同步計(jì)數(shù)器清零。

VGA控制器中,還需要控制三個(gè)接口,即三種基色(RG、B),它們共專用8位,分別是Red3位,Green3位,Blue3位,所以可以顯示256種顏色,RGB數(shù)據(jù)的格式如下表所示:

image.png


設(shè)計(jì)架構(gòu)圖:

本設(shè)計(jì)選擇的VGA顯示標(biāo)準(zhǔn)為800*600@60,實(shí)現(xiàn)點(diǎn)亮整個(gè)屏幕,并顯示為全紅。通過分析設(shè)計(jì)的功能,可以得到如下的頂層架構(gòu):

image.png


頂層模塊端口列表如下:

image.png


vga_pll模塊是為了滿足分辨率800*600@60的時(shí)鐘為40MHz,而ZX_1開發(fā)板的系統(tǒng)時(shí)鐘為50MHz,通過鎖相環(huán),將50MHz轉(zhuǎn)化為40MHz。vga_control模塊是為了設(shè)定行場(chǎng)同步信號(hào),并標(biāo)定出有效顯示區(qū)域,并輸出控制顏色的po_rgb信號(hào)。為了便于移植,根據(jù)800*600@60分辨率下的參數(shù),對(duì)其進(jìn)行參數(shù)化定義。

設(shè)計(jì)代碼:

VGA控制器代碼:

0modulevga_control (pi_clk,pi_rst_n,po_hs,po_vs,po_rgb);

1

2inputpi_clk,pi_rst_n;//系統(tǒng)時(shí)鐘復(fù)位

3outputregpo_vs;//VGA場(chǎng)同步信號(hào)

4outputregpo_hs;//VGA行同步信號(hào)

5output[7:0]po_rgb;//VGA場(chǎng)紅綠藍(lán)三基色

6

7//----------------VGA時(shí)序-----------------------------------

8// 顯示模式 時(shí)鐘

9// 800*600@60 40MHz

10///場(chǎng) 同步(a) 消隱后沿(b) 有效顯示(c) 消隱前沿(d) 掃描時(shí)間(e)

11//hs 128 88 800 40 1056

12//vs 4 23 600 1 628

13

14// (Horizontal)掃描 Parameter (像素)

15parameterH_A =128;

16parameterH_B =80;

17parameterH_C =800;

18parameterH_D =40;

19parameterH_E =1056;

20

21

22// 場(chǎng)(Vertical)掃描 Parameter (行數(shù))

23parameterV_A =4;

24parameterV_B =23;

25parameterV_C =600;

26parameterV_D =1;

27parameterV_E =628;

28

29//行掃描計(jì)數(shù)器,

30reg[10:0]hcnt;

31

32always@(posedgepi_clk ornegedgepi_rst_n)

33begin

34if(!pi_rst_n)

35hcnt <=11'd0;

36else

37begin

38if(hcnt ==(H_E -1'b1))//掃描完一行像素

39hcnt <=11'd0;

40else

41hcnt <=hcnt +1'b1;

42end

43end

44

45//場(chǎng)掃描計(jì)數(shù)器

46reg[10:0]vcnt;

47

48always@(posedgepi_clk ornegedgepi_rst_n)

49begin

50if(!pi_rst_n)

51vcnt <=11'd0;

52elseif(vcnt ==(V_E -1'b1))

53vcnt <=11'd0;

54elseif(hcnt ==(H_E -1'b1))

55vcnt <=vcnt +1;

56end

57

58//行同步輸出

59always@(posedgepi_clk ornegedgepi_rst_n)

60begin

61if(!pi_rst_n)

62po_hs <=1'b1;

63elseif(hcnt <H_A)

64po_hs <=1'b0;

65else

66po_hs <=1'b1;

67end

68

69//assign po_hs = (hcnt <= H_A - 1'b1) ? 1'b0 : 1'b1;

70

71//場(chǎng)同步輸出

72always@(posedgepi_clk ornegedgepi_rst_n)

73begin

74if(!pi_rst_n)

75po_vs <=1'b1;

76elseif(vcnt <V_A)

77po_vs <=1'b0;

78else

79po_vs <=1'b1;

80end

81

82//assign po_vs = (vcnt <= V_A - 1'b1) ? 1'b0 : 1'b1;

83

84wirergb_en;

85

86assignrgb_en =(hcnt >=H_A +H_B &&hcnt <H_A +H_B +H_C)&&

87(vcnt >=V_A +V_B &&vcnt <V_A +V_B +V_C)?1'b1:1'b0;

88

89assignpo_rgb =rgb_en ?8'b111_000_00:8'b0000_0000;

90

91endmodule


頂層文件如下所示:

0modulevga_display_pure (pi_clk,pi_rst_n,po_hs,po_vs,po_rgb);

1

2inputpi_clk,pi_rst_n;//系統(tǒng)時(shí)鐘復(fù)位

3outputpo_vs;//VGA場(chǎng)同步信號(hào)

4outputpo_hs;//VGA行同步信號(hào)

5output[7:0]po_rgb;//VGA場(chǎng)紅綠藍(lán)三基色

6

7//----------------VGA時(shí)序-----------------------------------

8// 顯示模式 時(shí)鐘

9// 800*600@60 40MHz

10///場(chǎng) 同步(a) 消隱后沿(b) 有效顯示(c) 消隱前沿(d) 掃描時(shí)間(e)

11//hs 128 88 800 40 1056

12//vs 4 23 600 1 628

13

14wirevga_clk;

15

16vga_pll vga_pll_dut(

17.areset(~pi_rst_n),

18.inclk0(pi_clk),

19.c0(vga_clk)

20);

21

22vga_control vga_control_dut(

23.pi_clk(vga_clk),

24.pi_rst_n(pi_rst_n),

25.po_hs(po_hs),

26.po_vs(po_vs),

27.po_rgb(po_rgb)

28);

29

30endmodule

通過編譯后生成的RTL視圖如下:

image.png

為了驗(yàn)證本設(shè)計(jì)的邏輯正確性,我們先對(duì)其進(jìn)行了仿真,在仿真時(shí),為了減少仿真的時(shí)間,先將行、場(chǎng)掃描的對(duì)應(yīng)參數(shù),進(jìn)行了縮放,這樣不僅節(jié)約了仿真時(shí)間,同時(shí)由于掃描數(shù)據(jù)量變少,更加便于分析觀察。其仿真代碼所示;

0`timescale1ns/1ps//仿真時(shí)間精度時(shí)間單位

1

2modulevga_display_pure_tb;

3

4regpi_clk,pi_rst_n;//系統(tǒng)時(shí)鐘復(fù)位

5wirepo_vs;//VGA場(chǎng)同步信號(hào)

6wirepo_hs;//VGA行同步信號(hào)

7wire[7:0]po_rgb;//VGA場(chǎng)紅綠藍(lán)三基色

8

9//初始化數(shù)據(jù),并附相應(yīng)初值

10initialbegin

11pi_clk =0;

12pi_rst_n =0;

13#200.1pi_rst_n =1;

14

15end

16

17vga_display_pure vga_display_pure_inst (

18.pi_clk(pi_clk),

19.pi_rst_n(pi_rst_n),

20.po_hs(po_hs),

21.po_vs(po_vs),

22.po_rgb(po_rgb)

23);

24

25always#10pi_clk =~pi_clk;//50MHz時(shí)鐘描述

26

27endmodule


仿真圖:

image.png


rgb_en信號(hào),只有當(dāng)po_vspo_hs同時(shí)為高電平時(shí),才有效,并且有po_rgb Red基色信號(hào)輸出,時(shí)序仿真細(xì)節(jié)圖如下所示:

image.png


通過觀察和分析時(shí)序圖,可以發(fā)現(xiàn)與設(shè)計(jì)吻合,接下來則可進(jìn)行管腳分配,并下板驗(yàn)證,驗(yàn)證結(jié)果如下:


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1645

    文章

    22018

    瀏覽量

    616999
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    開源電機(jī)驅(qū)動(dòng),免費(fèi)直播學(xué)習(xí)!

    開源電機(jī)驅(qū)動(dòng),免費(fèi)直播學(xué)習(xí)!
    的頭像 發(fā)表于 06-13 10:07 ?373次閱讀
    開源電機(jī)<b class='flag-5'>驅(qū)動(dòng)</b>,免費(fèi)直播<b class='flag-5'>學(xué)習(xí)</b>!

    VGA和DP的具體區(qū)別

    VGA和DP是兩種常見的顯示接口,它們?cè)谠O(shè)計(jì)、性能和應(yīng)用方面有顯著區(qū)別。
    的頭像 發(fā)表于 05-14 16:36 ?889次閱讀

    27個(gè)FPGA實(shí)例源代碼

    本資料收集匯總了27個(gè)FPGA實(shí)例源代碼,有需要的可以下載學(xué)習(xí)! 獲取完整文檔資料可下載附件哦!?。?!如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~
    發(fā)表于 03-14 17:31

    基于FPGA的電子琴設(shè)計(jì)

    在之前也出了幾篇源碼系列,基本上都是一些小設(shè)計(jì),源碼系列主要就會(huì)想通過實(shí)操訓(xùn)練讓各位學(xué)習(xí)者,尤其是初學(xué)者去更好的理解學(xué)習(xí)FPGA,或者給要的
    的頭像 發(fā)表于 01-20 14:07 ?798次閱讀
    基于<b class='flag-5'>FPGA</b>的電子琴設(shè)計(jì)

    基于FPGAVGA驅(qū)動(dòng)設(shè)計(jì)(附源工程)

    ? 設(shè)計(jì)背景 VGA (Video Graphics Array) 即視頻圖形陣列,是IBM于1987年隨PS/2機(jī)(PersonalSystem 2)一起推出的使用模擬信號(hào)的一種視頻傳輸標(biāo)準(zhǔn)。這個(gè)
    的頭像 發(fā)表于 01-14 11:31 ?981次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>VGA</b><b class='flag-5'>驅(qū)動(dòng)</b>設(shè)計(jì)(附源工程)

    5CGTFD7D5F27C7N Intel/Altera可編程邏輯器件(CPLD/FPGA)

    Altera 的Cyclone? V系列FPGA,型號(hào)5CGTFD7D5F27C7N,一篇文章帶你解讀,該型號(hào)的基本屬性。
    的頭像 發(fā)表于 11-29 15:26 ?885次閱讀
    5CGTFD7D5F<b class='flag-5'>27</b>C7N Intel/Altera可編程邏輯器件(CPLD/<b class='flag-5'>FPGA</b>)

    如何改善VGA信號(hào)質(zhì)量

    在數(shù)字時(shí)代,VGA信號(hào)雖然不再是主流,但在某些情況下,如老式設(shè)備升級(jí)或特定工業(yè)應(yīng)用中,VGA仍然是不可或缺的。然而,VGA信號(hào)容易受到干擾,導(dǎo)致圖像質(zhì)量下降。 1. 使用高質(zhì)量的VGA
    的頭像 發(fā)表于 11-08 10:32 ?2097次閱讀

    VGA轉(zhuǎn)成USB-C的方法

    VGA信號(hào)轉(zhuǎn)換成USB-C信號(hào),通常需要使用一個(gè)專門的轉(zhuǎn)換器或適配器。以下是實(shí)現(xiàn)這一轉(zhuǎn)換的具體方法和步驟: 一、使用USB-C VGA轉(zhuǎn)換器 選擇轉(zhuǎn)換器 : 選購一個(gè)質(zhì)量可靠的USB-C VGA
    的頭像 發(fā)表于 11-08 10:15 ?2036次閱讀

    如何排查VGA連接不良問題

    VGA(Video Graphics Array)是一種模擬視頻傳輸接口,廣泛應(yīng)用于計(jì)算機(jī)顯示器、投影儀等顯示設(shè)備。盡管現(xiàn)代顯示技術(shù)已經(jīng)發(fā)展到HDMI、DisplayPort等數(shù)字接口,但VGA接口
    的頭像 發(fā)表于 11-08 10:11 ?5335次閱讀

    VGA和DP接口的優(yōu)缺點(diǎn)比較

    廉 :VGA接口因其歷史悠久,制造成本相對(duì)較低,因此在預(yù)算有限的情況下,VGA接口是一個(gè)經(jīng)濟(jì)的選擇。 廣泛兼容性 :VGA接口在早期的顯示器和圖形卡上非常普遍,因此它具有良好的向后兼容性。 簡(jiǎn)單易用 :
    的頭像 發(fā)表于 11-08 10:08 ?4490次閱讀

    如何選擇合適的VGA

    在數(shù)字時(shí)代,視頻和圖像的質(zhì)量對(duì)于我們的日常工作和生活變得越來越重要。無論是在家庭娛樂、商務(wù)演示還是專業(yè)設(shè)計(jì)領(lǐng)域,清晰、穩(wěn)定的圖像傳輸都是不可或缺的。VGA線(Video Graphics Array
    的頭像 發(fā)表于 11-08 10:04 ?2217次閱讀

    FPGA加速深度學(xué)習(xí)模型的案例

    FPGA(現(xiàn)場(chǎng)可編程門陣列)加速深度學(xué)習(xí)模型是當(dāng)前硬件加速領(lǐng)域的一個(gè)熱門研究方向。以下是一些FPGA加速深度學(xué)習(xí)模型的案例: 一、基于FPGA
    的頭像 發(fā)表于 10-25 09:22 ?1155次閱讀

    vga接口怎么接線 vga接口轉(zhuǎn)換器怎么用

    VGA接口,全稱為Video Graphics Array,是一種模擬信號(hào)的顯示標(biāo)準(zhǔn),廣泛應(yīng)用于計(jì)算機(jī)顯示器、投影儀等設(shè)備。隨著技術(shù)的發(fā)展,VGA接口逐漸被數(shù)字接口如HDMI、DisplayPort
    的頭像 發(fā)表于 10-21 09:53 ?4787次閱讀

    FPGA做深度學(xué)習(xí)能走多遠(yuǎn)?

    今天給大俠帶來在FPAG技術(shù)交流群里平時(shí)討論的問題答疑合集(十四),以后還會(huì)多推出本系列,話不多說,上貨。 FPGA技術(shù)交流群目前已有十多個(gè)群,QQ和微信均覆蓋,有需要的大俠可以進(jìn)群,一起交流學(xué)習(xí)
    發(fā)表于 09-27 20:53

    VGA接口的工業(yè)相機(jī)方案5MP/1080P VGA工業(yè)相機(jī)方案

    Scalering及各種圖像處理手段,最后經(jīng)內(nèi)置DAC模塊轉(zhuǎn)為模擬VGA信號(hào)輸出。此IC特別針對(duì)視頻展臺(tái)和工業(yè)相機(jī)提供了幀檢測(cè)等系列高階功能,能有效分離出有瑕疵的幀以最大限度提高畫面清晰度,在從前一般是通過
    的頭像 發(fā)表于 08-23 16:02 ?789次閱讀