VGA顯示控制器模塊vga_generator.v(位于DemonstrationsFPGAHDMI_TXvpg_source路徑下)可生成符合DMT(Display Monitor Timing 顯示器時(shí)序)時(shí)序的視頻信號。該模塊的RTL Viewer視圖如下:

該模塊根據(jù)輸入的時(shí)序參數(shù)生成VGA的行同步信號(vga_hs)、場同步信號(vga_vs)、數(shù)據(jù)有效信號(vga_de)以及24位真彩色(RGB888)數(shù)據(jù)(vga_r, vga_g, vga_b)。本案例利用該模塊生成測試圖案(彩條顏色漸變和邊框)用于HDMI顯示驗(yàn)證。
輸入信號
clk:像素時(shí)鐘PCLK輸入。
reset_n:低電平有效的異步復(fù)位信號。
h_total:一行像素的總數(shù)(包括消隱區(qū))。
h_sync:行同步脈沖的寬度(以像素?cái)?shù)為單位)。
h_start:行有效數(shù)據(jù)開始的像素位置。h_end:行有效數(shù)據(jù)結(jié)束的像素位置。v_total:一幀的總行數(shù)(包括消隱區(qū))。
v_sync:場同步脈沖的寬度(以行為單位)。
v_start:場有效數(shù)據(jù)開始的行位置。
v_end:場有效數(shù)據(jù)結(jié)束的行位置。
v_active_14,v_active_24, v_active_34:將像素有效顯示區(qū)域分為4等分,每一部分顯示一種顏色。
輸出信號
vga_hs:行同步信號(低電平有效)。
vga_vs:場同步信號(低電平有效)。
vga_de:數(shù)據(jù)有效信號(高電平表示有效像素區(qū)域)。
vga_r,vga_g, vga_b:8位RGB顏色輸出。
關(guān)鍵內(nèi)部信號
h_count:水平像素計(jì)數(shù)器。
v_count:垂直行計(jì)數(shù)器。
pixel_x:當(dāng)前行內(nèi)的像素索引(用于顏色生成)。
h_act,v_act:行和場的有效區(qū)域標(biāo)志。
color_mode:顏色模式控制信號(4位,分別代表4種顏色區(qū)域)。
boarder:邊框標(biāo)志(用于繪制白色邊框)。
邏輯代碼分析
1.水平控制邏輯(Horizontal Control)

水平控制信號對應(yīng)時(shí)序如下:

使用h_count計(jì)數(shù)像素位置,在達(dá)到h_total時(shí)歸零。
生成行同步信號vga_hs:當(dāng)h_count >= h_sync且未到行末時(shí),同步信號為高(同步脈沖結(jié)束),否則為低(同步脈沖期間)。
控制行有效區(qū)域h_act:在h_start到h_end之間置位。
pixel_x在有效區(qū)域內(nèi)遞增,用于生成顏色漸變。
水平控制信號對應(yīng)的Signaltap 波形如圖,可見pixel_x信號比h_act信號延遲二拍。因?yàn)榈?一拍h_act 變高,但 h_act_d 還是舊值(低電平);第二拍h_act 的高電平被鎖存到 h_act_d 中,此時(shí) h_act_d 變高電平,于是第三拍時(shí)pixel_x 值可以從0變1。

2.垂直控制邏輯(Vertical Control)

垂直控制信號對應(yīng)時(shí)序如下:

在每行結(jié)束時(shí)(h_max為真)更新v_count。
生成場同步信號vga_vs:當(dāng)v_count >= v_sync且未到幀末時(shí),同步信號為高(同步脈沖結(jié)束),否則為低。
控制場有效區(qū)域v_act:在v_start到v_end之間置位。
根據(jù)垂直位置設(shè)置color_mode:v_active_14、v_active_24、v_active_34將有效區(qū)域分為4部分,分別對應(yīng)不同的顏色模式。
Signaltap 波形如下:

3.圖像生成與數(shù)據(jù)有效(Pattern Generator and DE)

vga_de(數(shù)據(jù)有效)由pre_vga_de延遲一拍產(chǎn)生,pre_vga_de是h_act和v_act的邏輯與。
繪制白色邊框:當(dāng)進(jìn)入或退出有效區(qū)域時(shí)(行或場的邊界),boarder置位,輸出白色(RGB=0xFF)。
在非邊框區(qū)域,根據(jù)color_mode輸出漸變顏色:
0001:由黑向紅色漸變(紅色分量隨pixel_x遞增)。
0010:由黑向綠色漸變。(綠色分量隨pixel_x遞增)。
0100:由黑向藍(lán)色漸變。(藍(lán)色分量隨pixel_x遞增)。
1000:由黑向白色漸變(三通道同時(shí)遞增)。
默認(rèn)狀態(tài):黑色(RGB=0x000000)。
Signaltap 波形如下:

DemonstrationsFPGAHDMI_TXvpg_sourcevpg.v模塊里面給出了各個(gè)分辨率參數(shù):

以上代碼的這些參數(shù)數(shù)據(jù)參考1-DE10-Nano的HDMI方塊移動案例——顯示器時(shí)序(DMT)標(biāo)準(zhǔn)介紹 里面的顯示器時(shí)序中不同分辨率刷新率的參數(shù)章節(jié)的表格。以640x480@60 為例,根據(jù)表格參數(shù)可以畫出VGA有效顯示區(qū)域如下:

讀者可能覺得vpg.v模塊里面給出了各個(gè)分辨率參數(shù)跟表格的數(shù)據(jù)有不同,是因?yàn)闀r(shí)鐘節(jié)拍從0開始計(jì)數(shù),所以每個(gè)數(shù)據(jù)都減一, 另外h_start提前 2 拍其實(shí)是全局時(shí)序補(bǔ)償,目標(biāo)是抵消 “h_act信號到vga_de信號的總延遲(2 拍),讓最終顯示位置對齊 VGA 標(biāo)準(zhǔn)。具體的計(jì)算請參考vpg.v模塊里面的注釋部分:

-
顯示器
+關(guān)注
關(guān)注
22文章
5145瀏覽量
144363 -
控制器
+關(guān)注
關(guān)注
114文章
17786瀏覽量
192980 -
VGA
+關(guān)注
關(guān)注
5文章
579瀏覽量
66280 -
輸入信號
+關(guān)注
關(guān)注
0文章
559瀏覽量
13178
原文標(biāo)題:2-DE10-Nano的HDMI彩條顯示案例(分辨率可切換)—— VGA顯示控制器模塊設(shè)計(jì)
文章出處:【微信號:友晶FPGA,微信公眾號:友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
基于FPGA開發(fā)板DE10-Standard和T-Core的串口通信設(shè)計(jì)
出售2套:友晶科技(Terasic)原裝正品 FPGA開發(fā)板 Terasic ALTERA DE2-115
轉(zhuǎn)讓友晶科技Altera DE2開發(fā)板[已售出]
出售DE2-70 FPGA開發(fā)板
出售 altera 友晶 DE5-NET開發(fā)板 三塊,有意者帶價(jià)來,基本全新,配件齊全
基于Nexys4開發(fā)板的VGA顯示實(shí)驗(yàn)(使用ISE 14.3)
ADI開發(fā)板擴(kuò)展DE10-Nano 套件功能
DE1O Nano SoC開發(fā)板的用戶手冊免費(fèi)下載
用于Terasic DE10-納米套件的實(shí)際插件
基于互聯(lián)網(wǎng)的攝像測量系統(tǒng)(二)
基于互聯(lián)網(wǎng)的攝像測量系統(tǒng)(三)
在友晶DE1-SOC開發(fā)板實(shí)現(xiàn)Chirikov標(biāo)準(zhǔn)映射求解器
使用友晶DE10-Nano開發(fā)板的HDMI彩條顯示案例
基于友晶DE10-Nano開發(fā)板的VGA顯示控制器模塊設(shè)計(jì)
評論