91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

基于叁芯智能科技的SANXIN -B01 FPGA開發(fā)板的VGA協(xié)議驅(qū)動設計

電子工程師 ? 來源:FPGA技術(shù)江湖 ? 作者:FPGA技術(shù)江湖 ? 2020-09-28 11:49 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

VGA協(xié)議驅(qū)動設計

作者:郝旭帥校對:陸輝

本篇實現(xiàn)基于叁芯智能科技的SANXIN -B01 FPGA開發(fā)板,以下為配套的教程,如有入手開發(fā)板,可以登錄官方淘寶店購買,還有配套的學習視頻。

SANXIN-B01 Verilog教程-郝旭帥團隊電子版

FPGA工程師就業(yè)班,線上直播課開啟!

VGA(Video Graphics Array)視頻圖形陣列是 IBM 于1987年提出的一個使用模擬信號電腦顯示標準。VGA具有分辨率高、顯示速率快、顏色豐富等優(yōu)點。VGA 接口不但是CRT 顯示設備的標準接口,同樣也是 LCD 液晶顯示設備的標準接口,具有廣泛的應用范圍。

VGA接口即電腦采用VGA標準輸出數(shù)據(jù)的專用接口。VGA接口是一種D型接口,上面共有15針孔,分成三排,每排五個。其中比較重要的是3根 RGB 彩色分量信號和2根掃描同步信號 HSYNC 和 VSYNC 針。其母頭插座引腳編號圖如下圖所示:

三基色是指通過其他顏色的混合無法得到的“基本色”。由于人的肉眼有感知RGB(紅綠藍)三種不同顏色的錐體細胞,因此色彩空間通??梢杂蒖GB三種基本色來表達。

自然界中的絕大部分彩色,都可以由三種基色按一定比例混合得到。

所以VGA接口中,表示顏色分量的只有紅綠藍三種基色。由于VGA接口的三基色為模擬信號值,F(xiàn)PGA無法輸出,所以在FPGA的IO到VGA接口中間要有對應的數(shù)字量轉(zhuǎn)模擬量的電路。

SANXIN – B01中采用電阻網(wǎng)絡來實現(xiàn)數(shù)字量轉(zhuǎn)模擬量的功能。

圖片在數(shù)字設備中,都是由像素點構(gòu)成。

像素是指由圖像的小方格組成的,這些小方塊都有一個明確的位置和被分配的色彩數(shù)值,小方格顏色和位置就決定該圖像所呈現(xiàn)出來的樣子??梢詫⑾袼匾暈檎麄€圖像中不可分割的單位或者是元素。不可分割的意思是它不能夠再切割成更小單位,它是以一個單一顏色的小格存在。每一個點陣圖像包含了一定量的像素,這些像素決定圖像在屏幕上所呈現(xiàn)的大小。

VGA顯示器上每一個像素點可以很多種顏色,由R、G、B三種顏色構(gòu)成。如果每個像素點采用3位二進制數(shù)表示,即R用1bit表示,G用1bit表示,B用1bit表示,則此像素點一共可以顯示8種顏色;如果每個像素點采用8位二進制數(shù)表示,即R用3bit表示,G用3bit表示,B用2bit表示,則此像素點一共可以顯示256種顏色。在SANXIN – B01開發(fā)板中,采用RGB332的進行表示。

在VGA顯示器中,像素點RGB的二進制數(shù)越多,能夠表示的顏色就越多,此時,顯示的圖像就會越清晰。

在VGA顯示器中,像素點的個數(shù)也是一個非常重要的一個指標。

我們可以打開自己電腦的顯示分辨率。

分頻率有各種模式,但是基本都是固定好的。分辨率都是長乘寬,前面的數(shù)為長,后面的數(shù)為寬。長表示屏幕橫向可以有多少個像素點;寬表示屏幕縱向可以用多少個像素點。一般來說屏幕都是扁平的,所以長一般都會比寬大。

像素的多少不改變實際物理的尺寸大小,只是呈現(xiàn)的清晰度不同??梢詫Ρ?00萬像素的相機拍的圖片和2000萬像素的相機拍的圖片,大小相同的情況下,清晰度是不同的。

只要我們按照顯示器能夠支持的分辨率的長和寬,將對應的像素點傳輸給VGA接口就可以了。但是VGA協(xié)議中,要求進行傳輸像素點的同時,還需要去傳輸一部分的同步信號。

顯示器掃描方式分為逐行掃描和隔行掃描:逐行掃描是掃描從屏幕左上角一點開始,從左向右逐點掃描,每掃描完一行,電子束回到屏幕的左邊下一行的起始位置,在這期間,每行結(jié)束時,用行同步信號進行同步;當掃描完所有的行,形成一幀,用場同步信號進行場同步,并使掃描回到屏幕左上方,開始下一幀。隔行掃描是指電子束掃描時每隔一行掃一線,完成一屏后在返回來掃描剩下的線,隔行掃描的顯示器閃爍的厲害,會讓使用者的眼睛疲勞。在此我們選擇逐行掃描的方式。

VGA的時序主要包括行時序與場時序兩個部分。其中行時序主要包括:行同步(Hor Sync) 、行消隱(Hor Back Porch) 、行視頻有效(Hor Active Video)和行前肩(Hor Front Porch)這四個參數(shù),行時序的時序圖如下圖所示:

場時序主要包括:場同步(Ver Sync) 、場消隱(Ver Back Porch) 、場視頻有效(Ver Active Video)和場前肩(Ver Front Porch)這四個參數(shù),場時序的時序圖如下圖所示:

需要注意的有三點:

1、行時序是以”像素”為單位的, 場時序是以”行”為單位的。

2、VGA 工業(yè)標準顯示模式要求:行同步,場同步都為負極性,即同步脈沖要求是負脈沖。

3、VGA 行時序?qū)π型綍r間、 消隱時間、 行視頻有效時間和行前肩時間有特定的規(guī)范, 場時序也是如此。常用VGA 分辨率時序參數(shù)如下表所示:

本實驗中選擇640x480@60Hz。時鐘的速率為25.175MHz,我們在設計時,時鐘速率選擇為25MHz 即可。

設計要求

控制VGA顯示器顯示全屏紅色或者其他顏色。

設計分析

當我們選擇640x480@60Hz的標準后,根據(jù)對應格式可以發(fā)現(xiàn),此標準的一行為800個像素值,共有525行。也就是說并不是所有的像素值都可以顯示出來,顯示出來的只有中間的640列和480行,其他的像素值不顯示(要求其他的像素值為黑色,即RGB全部給0)。

選擇標準需要25MHz的時鐘,我們可以選擇使用鎖相環(huán)來進行生成25MHz的時鐘。

掃描方式為逐行掃描,從左上角開始。定義一個列坐標計數(shù)器(cnt_hs),每個驅(qū)動時鐘周期加1,當一行結(jié)束后,計數(shù)器也同時清零。一行為800個像素值,所以計數(shù)器將會在0到799無限循環(huán)。HSYNC信號在此計數(shù)器的前96的計數(shù)值拉低,其他時間拉高即可。

定義一個行坐標計數(shù)器(cnt_vs),掃描完一行后,進行加一,當一幀圖片結(jié)束后,計數(shù)器清零。一行為800個像素值,所以等cnt_hs為799時,cnt_vs進行加一或者清零,由于一幀圖片共有525行,所以計數(shù)器在0到524之間無限循環(huán)。VSYNC信號在此計數(shù)器的前兩個計數(shù)器拉低,其他時間拉高即可。

根據(jù)cnt_hs和cnt_vs,按照對應的標準,就可以得出顯示的640列和480行的具體位置。

列顯示的范圍為:hs_a+hs_b+hs_c>cnt_hs>hs_a+hs_b-1.

行顯示的范圍為:vs_f+vs_g+vs_h>cnt_vs>vs_f+vs_g-1.

同時在兩個有效顯示區(qū)范圍內(nèi),就可以顯示出來。

設計架構(gòu)和信號說明

此設計命名為vga_drive。

pll_vga為鎖相環(huán),利用外部輸入的50MHz的時鐘,產(chǎn)生VGA協(xié)議所需要的25MHz的時鐘。

vga_ctrl為VGA協(xié)議的驅(qū)動模塊。

vga_ctrl設計實現(xiàn)

按照設計分析中的設計方法,進行設計即可。

hs_en為列有效顯示的表示信號;vs_en為行有效顯示的表示信號。

設計代碼為:

module vga_ctrl ( input wire clk, input wire rst_n, output reg vga_hs, output reg vga_vs, output reg [7:0] vga_rgb); parameter HS_A = 96; parameter HS_B = 48; parameter HS_C = 640; parameter HS_D = 16; parameter HS_E = 800; parameter VS_A = 2; parameter VS_B = 33; parameter VS_C = 480; parameter VS_D = 10; parameter VS_E = 525; reg [9:0] cnt_hs; reg [9:0] cnt_vs; wire hs_en; wire vs_en; always @ (posedge clk, negedge rst_n) begin if (rst_n == 1'b0) cnt_hs <= 10'd0; else if (cnt_hs < HS_E - 1'b1) cnt_hs <= cnt_hs + 1'b1; else cnt_hs <= 10'd0; end always @ (posedge clk, negedge rst_n) begin if (rst_n == 1'b0) vga_hs <= 1'b1; else if (cnt_hs < HS_A) vga_hs <= 1'b0; else vga_hs <= 1'b1; end always @ (posedge clk, negedge rst_n) begin if (rst_n == 1'b0) cnt_vs <= 10'd0; else if (cnt_hs == HS_E - 1'b1) if (cnt_vs < VS_E - 1'b1) cnt_vs <= cnt_vs + 1'b1; else cnt_vs <= 10'd0; else cnt_vs <= cnt_vs; end always @ (posedge clk, negedge rst_n) begin if (rst_n == 1'b0) vga_vs <= 1'b1; else if (cnt_vs < VS_A) vga_vs <= 1'b0; else vga_vs <= 1'b1; end assign hs_en = (cnt_hs > HS_A + HS_B - 1'b1) && (cnt_hs < HS_A + HS_B + HS_C); assign vs_en = (cnt_vs > VS_A + VS_B - 1'b1) && (cnt_vs < VS_A + VS_B + VS_C); always @ (posedge clk, negedge rst_n) begin if (rst_n == 1'b0) vga_rgb <= 8'd0; else if (hs_en == 1'b1 && vs_en == 1'b1) vga_rgb <= 8'b000_111_00; else vga_rgb <= 8'd0; end endmodule

在設計中,給出的全屏顏色為紅色。

vga_drive設計實現(xiàn)

調(diào)用鎖相環(huán),產(chǎn)生25MHz的時鐘。

利用鎖相環(huán)的輸出鎖定信號當作后續(xù)模塊的復位信號使用。

設計代碼為:

module vga_drive ( input wire clk, input wire rst_n, output wire vga_vs, output wire vga_hs, output wire [7:0] vga_rgb); wire clk_vga; wire pll_locked; pll_vga pll_vga_inst ( .areset ( ~rst_n ), .inclk0 ( clk ), .c0 ( clk_vga ), .locked ( pll_locked ) ); vga_ctrl vga_ctrl_inst( .clk (clk_vga), .rst_n (pll_locked), .vga_hs (vga_hs), .vga_vs (vga_vs), .vga_rgb (vga_rgb) ); endmodule

仿真時只需要給出clk和rst_n的信號即可,在此不做介紹。設計者可以通過modelsim觀看是否每一行輸出640個紅色值,以及是否每一幀輸出480行。仿真時間較長,大約等待20ms,就可以仿真完一幀圖像。

板級測試

利用VGA線,將開發(fā)板的VGA接口和顯示屏幕的VGA接口相連接,打開顯示器。

分配管腳,生成配置文件后,進行下板。

紅色全屏如下:

更改顏色為綠色,vga_rgb <= 8’b000_111_00,生成配置文件后,下板。

綠色全屏為:

根據(jù)RGB332的排列,可以自由更改。不同的基色也可以進行混搭,進行驗證。

責任編輯:xj

原文標題:FPGA零基礎學習:VGA協(xié)議驅(qū)動設計

文章出處:【微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

    關(guān)注

    1660

    文章

    22412

    瀏覽量

    636386
  • VGA
    VGA
    +關(guān)注

    關(guān)注

    5

    文章

    579

    瀏覽量

    66313

原文標題:FPGA零基礎學習:VGA協(xié)議驅(qū)動設計

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

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

    飛凌嵌入式旗下教育品牌推出RV1126B\RK3506B\RK3576新品開發(fā)板

    、學生、科研人員還是個人學習者,這次發(fā)布的新品絕對值得一看!ELF-RV1126B開發(fā)板——邊緣AI視覺ELF-RV1126B開發(fā)板搭載瑞
    的頭像 發(fā)表于 01-09 10:09 ?1460次閱讀
    飛凌嵌入式旗下教育品牌推出RV1126<b class='flag-5'>B</b>\RK3506<b class='flag-5'>B</b>\RK3576新品<b class='flag-5'>開發(fā)板</b>

    探索Renesas RSSKRX23E - B開發(fā)板:功能、使用與注意事項

    探索Renesas RSSKRX23E - B開發(fā)板:功能、使用與注意事項 在電子工程師的日常工作中,一款功能強大且穩(wěn)定的開發(fā)板能為項目的開展提供極大的便利。今天,我們就來深入了解一下Renesas
    的頭像 發(fā)表于 12-29 11:05 ?602次閱讀

    FRDM-MCXE31B開發(fā)板:設計與評估的理想之選

    FRDM-MCXE31B開發(fā)板:設計與評估的理想之選 在電子工程師的日常工作中,選擇一款合適的開發(fā)板對于項目的成功至關(guān)重要。今天,我們就來詳細探討一下NXP推出的FRDM-MCXE31B
    的頭像 發(fā)表于 12-24 10:20 ?310次閱讀

    探索 Kunlun Pi | 基于匠創(chuàng)D13x系列開發(fā)板分享(二)

    探索 Kunlun Pi | 基于匠創(chuàng)D13x系列開發(fā)板分享(二)
    的頭像 發(fā)表于 11-18 18:11 ?1793次閱讀
    探索 Kunlun Pi | 基于匠<b class='flag-5'>芯</b>創(chuàng)D13x系列<b class='flag-5'>開發(fā)板</b>分享(二)

    基于FPGA開發(fā)板TSP的串口通信設計

    本文詳細介紹基于Terasic FPGA開發(fā)板TSP(又名C5P和OSK)和其板載CP2102N USB-UART橋接芯片的串口通信系統(tǒng)設計與實現(xiàn)。系統(tǒng)采用Verilog HDL編寫UART收發(fā)控制器,通過CP2102N實現(xiàn)FPGA
    的頭像 發(fā)表于 10-15 11:05 ?4469次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)板</b>TSP的串口通信設計

    基于FPGA開發(fā)板DE23-Lite的串口通信設計

    DE23-Lite開發(fā)板提供了一個UART通信接口(物理接口是下圖的Type C接口),用戶能夠通過主機與Agilex 3 FPGA進行串口通信。
    的頭像 發(fā)表于 10-15 10:57 ?4411次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)板</b>DE23-Lite的串口通信設計

    2025 ALINX入門競賽類FPGA開發(fā)板選型指南

    FPGA 開發(fā)板的核心芯片主要分為兩大類:純 FPGA 芯片和 SoC(System on Chip)芯片。
    的頭像 發(fā)表于 09-17 16:56 ?1862次閱讀
    2025 ALINX入門競賽類<b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)板</b>選型指南

    Pico2-ICE FPGA開發(fā)板的應用示例

    FPGA 和 MCU 結(jié)合的開發(fā)板不多,而 Pico2?ICE 則把小巧、靈活和易上手完美結(jié)合。搭載 RP2350 雙核 RISC-V MCU + Lattice iCE40UP5K FPGA,配合官方 SDK,你可以一步步跑通
    的頭像 發(fā)表于 09-06 10:02 ?1066次閱讀
    Pico2-ICE <b class='flag-5'>FPGA</b><b class='flag-5'>開發(fā)板</b>的應用示例

    CW32L011電機驅(qū)動開發(fā)板——驅(qū)動無刷電機

    CW32L011電機驅(qū)動開發(fā)板
    的頭像 發(fā)表于 08-22 10:02 ?1033次閱讀
    CW32L011電機<b class='flag-5'>驅(qū)動</b><b class='flag-5'>開發(fā)板</b>——<b class='flag-5'>驅(qū)動</b>無刷電機

    如何選擇合適的科科技Wi-Fi開發(fā)板

    您正在尋找適用于超低功耗物聯(lián)網(wǎng)應用項目的Wi-Fi 開發(fā)板嗎?本文將介紹Silicon Labs(科科技)推出的所有SiWx917 Wi-Fi 6和低功耗藍牙5.4解決方案的Wi-Fi 開發(fā)板。SiWx917是目前市場上最節(jié)能
    的頭像 發(fā)表于 07-09 09:15 ?2691次閱讀

    01 Studio K230開發(fā)板開箱評測

    Studio K230開發(fā)板開箱評測
    的頭像 發(fā)表于 06-28 14:26 ?3435次閱讀
    <b class='flag-5'>01</b> Studio K230<b class='flag-5'>開發(fā)板</b>開箱評測

    基于米爾全志T536開發(fā)板的多協(xié)議物聯(lián)網(wǎng)關(guān)的方案測試

    本文將介紹基于米爾電子MYD-LT536開發(fā)板(米爾基于全志T536開發(fā)板)的多協(xié)議物聯(lián)網(wǎng)關(guān)方案的開發(fā)測試。摘自優(yōu)秀創(chuàng)作者-ALSET米爾基于全志T536
    的頭像 發(fā)表于 06-19 08:03 ?1957次閱讀
    基于米爾全志T536<b class='flag-5'>開發(fā)板</b>的多<b class='flag-5'>協(xié)議</b>物聯(lián)網(wǎng)關(guān)的方案測試

    有ARM,NPU,FPGA三種核心的開發(fā)板 — 米爾安路飛龍派開發(fā)板

    最近我發(fā)現(xiàn)一個有趣的開發(fā)板。這個開發(fā)板集合了ARM核心,NPU核心甚至還有FPGA核心。它就是米爾新出的YM90X開發(fā)板。它基于安路科技所打造的芯片上海安路信息科技于2021年在上交所
    的頭像 發(fā)表于 06-13 08:03 ?1721次閱讀
    有ARM,NPU,<b class='flag-5'>FPGA</b>三種核心的<b class='flag-5'>開發(fā)板</b> — 米爾安路飛龍派<b class='flag-5'>開發(fā)板</b>

    3步精簡Android11預裝!瑞開發(fā)板系統(tǒng)瘦身實戰(zhàn)

    本文介紹瑞開發(fā)板安卓Android11系統(tǒng)預裝應用裁剪的方法,使用觸覺智能PurplePiOH鴻蒙開發(fā)板演示,搭載了瑞微RK3566芯
    的頭像 發(fā)表于 06-06 17:57 ?1258次閱讀
    3步精簡Android11預裝!瑞<b class='flag-5'>芯</b>微<b class='flag-5'>開發(fā)板</b>系統(tǒng)瘦身實戰(zhàn)

    RK3568開發(fā)板教程:以iTOP-RK3568開發(fā)板為例 Android13通過CIFS協(xié)議掛載Windows共享目錄

    開發(fā)板與PC端的高效文件交互尤為重要?,F(xiàn)以iTOP-RK3568開發(fā)板為例,詳細演示Android13系統(tǒng)如何通過CIFS協(xié)議掛載Windows共享目錄,實現(xiàn)開發(fā)板與PC的無縫文件共享
    的頭像 發(fā)表于 04-16 14:08 ?1854次閱讀
    RK3568<b class='flag-5'>開發(fā)板</b>教程:以iTOP-RK3568<b class='flag-5'>開發(fā)板</b>為例 Android13通過CIFS<b class='flag-5'>協(xié)議</b>掛載Windows共享目錄