色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

FPGA學習系列:27. VGA驅動設計

FPGA學習交流 ? 2018-08-13 13:45 ? 次閱讀

設計背景:

VGA(Video Graphics Array) 視頻圖形陣列,IBM1987年隨PS/2(PersonalSystem 2)一起推出的使用模擬信號的一種視頻傳輸標準。這個標準對于現今的個人電腦市場已經十分過時。但在當時具有分辨率高顯示速率快顏色豐富等優點在彩色顯示器領域取得了廣泛的應用,是眾多制造商所共同支持的一個低標準。

設計原理:

VGA的實體圖與接口示意圖,如下圖所示,它有15個針孔:


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

image.png


通過原理圖,我們不難發現,VGA需要我們控制的接口只有5個:

image.png


顯示器的掃描規律是什么?本設計采用逐行掃描,逐行掃描是掃描從屏幕左上角一點開始,從左向右逐點掃描,每掃描完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,CRT對電子束進行消隱,每行結束時,用行同步信號進行行同步;當掃描完所有的行,形成一幀,用場同步信號進行場同步,并使掃描回到屏幕左上方,同時進行場消隱,開始下一幀。通過這種掃描規律,很容易看出,在設計兩個有效范圍計數器時,場同步信號計數器是以行同步信號計數器為周期的。

VGA的顯示標準如下表所示:

image.png


對于普通的VGA顯示器都要嚴格遵循“VGA工業標準”,否則可能會損害VGA顯示器,因此我們在設計時VGA控制器時,都需要參考顯示器的顯示標準,下面是VGA的行掃描時序與場掃描時序:

行掃描時序:

image.png


場掃描時序:

image.png


根據上述顯示器的掃描參數以及掃描時序,例如800*600@60的顯示模式,60指得是顯示器圖像的刷新頻率,時鐘40MHz指得是一個像素輸出的頻率。800*600VGA的分辨率,指有效顯示區域為時序中的c段只有800*600,也就是行計數在[216,1016],列計數在[27,627],在這個范圍內,給RGB色值才會有效。

VGA 工業標準顯示模式要求:行同步、場同步都為負極性,即同步脈沖要求是負脈沖。行同步信號上電拉高,在行同步計數為0時拉低a個時鐘周期,即128,之后拉高,在行同步計數到1055時,行同步計數器清零,場同步計數器加1。在行掃描時序中,掃描計數時,周期就是一個像素點的時間。

場同步信號上電拉高,在場同步計數為0時拉低場同步a個時鐘周期,即4之后拉高,在場同步計數到627場同步計數器清零。

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

image.png


設計架構圖:

本設計選擇的VGA顯示標準為800*600@60,實現點亮整個屏幕,并顯示為全紅。通過分析設計的功能,可以得到如下的頂層架構:

image.png


頂層模塊端口列表如下:

image.png


vga_pll模塊是為了滿足分辨率800*600@60的時鐘為40MHz,而ZX_1開發板的系統時鐘為50MHz,通過鎖相環,將50MHz轉化為40MHzvga_control模塊是為了設定行場同步信號,并標定出有效顯示區域,并輸出控制顏色的po_rgb信號。為了便于移植,根據800*600@60分辨率下的參數,對其進行參數化定義。

設計代碼:

VGA控制器代碼:

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

1

2inputpi_clk,pi_rst_n;//系統時鐘復位

3outputregpo_vs;//VGA場同步信號

4outputregpo_hs;//VGA行同步信號

5output[7:0]po_rgb;//VGA場紅綠藍三基色

6

7//----------------VGA時序-----------------------------------

8// 顯示模式 時鐘

9// 800*600@60 40MHz

10///場 同步(a) 消隱后沿(b) 有效顯示(c) 消隱前沿(d) 掃描時間(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// (Vertical)掃描 Parameter (行數)

23parameterV_A =4;

24parameterV_B =23;

25parameterV_C =600;

26parameterV_D =1;

27parameterV_E =628;

28

29//行掃描計數器,

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//場掃描計數器

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//場同步輸出

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;//系統時鐘復位

3outputpo_vs;//VGA場同步信號

4outputpo_hs;//VGA行同步信號

5output[7:0]po_rgb;//VGA場紅綠藍三基色

6

7//----------------VGA時序-----------------------------------

8// 顯示模式 時鐘

9// 800*600@60 40MHz

10///場 同步(a) 消隱后沿(b) 有效顯示(c) 消隱前沿(d) 掃描時間(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

為了驗證本設計的邏輯正確性,我們先對其進行了仿真,在仿真時,為了減少仿真的時間,先將行、場掃描的對應參數,進行了縮放,這樣不僅節約了仿真時間,同時由于掃描數據量變少,更加便于分析觀察。其仿真代碼所示;

0`timescale1ns/1ps//仿真時間精度時間單位

1

2modulevga_display_pure_tb;

3

4regpi_clk,pi_rst_n;//系統時鐘復位

5wirepo_vs;//VGA場同步信號

6wirepo_hs;//VGA行同步信號

7wire[7:0]po_rgb;//VGA場紅綠藍三基色

8

9//初始化數據,并附相應初值

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時鐘描述

26

27endmodule


仿真圖:

image.png


rgb_en信號,只有當po_vspo_hs同時為高電平時,才有效,并且有po_rgb Red基色信號輸出,時序仿真細節圖如下所示:

image.png


通過觀察和分析時序圖,可以發現與設計吻合,接下來則可進行管腳分配,并下板驗證,驗證結果如下:


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1630

    文章

    21781

    瀏覽量

    604936
收藏 人收藏

    評論

    相關推薦

    基于FPGAVGA驅動設計(附源工程)

    ? 設計背景 VGA (Video Graphics Array) 即視頻圖形陣列,是IBM于1987年隨PS/2機(PersonalSystem 2)一起推出的使用模擬信號的一種視頻傳輸標準。這個
    的頭像 發表于 01-14 11:31 ?92次閱讀
    基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>VGA</b><b class='flag-5'>驅動</b>設計(附源工程)

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

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

    FPGA加速深度學習模型的案例

    FPGA(現場可編程門陣列)加速深度學習模型是當前硬件加速領域的一個熱門研究方向。以下是一些FPGA加速深度學習模型的案例: 一、基于FPGA
    的頭像 發表于 10-25 09:22 ?314次閱讀

    vga接口怎么接線 vga接口轉換器怎么用

    VGA接口,全稱為Video Graphics Array,是一種模擬信號的顯示標準,廣泛應用于計算機顯示器、投影儀等設備。隨著技術的發展,VGA接口逐漸被數字接口如HDMI、DisplayPort
    的頭像 發表于 10-21 09:53 ?1991次閱讀

    FPGA做深度學習能走多遠?

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

    FPGA學習重點是什么?

    FPGA學習重點是什么?
    發表于 05-24 07:38

    FPGA學習筆記-關于FPGA資源

    FPGA學習。 在學習中才發現,FPGA遠不是門電路那么簡單。FPGA中有各種需要的資源,比如門電路、存儲單元、片內RAM、嵌入式乘法器、
    發表于 05-22 18:27

    FPGA學習筆記-入門

    大概10年前,大學同學建議我學習DSP。當因為工作忙,也只是簡單學習了DSP的一些基礎知識,沒有進一步深入學習和時間。結果現在,好像DSP已經不再是主流了,現在有了FPGA。 現在想想
    發表于 04-09 10:55

    FPGA初步學習印象

    了。FPGA出現后,也想學習學習這方面的知識。抱著先簡單學習下的態度,在網上找資料看看。感覺FPGA,就像是利用芯片內部資源,自由組合門電路
    發表于 04-09 09:46

    FPGA學習資料分享

    本帖最后由 1653149838.791300 于 2024-3-31 13:24 編輯 FPGA學習首先是要熟悉掌握使用硬件描述語言,這方面可以通過書籍或者這方面論壇,這里個人分享一個比較好
    發表于 03-31 13:23

    fpga要學哪些東西

    學習FPGA需要掌握一系列的知識和技能,主要包括以下幾個方面。
    的頭像 發表于 03-27 14:40 ?1116次閱讀

    Xilinx fpga芯片系列有哪些

    Xilinx FPGA芯片擁有多個系列和型號,以滿足不同應用領域的需求。以下是一些主要的Xilinx FPGA芯片系列及其特點。
    的頭像 發表于 03-14 16:24 ?3440次閱讀

    fpga芯片系列介紹

    FPGA芯片系列眾多,不同廠商會推出各具特色的產品系列以滿足不同的應用需求。以下是一些主要的FPGA芯片系列
    的頭像 發表于 03-14 16:15 ?1365次閱讀

    fpga學習需要具備哪些課程

    FPGA(Field Programmable Gate Array)學習需要具備一系列的課程知識和實踐技能
    的頭像 發表于 03-14 15:51 ?1263次閱讀

    FPGA圖書分享系列-2024.01.31

    Accelerators for Financial Applications》這本書面向金融領域,它探討了FPGA(現場可編程門陣列)加速器的最新方法和成果。 以下是這本書的一些亮點和值得學習的地方: 高性能計算
    發表于 01-31 21:14
    主站蜘蛛池模板: 亚洲AV蜜桃永久无码精品红樱桃| 久久无码AV亚洲精品色午夜麻豆| 亚洲 自拍 清纯 综合图区| 伦理在线影院伦理电影| 国产精品亚洲欧美| FREECHINESE东北群交| 一个吃奶两个添下面H| 双腿打开揉弄高潮H苏安安秦慕深 双腿被绑成M型调教PLAY照片 | 丝袜美女自摸| 男同志vdieos免费| 精品三级久久久久电影网1| 国产成人mv 在线播放| 99在线播放| 中文字幕无码亚洲视频| 亚洲成人黄色在线| 色一欲一性一乱一区二区三区| 免费无码一区二区三区蜜桃大| 精精国产www视频在线观看免费| 国产传媒在线观看| wwww69| 18美女腿打开无遮软件| 亚洲色欲H网在线观看| 午夜伦理电影在线观免费| 日本十八禁无遮无挡漫画| 女教师苍井空体肉女教师S242| 久久免费视频在线观看6| 极品虎白在线观看| 国产免费毛片在线观看| 儿子你得太大了慢点插| 超碰高清熟女一区二区| A级超碰视频在线观看| 51精品少妇人妻AV一区二区| 艺术片 快播| 亚洲性夜夜色综合网站| 亚洲大片免费| 亚洲国产av| 亚洲精品理论电影在线观看| 亚洲AV无码偷拍在线观看| 小776 论坛| 亚洲成AV人片一区二区不卡| 亚洲 日韩 在线 国产 视频|