99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號(hào)
點(diǎn)擊聯(lián)系吳工 點(diǎn)擊聯(lián)系周老師
您的當(dāng)前位置:主頁 > FPGA入門基礎(chǔ) >

至簡設(shè)計(jì)法之VGA接口設(shè)計(jì)-明德?lián)P科教(mdy-edu.com)

發(fā)布時(shí)間:2019-12-10   作者:admin 瀏覽量:


VGA(Video Graphics Array)IBM1987年隨PS/2機(jī)一起推出的一種視頻傳輸標(biāo)準(zhǔn),當(dāng)時(shí)具有分辨率高、顯示速率快、顏色豐富等優(yōu)點(diǎn),在彩色顯示器領(lǐng)域得到了廣泛的應(yīng)用。

VGA接口就是顯卡上輸出模擬信號(hào)的接口,也叫D-Sub接口。VGA接口是一種D型口,上面共有15針空,分成三排,每排五個(gè)。VGA接口是目前中低端電腦配置上的主流口。

VGA顯示中,FPGA需要產(chǎn)生5個(gè)信號(hào):RGB三基色信號(hào),行同步信號(hào)HS,場同步信號(hào)VS。信號(hào)列表如表2-5

2.5  VGA信號(hào)列表

信號(hào)線

定義

HS

行同步信號(hào)    (3.3V電平)

VS

/幀同步信號(hào)(3.3V電平)

R

紅基色(0-0.714V模擬信號(hào))

G

綠基色(0-0.714V模擬信號(hào))

B

藍(lán)基色(0-0.714V模擬信號(hào))


VGA接口圖如下:

硬件工程師

2-26 VGA接口實(shí)物圖


以上接口的5個(gè)孔對(duì)應(yīng)著我們FPGA中產(chǎn)生的5個(gè)重要的信號(hào),其中RGB是數(shù)據(jù)信號(hào);HSVS是控制信號(hào)。

1. VGA色彩原理

像素是產(chǎn)生各種顏色的基本單元。根據(jù)物理學(xué)中的混色原理,三色發(fā)光的亮度比例適當(dāng),可呈現(xiàn)白色。適當(dāng)?shù)恼{(diào)整發(fā)光比例可以出現(xiàn)不同的顏色。


2.6 三基色顏色編碼表

顏色

藍(lán)

R

0

0

1

1

0

0

1

1

G

0

0

0

0

1

1

1

1

B

0

1

0

1

0

1

0

1


以上RBG一共有8組合,也就是可以產(chǎn)生8種顏色。但顯示器顯示的色彩卻是非常豐富,遠(yuǎn)遠(yuǎn)多于8種顏色,這是如何做到的呢?

原因就是對(duì)于顯示器來說,RGB三個(gè)信號(hào)其實(shí)是模擬信號(hào),其電平的高低,可以表示顏色的深淺。利用這個(gè)原理,我們就可以產(chǎn)生豐富的色彩。為了控制電壓的高低,我們就必須用到DA芯片。例如下圖中,FPGA產(chǎn)生RGB三種信號(hào),這時(shí)RGB都是多位的數(shù)字信號(hào)。DA芯片根據(jù)數(shù)字信號(hào)的值,產(chǎn)生不同電壓的模擬信號(hào)rgb連接框圖如圖2-27

fpga

2-27 FPGA與顯示器的結(jié)構(gòu)圖

明德?lián)P的第二代開發(fā)板,R3位數(shù)字信號(hào)組成VGA_R0VGA_R1VGA_R2G3位數(shù)字信號(hào)組成(VGA_G0VGA_G1VGA_G2);B2位數(shù)字信號(hào)組成(VGA_B0VGA_B1)。并通過電壓進(jìn)行分壓,而得到不同的電平。實(shí)際電路如圖2-28

fpga培訓(xùn)

2-28開發(fā)板RGB數(shù)模轉(zhuǎn)換電路圖

2. VGA顯示

1顯示原理

通用VGA顯示卡系統(tǒng)主要由控制電路、顯示緩存區(qū)和視頻BIOS程序三個(gè)部分組成。控制電路主要完成時(shí)序發(fā)生、顯示緩沖區(qū)數(shù)據(jù)操作、主時(shí)鐘選擇和DA轉(zhuǎn)換等功能;顯示緩沖區(qū)提供顯示數(shù)據(jù)緩存空間;視頻BIOS作為控制程序固化在顯示卡的ROM中。

實(shí)現(xiàn)VGA顯示,除了實(shí)現(xiàn)時(shí)序控制,還必須有其他功能單元的支持才能實(shí)現(xiàn)完整的圖像顯示。

1控制器:VGA顯示有多種模式,需要通過控制器實(shí)現(xiàn)模式間切換,還需要對(duì)顯示的內(nèi)容進(jìn)行接收、處理和顯示。所以控制器的性能越高,數(shù)據(jù)更新和顯示效果就越好。顯示數(shù)據(jù)緩存區(qū):VGA顯示要求顯存速度快、容量大。讀速度要達(dá)到65MHz以下,存儲(chǔ)容量至少要2MB。可采用高速SRAMSDRAM作為顯示數(shù)據(jù)緩存。
2數(shù)模轉(zhuǎn)換器DACVGA顯示對(duì)數(shù)模轉(zhuǎn)換DAC有如下要求:一是高速轉(zhuǎn)換,轉(zhuǎn)換的速度應(yīng)該在80MHz或以上;二是同步性好,能保證 RGB三路信號(hào)的同步性;三是有相應(yīng)的精度。可選擇一種包括38位高速DA的專用視頻芯片。

3數(shù)據(jù)源及其接口:要提高VGA顯示的效率,就要不斷更新數(shù)據(jù),同時(shí)還要保證實(shí)時(shí)性,因此需要非常高的接口速度。VGA顯示卡雖可達(dá)到100Mbps的數(shù)據(jù)更新速度,但是一般設(shè)備、特別是嵌入式設(shè)備達(dá)不到這么高的速度,而且大多數(shù)情況下也不需要這么高的數(shù)據(jù)更新率。目前常用接口為EPP接口、USB接口、 TCP/IPRS232C/485等。其中TCP/IPEPP接口和USB接口是基于計(jì)算機(jī)的,速度較快;TCP/IPRS232C/485是基于網(wǎng)絡(luò)通信的接口,其中RS485速度雖慢,但應(yīng)用廣泛且容易實(shí)現(xiàn)遠(yuǎn)程控制。

2掃描方式

顯示器采用光柵掃描方式,即轟擊熒光屏的電子束在CRT屏幕上從左到右(受水平同步信號(hào) HSYNC 控制)、從上到下(受垂直同步信號(hào) VSYNC 控制)做有規(guī)律的移動(dòng)。電子束采用光柵掃描方式,從屏幕左上角一點(diǎn)開始,向右逐點(diǎn)進(jìn)行掃描,形成一條水平線;到達(dá)最右端后,又回到下一條水平線的左端,重復(fù)上面的過程;當(dāng)電子束完成右下角一點(diǎn)的掃描后,形成一幀。此后,電子束又回到左上方起點(diǎn),開始下一幀的掃描。這種方法也就是常說的逐行掃描顯示。

3掃描頻率

完成一行掃描的時(shí)間稱為水平掃描時(shí)間,其倒數(shù)稱為行頻率;完成一幀(整屏)掃描的時(shí)間稱為垂直掃描時(shí)間,其倒數(shù)稱為場頻率,即刷新一屏的頻率,常見的有60Hz75Hz等等。標(biāo)準(zhǔn)的VGA顯示的場頻60Hz

4數(shù)據(jù)寬度和格式

如果VGA顯示真彩色BMP圖像,則需要RGB三個(gè)分量各8位,即24位表示一個(gè)像素值,很多情況下還采用32位表示一個(gè)像素值。為了節(jié)省顯存的存儲(chǔ)空間,可采用高彩色圖像,即每個(gè)像素值由16位表示,RGB三個(gè)分量分別使用5位、6位、5位,比真彩色圖像數(shù)據(jù)量減少一半,同時(shí)又能滿足顯示效果。

5SRAM地址的產(chǎn)生方法

主時(shí)鐘作為像素點(diǎn)計(jì)數(shù)脈沖信號(hào),同時(shí)提供顯存SRAM的讀信號(hào)和DA轉(zhuǎn)換時(shí)鐘,它所驅(qū)動(dòng)的計(jì)數(shù)器的輸出端作為讀SRAM的低位地址。行同步信號(hào)作為行數(shù)計(jì)數(shù)脈沖信號(hào),它所驅(qū)動(dòng)的計(jì)數(shù)器的輸出端作為讀SRAM的高位地址。由于采用兩片SRAM,所以最高位地址作為SRAM的片選使用。由于信號(hào)經(jīng)過CPLD內(nèi)部邏輯器件時(shí)存在一定的時(shí)間延遲,在CPLD產(chǎn)生地址和讀信號(hào)讀取數(shù)據(jù)時(shí),讀信號(hào)、地址信號(hào)和數(shù)據(jù)信號(hào)不能滿足SRAM讀數(shù)據(jù)的時(shí)序要求。可以利用硬件電路對(duì)讀信號(hào)進(jìn)行一定的時(shí)序調(diào)整,使各信號(hào)之間能夠滿足讀SRAM和為DAC輸入數(shù)據(jù)的時(shí)序要求。

3. VGA支持的規(guī)格

我們以第一個(gè)分辨率640/480來分析,其刷新速率是60Hz,每幅圖像有525行,每行有800個(gè)值。也就是說完成一幅圖像約是1s/60=16.6ms,完成一行約為16.6ms/525=31.75us,完成一個(gè)像素傳送約來31.75us/800=40ns。因此為了方便設(shè)計(jì),接口的時(shí)候設(shè)為25MHz最方便,每個(gè)時(shí)鐘送一個(gè)數(shù)據(jù)。

fpga培訓(xùn) fpga培訓(xùn)


4. VGA接口項(xiàng)目

屏幕分辨率為640/480,刷新速率為60Hz,要求在屏幕中間顯示一個(gè)200*200的綠色方塊,屏幕其他地方均為黑色

硬件培訓(xùn)

2-29 顯示效果圖

1明確功能

明確VGA接口的行信號(hào)時(shí)序圖

fpga月薪

明確VGA接口的場信號(hào)時(shí)序圖:

fpga前景

2-30 VGA接口時(shí)序圖

從時(shí)序圖我們可以知道,在第33~516個(gè)行周期中的第142~787個(gè)時(shí)鐘周期間,VGA輸入數(shù)據(jù)有效。另外,根據(jù)屏幕分辨率和刷新速率,我們可以得出使用25MHz系統(tǒng)時(shí)鐘最適合。

2.7 信號(hào)列表

信號(hào)名

I/O

位寬

說明

clk

I

1

系統(tǒng)工作時(shí)鐘25MHz

rst_n

I

1

系統(tǒng)復(fù)位信號(hào),低電平有效

hys

O

1

行同步信號(hào)

vys

O

1

場同步信號(hào)

rgb_data

O

8

輸出顯示的RGB數(shù)據(jù)

2功能波形

本項(xiàng)目的功能波形在上一步已經(jīng)給出,只需要在VGA輸入數(shù)據(jù)有效期間,根據(jù)題目要求把rgb_data變?yōu)榫G色或黑色即可。

3計(jì)數(shù)結(jié)構(gòu)

2-31 計(jì)數(shù)結(jié)構(gòu)圖


因?yàn)閺膹?fù)位后開始,hysvys不斷循環(huán)產(chǎn)生波形,其順序?yàn)橥矫}沖、顯示后沿、顯示時(shí)序段和顯示前沿,所以使用計(jì)數(shù)器hs_cntvs_cnt,分別用于計(jì)數(shù)clk個(gè)數(shù)和行周期個(gè)數(shù)。

4加一結(jié)束條件

hs_cnt的加一條件:由于hs_cnt在模塊開始工作后不斷計(jì)數(shù),因此其加1條件為1

vs_cnt的加一條件:在hs_cnt計(jì)數(shù)結(jié)束時(shí)加1,因此其加1條件為end_hs_cnt

hs_cnt的結(jié)束條件:hs_cnt==800 – 1

vs_cnt的結(jié)束條件:vs_cnt==525 – 1

5定義特殊點(diǎn)

按要求,本題是黑色區(qū)域和綠色區(qū)域的組合,因此我們要定義好兩個(gè)區(qū)域的邊界。

fpga求職

2-32 特殊點(diǎn)示意圖

2-32有幾個(gè)特殊點(diǎn),需要我們記住。

hs_cnt的結(jié)束條件:hs_cnt==800-1,定為end_hs_cnt

vs_cnt的結(jié)束條件:vs_cnt==525-1,定為end_vs_cnt

首先我們從時(shí)序圖可知有效區(qū)域,為第33~516個(gè)行周期中的第142~787個(gè)時(shí)鐘周期。由于

要在中間顯示綠色,因此先計(jì)算屏幕中點(diǎn)位置:

由于綠色方框像素為200*200,即有

除此之外的有效區(qū)域其他部分均為黑色。

6完整性檢查

1.計(jì)數(shù)器hs_cnt
hs_cnt的初值:0;
hs_cnt的加1條件:1;
hs_cnt的結(jié)束值:計(jì)數(shù)至hs_cnt==800 - 1;
2.計(jì)數(shù)器vs_cnt
vs_cnt的初值:0;
vs_cnt的加1條件:end_hs_cnt;
vs_cnt的結(jié)束值:計(jì)數(shù)至vs_cnt==525 - 1;
3.行信號(hào)hys
hys的初值:0;
hys由0變1:hs_cnt==10’d95 && add_hs_cnt;
hys由1變0:end_hs_cnt;
4.場信號(hào)vys
vys的初值:0;
vys由0變1:vs_cnt==1’d1 && add_vs_cnt;
vys由1變0:end_vs_cnt;
5.RGB數(shù)據(jù)信號(hào)rgb_data
rgb_data的初值:0;
rgb_data有效區(qū)域:hs_cnt_add && hs_cnt>=141 && hs_cnt<787 && vs_cnt>=32 && vs_cnt<516;
rgb_data為綠色:在有效區(qū)域且hs_cnt>=364 && hs_cnt<564 && vs_cnt>=174 && vs_cnt<374;
rgb_data為黑色:有效區(qū)域的其他部分;


7至簡設(shè)計(jì)法計(jì)數(shù)器代碼

 1 always @(posedge clk or negedge rst_n)begin
 2     if(rst_n==1'b0)begin
 3         hs_cnt <= 0;
 4     end
 5     else if(add_hs_cnt)begin
 6         if(end_hs_cnt) begin
 7             hs_cnt <= 0;
 8         end 
 9         else begin
10             hs_cnt <= hs_cnt+1;
11         end
12     end
13 end
14
15 assign add_hs_cnt = 1;
16 assign end_hs_cnt = add_hs_cnt&& hs_cnt==800-1;
17
18 always @(posedge clk or negedge rst_n)begin
19     if(rst_n==1'b0)begin
20         vs_cnt <= 0;
21     end
22     else if(add_vs_cnt)begin
23         if(end_vs_cnt) begin
24             vs_cnt <= 0;
25         end 
26         else begin
27             vs_cnt <= vs_cnt+1;
28         end
29     end
30 end
31
32 assign add_vs_cnt = end_hs_cnt;
33 assign end_vs_cnt = add_vs_cnt&&vs_cnt==525-1;
34

完整代碼:

 1 //按照第六步第3點(diǎn),寫出hys的代碼
 2 assign hs_rise = add_hs_cnt && hs_cnt == 10'd95;
 3
 4 always  @(posedge clk or negedge rst_n)begin
 5     if(rst_n==1'b0)begin
 6         hys <= 1;
 7     end
 8     else if(hs_rise)begin
 9         hys <= 1;
10     end
11     else if(end_hs_cnt)begin
12         hys <= 0;
13     end
14 end
15
16 //按照第六步第4點(diǎn),寫出vys的代碼
17 assign vs_rise = add_vs_cnt && vs_cnt == 1'd1;
18
19 always  @(posedge clk or negedge rst_n)begin
20     if(rst_n==1'b0)begin
21         vys <= 1;
22     end
23     else if(vs_rise)begin
24         vys <= 1;
25     end
26     else if(end_vs_cnt)begin
27         vys <= 0;
28     end
29 end
30
31 //有效區(qū)域與顯示綠色區(qū)域定義
32 parameter    X0      = 141;
33 parameter    X1      = 787;
34 parameter    Y0      = 32 ;
35 parameter    Y1      = 516;  
36 parameter    X_CENT  = 464;
37 parameter    Y_CENT  = 274;
38 parameter    GREEN   = 8'b000_111_00;
39 parameter    BLACK   = 8'b000_000_00;
40
41 assign valid_area = add_hs_cnt&&hs_cnt>=X0 &&hs_cnt<X1&&vs_cnt>=Y0
42                     && vs_cnt<Y1;
43 assign green_area = valid_area&&(hs_cnt>=X_CENT-100 
44                     && hs_cnt<X_CENT+100 && vs_cnt>=Y_CENT-100 
45                     &&vs_cnt<Y_CENT+100);
46
47 //按照第六步第5點(diǎn),寫出rgb_data的代碼
48 always  @(posedge clk or negedge rst_n)begin
49     if(rst_n==1'b0)begin
50         rgb_data <= 8'h00;
51     end
52     else if(valid_area)begin
53         if(green_area)begin
54             rgb_data <= GREEN;
55         end
56         else begin
57             rgb_data <= BLACK;
58         end
59     end
60     else begin
61         rgb_data <= 8'h00;
62     end
63 end
64


技術(shù)交流QQ群:544453837

更多FPGA技術(shù)資訊:明德?lián)P科教

了解>>至簡設(shè)計(jì)法




  •   
  •   
  •   
  •  
  • FPGA教育領(lǐng)域第一品牌
  • 咨詢熱線:020-39002701
  • 技術(shù)交流Q群:544453837
主站蜘蛛池模板: 免费国产精品视频 | 中文字幕在线看片成人 | 亚洲国产欧美在线 | 国产一及毛片 | 国产美乳在线观看 | 清纯偷拍精品视频在线观看 | 国产视频精品免费 | 国产h视频在线 | 日本毛片在线观看 | 在线观看免费黄视频 | 中文字幕35 | 又爽又刺激的欧美毛片 | 国产午夜精品福利视频 | 欧美一级成人一区二区三区 | 国产人成亚洲第一网站在线播放 | 99久久伊人一区二区yy5099 | 日韩欧美~中文字幕 | 国产免费久久精品99re丫y | 日韩在线观看第一页 | 狠狠色依依成人婷婷九月 | 中国一及黄色片 | 综合久久综合 | 成年人免费视频网站 | 欧美日韩国产亚洲综合不卡 | 蕾丝视频在线观看www | 善良的后裔完整视频在线观看 | 成熟自由日本语热亚洲人 | 一级二级三级毛片 | 国产裸舞福利资源在线视频 | 一级欧美毛片成人 | 美日韩一区二区 | 亚洲色图25p| 亚洲午夜精品aaa级久久久久 | 综合 欧美 亚洲日本 | 大尺度做爰床戏呻吟免费观 | 日韩精品1区 | 69男女囗交动态图视频 | 成人免费无毒在线观看网站 | 国产精品中文字幕在线观看 | 久久国产乱子伦精品免费强 | 天天欲色成人综合网站 |