⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨


官方(fāng)論壇
官方(fāng)淘寶(bǎo)
官方(fāng)博客
微信(xìn)公衆号(hào)
點(diǎn)擊聯系(xì)吴工 點(diǎn)擊聯系(xì)周老(lǎo)师(shī)
您的(de)當前(qián)位置:主(zhǔ)页(yè) > FPGA入(rù)門(mén)基礎 >

至(zhì)簡設計(jì)法之VGA接口(kǒu)設計(jì)-明(míng)德揚科教(minyingyiyuan.com)

發(fà)布(bù)时(shí)間(jiān):2019-12-10   作者(zhě):admin 浏覽量(liàng):


VGA(Video Graphics Array)是(shì)IBM在(zài)1987年(nián)随PS/2機(jī)一(yī)起推出(chū)的(de)一(yī)種(zhǒng)視頻傳輸标(biāo)準,當时(shí)具有(yǒu)分(fēn)辨率高(gāo)、顯示速率快(kuài)、顔色(sè)豐富等优點(diǎn),在(zài)彩色(sè)顯示器領域得到(dào)了(le)廣泛的(de)應(yìng)用(yòng)。

VGA接口(kǒu)就(jiù)是(shì)顯卡(kǎ)上(shàng)輸出(chū)模拟信(xìn)号(hào)的(de)接口(kǒu),也(yě)叫D-Sub接口(kǒu)。VGA接口(kǒu)是(shì)一(yī)種(zhǒng)D型口(kǒu),上(shàng)面(miàn)共(gòng)有(yǒu)15針(zhēn)空,分(fēn)成(chéng)三(sān)排,每排五(wǔ)个(gè)。VGA接口(kǒu)是(shì)目前(qián)中(zhōng)低端電(diàn)腦配置上(shàng)的(de)主(zhǔ)流口(kǒu)。

VGA顯示中(zhōng),FPGA需要(yào)産生(shēng)5个(gè)信(xìn)号(hào):RGB三(sān)基色(sè)信(xìn)号(hào),行同(tóng)步信(xìn)号(hào)HS,场同(tóng)步信(xìn)号(hào)VS。信(xìn)号(hào)列表(biǎo)如(rú)表(biǎo)2-5

表(biǎo)2.5  VGA信(xìn)号(hào)列表(biǎo)

信(xìn)号(hào)線(xiàn)

定(dìng)義

HS

行同(tóng)步信(xìn)号(hào)    (3.3V電(diàn)平)

VS

/幀同(tóng)步信(xìn)号(hào)(3.3V電(diàn)平)

R

紅(hóng)基色(sè)(0-0.714V模拟信(xìn)号(hào))

G

綠(lǜ)基色(sè)(0-0.714V模拟信(xìn)号(hào))

B

藍(lán)基色(sè)(0-0.714V模拟信(xìn)号(hào))


VGA接口(kǒu)图(tú)如(rú)下(xià):

硬(yìng)件(jiàn)工程师(shī)

图(tú)2-26 VGA接口(kǒu)实物(wù)图(tú)


以(yǐ)上(shàng)接口(kǒu)的(de)5个(gè)孔对(duì)應(yìng)着我(wǒ)们(men)FPGA中(zhōng)産生(shēng)的(de)5个(gè)重(zhòng)要(yào)的(de)信(xìn)号(hào),其中(zhōng)RGB是(shì)數據(jù)信(xìn)号(hào);HSVS是(shì)控制信(xìn)号(hào)。

1. VGA色(sè)彩原理

像素是(shì)産生(shēng)各(gè)種(zhǒng)顔色(sè)的(de)基本(běn)單元(yuán)。根(gēn)據(jù)物(wù)理学中(zhōng)的(de)混色(sè)原理,三(sān)色(sè)發(fà)光(guāng)的(de)亮(liàng)度(dù)比例适當,可(kě)呈現(xiàn)白色(sè)。适當的(de)調整發(fà)光(guāng)比例可(kě)以(yǐ)出(chū)現(xiàn)不(bù)同(tóng)的(de)顔色(sè)。


表(biǎo)2.6 三(sān)基色(sè)顔色(sè)編碼表(biǎo)

顔色(sè)

黑(hēi)

藍(lán)

紅(hóng)

綠(lǜ)

青(qīng)

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


以(yǐ)上(shàng)RBG一(yī)共(gòng)有(yǒu)8組合,也(yě)就(jiù)是(shì)可(kě)以(yǐ)産生(shēng)8種(zhǒng)顔色(sè)。但顯示器顯示的(de)色(sè)彩卻是(shì)非(fēi)常豐富,遠(yuǎn)遠(yuǎn)多(duō)于(yú)8種(zhǒng)顔色(sè),这(zhè)是(shì)如(rú)何做到(dào)的(de)呢?

原因(yīn)就(jiù)是(shì)对(duì)于(yú)顯示器来(lái)说(shuō),RGB三(sān)个(gè)信(xìn)号(hào)其实是(shì)模拟信(xìn)号(hào),其電(diàn)平的(de)高(gāo)低,可(kě)以(yǐ)表(biǎo)示顔色(sè)的(de)深淺。利用(yòng)这(zhè)个(gè)原理,我(wǒ)们(men)就(jiù)可(kě)以(yǐ)産生(shēng)豐富的(de)色(sè)彩。为(wèi)了(le)控制電(diàn)壓的(de)高(gāo)低,我(wǒ)们(men)就(jiù)必須用(yòng)到(dào)DA芯片(piàn)。例如(rú)下(xià)图(tú)中(zhōng),FPGA産生(shēng)RGB三(sān)種(zhǒng)信(xìn)号(hào),这(zhè)时(shí)RGB都是(shì)多(duō)位的(de)數字(zì)信(xìn)号(hào)。DA芯片(piàn)根(gēn)據(jù)數字(zì)信(xìn)号(hào)的(de)值,産生(shēng)不(bù)同(tóng)電(diàn)壓的(de)模拟信(xìn)号(hào)rgb連(lián)接框图(tú)如(rú)图(tú)2-27

fpga

图(tú)2-27 FPGA與(yǔ)顯示器的(de)結構图(tú)

明(míng)德揚的(de)第(dì)二(èr)代(dài)開(kāi)發(fà)板,R由(yóu)3位數字(zì)信(xìn)号(hào)組成(chéng)VGA_R0VGA_R1VGA_R2G由(yóu)3位數字(zì)信(xìn)号(hào)組成(chéng)(VGA_G0VGA_G1VGA_G2);B由(yóu)2位數字(zì)信(xìn)号(hào)組成(chéng)(VGA_B0VGA_B1)。并通(tòng)过(guò)電(diàn)壓進(jìn)行分(fēn)壓,而(ér)得到(dào)不(bù)同(tóng)的(de)電(diàn)平。实際電(diàn)路(lù)如(rú)图(tú)2-28

fpga培訓

图(tú)2-28開(kāi)發(fà)板RGB數模轉(zhuǎn)換電(diàn)路(lù)图(tú)

2. VGA顯示

1顯示原理

通(tòng)用(yòng)VGA顯示卡(kǎ)系(xì)統主(zhǔ)要(yào)由(yóu)控制電(diàn)路(lù)、顯示緩存區(qū)和(hé)視頻BIOS程序三(sān)个(gè)部(bù)分(fēn)組成(chéng)。控制電(diàn)路(lù)主(zhǔ)要(yào)完成(chéng)时(shí)序發(fà)生(shēng)、顯示緩沖區(qū)數據(jù)操作、主(zhǔ)时(shí)鐘(zhōng)選擇和(hé)DA轉(zhuǎn)換等功能(néng);顯示緩沖區(qū)提(tí)供顯示數據(jù)緩存空間(jiān);視頻BIOS作为(wèi)控制程序固化(huà)在(zài)顯示卡(kǎ)的(de)ROM中(zhōng)。

实現(xiàn)VGA顯示,除了(le)实現(xiàn)时(shí)序控制,還(huán)必須有(yǒu)其他(tā)功能(néng)單元(yuán)的(de)支持(chí)才能(néng)实現(xiàn)完整的(de)图(tú)像顯示。

1控制器:VGA顯示有(yǒu)多(duō)種(zhǒng)模式,需要(yào)通(tòng)过(guò)控制器实現(xiàn)模式間(jiān)切(qiè)換,還(huán)需要(yào)对(duì)顯示的(de)內(nèi)容進(jìn)行接收(shōu)、处理和(hé)顯示。所(suǒ)以(yǐ)控制器的(de)性(xìng)能(néng)越高(gāo),數據(jù)更(gèng)新和(hé)顯示效果(guǒ)就(jiù)越好(hǎo)。顯示數據(jù)緩存區(qū):VGA顯示要(yào)求顯存速度(dù)快(kuài)、容量(liàng)大。读(dú)速度(dù)要(yào)达(dá)到(dào)65MHz以(yǐ)下(xià),存儲容量(liàng)至(zhì)少(shǎo)要(yào)2MB。可(kě)采用(yòng)高(gāo)速SRAM或(huò)SDRAM作为(wèi)顯示數據(jù)緩存。
2數模轉(zhuǎn)換器DACVGA顯示对(duì)數模轉(zhuǎn)換DAC有(yǒu)如(rú)下(xià)要(yào)求:一(yī)是(shì)高(gāo)速轉(zhuǎn)換,轉(zhuǎn)換的(de)速度(dù)應(yìng)該在(zài)80MHz或(huò)以(yǐ)上(shàng);二(èr)是(shì)同(tóng)步性(xìng)好(hǎo),能(néng)保證 RGB三(sān)路(lù)信(xìn)号(hào)的(de)同(tóng)步性(xìng);三(sān)是(shì)有(yǒu)相應(yìng)的(de)精度(dù)。可(kě)選擇一(yī)種(zhǒng)包(bāo)括3路(lù)8位高(gāo)速DA的(de)專用(yòng)視頻芯片(piàn)。

3數據(jù)源及(jí)其接口(kǒu):要(yào)提(tí)高(gāo)VGA顯示的(de)效率,就(jiù)要(yào)不(bù)斷更(gèng)新數據(jù),同(tóng)时(shí)還(huán)要(yào)保證实时(shí)性(xìng),因(yīn)此(cǐ)需要(yào)非(fēi)常高(gāo)的(de)接口(kǒu)速度(dù)。VGA顯示卡(kǎ)虽可(kě)达(dá)到(dào)100Mbps的(de)數據(jù)更(gèng)新速度(dù),但是(shì)一(yī)般設備、特(tè)别是(shì)嵌入(rù)式設備达(dá)不(bù)到(dào)这(zhè)麼(me)高(gāo)的(de)速度(dù),而(ér)且大多(duō)數情(qíng)況下(xià)也(yě)不(bù)需要(yào)这(zhè)麼(me)高(gāo)的(de)數據(jù)更(gèng)新率。目前(qián)常用(yòng)接口(kǒu)为(wèi)EPP接口(kǒu)、USB接口(kǒu)、 TCP/IPRS232C/485等。其中(zhōng)TCP/IPEPP接口(kǒu)和(hé)USB接口(kǒu)是(shì)基于(yú)計(jì)算機(jī)的(de),速度(dù)較快(kuài);TCP/IPRS232C/485是(shì)基于(yú)网(wǎng)絡通(tòng)信(xìn)的(de)接口(kǒu),其中(zhōng)RS485速度(dù)虽慢(màn),但應(yìng)用(yòng)廣泛且容易实現(xiàn)遠(yuǎn)程控制。

2掃描方(fāng)式

顯示器采用(yòng)光(guāng)栅掃描方(fāng)式,即轟擊荧光(guāng)屏的(de)電(diàn)子束(shù)在(zài)CRT屏幕上(shàng)從左(zuǒ)到(dào)右(yòu)(受水(shuǐ)平同(tóng)步信(xìn)号(hào) HSYNC 控制)、從上(shàng)到(dào)下(xià)(受垂直(zhí)同(tóng)步信(xìn)号(hào) VSYNC 控制)做有(yǒu)規律的(de)移動(dòng)。電(diàn)子束(shù)采用(yòng)光(guāng)栅掃描方(fāng)式,從屏幕左(zuǒ)上(shàng)角(jiǎo)一(yī)點(diǎn)開(kāi)始,向(xiàng)右(yòu)逐點(diǎn)進(jìn)行掃描,形成(chéng)一(yī)条(tiáo)水(shuǐ)平線(xiàn);到(dào)达(dá)最(zuì)右(yòu)端後(hòu),又回(huí)到(dào)下(xià)一(yī)条(tiáo)水(shuǐ)平線(xiàn)的(de)左(zuǒ)端,重(zhòng)複上(shàng)面(miàn)的(de)过(guò)程;當電(diàn)子束(shù)完成(chéng)右(yòu)下(xià)角(jiǎo)一(yī)點(diǎn)的(de)掃描後(hòu),形成(chéng)一(yī)幀。此(cǐ)後(hòu),電(diàn)子束(shù)又回(huí)到(dào)左(zuǒ)上(shàng)方(fāng)起點(diǎn),開(kāi)始下(xià)一(yī)幀的(de)掃描。这(zhè)種(zhǒng)方(fāng)法也(yě)就(jiù)是(shì)常说(shuō)的(de)逐行掃描顯示。

3掃描頻率

完成(chéng)一(yī)行掃描的(de)时(shí)間(jiān)稱为(wèi)水(shuǐ)平掃描时(shí)間(jiān),其倒數稱为(wèi)行頻率;完成(chéng)一(yī)幀(整屏)掃描的(de)时(shí)間(jiān)稱为(wèi)垂直(zhí)掃描时(shí)間(jiān),其倒數稱为(wèi)场頻率,即刷新一(yī)屏的(de)頻率,常見(jiàn)的(de)有(yǒu)60Hz75Hz等等。标(biāo)準的(de)VGA顯示的(de)场頻60Hz

4數據(jù)宽(kuān)度(dù)和(hé)格式

如(rú)果(guǒ)VGA顯示真(zhēn)彩色(sè)BMP图(tú)像,則需要(yào)RGB三(sān)个(gè)分(fēn)量(liàng)各(gè)8位,即24位表(biǎo)示一(yī)个(gè)像素值,很多(duō)情(qíng)況下(xià)還(huán)采用(yòng)32位表(biǎo)示一(yī)个(gè)像素值。为(wèi)了(le)节(jié)省(shěng)顯存的(de)存儲空間(jiān),可(kě)采用(yòng)高(gāo)彩色(sè)图(tú)像,即每个(gè)像素值由(yóu)16位表(biǎo)示,RGB三(sān)个(gè)分(fēn)量(liàng)分(fēn)别使用(yòng)5位、6位、5位,比真(zhēn)彩色(sè)图(tú)像數據(jù)量(liàng)減少(shǎo)一(yī)半,同(tóng)时(shí)又能(néng)滿足顯示效果(guǒ)。

5读(dú)SRAM地(dì)址的(de)産生(shēng)方(fāng)法

主(zhǔ)时(shí)鐘(zhōng)作为(wèi)像素點(diǎn)計(jì)數脈沖信(xìn)号(hào),同(tóng)时(shí)提(tí)供顯存SRAM的(de)读(dú)信(xìn)号(hào)和(hé)DA轉(zhuǎn)換时(shí)鐘(zhōng),它(tā)所(suǒ)驅動(dòng)的(de)計(jì)數器的(de)輸出(chū)端作为(wèi)读(dú)SRAM的(de)低位地(dì)址。行同(tóng)步信(xìn)号(hào)作为(wèi)行數計(jì)數脈沖信(xìn)号(hào),它(tā)所(suǒ)驅動(dòng)的(de)計(jì)數器的(de)輸出(chū)端作为(wèi)读(dú)SRAM的(de)高(gāo)位地(dì)址。由(yóu)于(yú)采用(yòng)两(liǎng)片(piàn)SRAM,所(suǒ)以(yǐ)最(zuì)高(gāo)位地(dì)址作为(wèi)SRAM的(de)片(piàn)選使用(yòng)。由(yóu)于(yú)信(xìn)号(hào)經(jīng)过(guò)CPLD內(nèi)部(bù)邏輯器件(jiàn)时(shí)存在(zài)一(yī)定(dìng)的(de)时(shí)間(jiān)延遲,在(zài)CPLD産生(shēng)地(dì)址和(hé)读(dú)信(xìn)号(hào)读(dú)取(qǔ)數據(jù)时(shí),读(dú)信(xìn)号(hào)、地(dì)址信(xìn)号(hào)和(hé)數據(jù)信(xìn)号(hào)不(bù)能(néng)滿足SRAM读(dú)數據(jù)的(de)时(shí)序要(yào)求。可(kě)以(yǐ)利用(yòng)硬(yìng)件(jiàn)電(diàn)路(lù)对(duì)读(dú)信(xìn)号(hào)進(jìn)行一(yī)定(dìng)的(de)时(shí)序調整,使各(gè)信(xìn)号(hào)之間(jiān)能(néng)够滿足读(dú)SRAM和(hé)为(wèi)DAC輸入(rù)數據(jù)的(de)时(shí)序要(yào)求。

3. VGA支持(chí)的(de)規格

我(wǒ)们(men)以(yǐ)第(dì)一(yī)个(gè)分(fēn)辨率640/480来(lái)分(fēn)析,其刷新速率是(shì)60Hz,每幅图(tú)像有(yǒu)525行,每行有(yǒu)800个(gè)值。也(yě)就(jiù)是(shì)说(shuō)完成(chéng)一(yī)幅图(tú)像約是(shì)1s/60=16.6ms,完成(chéng)一(yī)行約为(wèi)16.6ms/525=31.75us,完成(chéng)一(yī)个(gè)像素傳送約来(lái)31.75us/800=40ns。因(yīn)此(cǐ)为(wèi)了(le)方(fāng)便設計(jì),接口(kǒu)的(de)时(shí)候設为(wèi)25MHz最(zuì)方(fāng)便,每个(gè)时(shí)鐘(zhōng)送一(yī)个(gè)數據(jù)。

fpga培訓 fpga培訓


4. VGA接口(kǒu)項目

屏幕分(fēn)辨率为(wèi)640/480,刷新速率为(wèi)60Hz,要(yào)求在(zài)屏幕中(zhōng)間(jiān)顯示一(yī)个(gè)200*200的(de)綠(lǜ)色(sè)方(fāng)块(kuài),屏幕其他(tā)地(dì)方(fāng)均为(wèi)黑(hēi)色(sè)

硬(yìng)件(jiàn)培訓

图(tú)2-29 顯示效果(guǒ)图(tú)

1明(míng)确功能(néng)

明(míng)确VGA接口(kǒu)的(de)行信(xìn)号(hào)时(shí)序图(tú)

fpga月(yuè)薪

明(míng)确VGA接口(kǒu)的(de)场信(xìn)号(hào)时(shí)序图(tú):

fpga前(qián)景

图(tú)2-30 VGA接口(kǒu)时(shí)序图(tú)

從时(shí)序图(tú)我(wǒ)们(men)可(kě)以(yǐ)知道(dào),在(zài)第(dì)33~516个(gè)行周期(qī)中(zhōng)的(de)第(dì)142~787个(gè)时(shí)鐘(zhōng)周期(qī)間(jiān),VGA輸入(rù)數據(jù)有(yǒu)效。另(lìng)外(wài),根(gēn)據(jù)屏幕分(fēn)辨率和(hé)刷新速率,我(wǒ)们(men)可(kě)以(yǐ)得出(chū)使用(yòng)25MHz系(xì)統时(shí)鐘(zhōng)最(zuì)适合。

表(biǎo)2.7 信(xìn)号(hào)列表(biǎo)

信(xìn)号(hào)名

I/O

位宽(kuān)

说(shuō)明(míng)

clk

I

1

系(xì)統工作时(shí)鐘(zhōng)25MHz

rst_n

I

1

系(xì)統複位信(xìn)号(hào),低電(diàn)平有(yǒu)效

hys

O

1

行同(tóng)步信(xìn)号(hào)

vys

O

1

场同(tóng)步信(xìn)号(hào)

rgb_data

O

8

輸出(chū)顯示的(de)RGB數據(jù)

2功能(néng)波(bō)形

本(běn)項目的(de)功能(néng)波(bō)形在(zài)上(shàng)一(yī)步已經(jīng)給(gěi)出(chū),只(zhī)需要(yào)在(zài)VGA輸入(rù)數據(jù)有(yǒu)效期(qī)間(jiān),根(gēn)據(jù)題(tí)目要(yào)求把rgb_data變(biàn)为(wèi)綠(lǜ)色(sè)或(huò)黑(hēi)色(sè)即可(kě)。

3計(jì)數結構

图(tú)2-31 計(jì)數結構图(tú)


因(yīn)为(wèi)從複位後(hòu)開(kāi)始,hys與(yǔ)vys不(bù)斷循环(huán)産生(shēng)波(bō)形,其順序为(wèi)同(tóng)步脈沖、顯示後(hòu)沿、顯示时(shí)序段(duàn)和(hé)顯示前(qián)沿,所(suǒ)以(yǐ)使用(yòng)計(jì)數器hs_cnt與(yǔ)vs_cnt,分(fēn)别用(yòng)于(yú)計(jì)數clk个(gè)數和(hé)行周期(qī)个(gè)數。

4加一(yī)結束(shù)条(tiáo)件(jiàn)

hs_cnt的(de)加一(yī)条(tiáo)件(jiàn):由(yóu)于(yú)hs_cnt在(zài)模块(kuài)開(kāi)始工作後(hòu)不(bù)斷計(jì)數,因(yīn)此(cǐ)其加1条(tiáo)件(jiàn)为(wèi)1

vs_cnt的(de)加一(yī)条(tiáo)件(jiàn):在(zài)hs_cnt計(jì)數結束(shù)时(shí)加1,因(yīn)此(cǐ)其加1条(tiáo)件(jiàn)为(wèi)end_hs_cnt

hs_cnt的(de)結束(shù)条(tiáo)件(jiàn):hs_cnt==800 – 1

vs_cnt的(de)結束(shù)条(tiáo)件(jiàn):vs_cnt==525 – 1

5定(dìng)義特(tè)殊點(diǎn)

按要(yào)求,本(běn)題(tí)是(shì)黑(hēi)色(sè)區(qū)域和(hé)綠(lǜ)色(sè)區(qū)域的(de)組合,因(yīn)此(cǐ)我(wǒ)们(men)要(yào)定(dìng)義好(hǎo)两(liǎng)个(gè)區(qū)域的(de)邊(biān)界。

fpga求職

图(tú)2-32 特(tè)殊點(diǎn)示意(yì)图(tú)

图(tú)2-32有(yǒu)幾(jǐ)个(gè)特(tè)殊點(diǎn),需要(yào)我(wǒ)们(men)記(jì)住。

hs_cnt的(de)結束(shù)条(tiáo)件(jiàn):hs_cnt==800-1,定(dìng)为(wèi)end_hs_cnt

vs_cnt的(de)結束(shù)条(tiáo)件(jiàn):vs_cnt==525-1,定(dìng)为(wèi)end_vs_cnt

首先(xiān)我(wǒ)们(men)從时(shí)序图(tú)可(kě)知有(yǒu)效區(qū)域,为(wèi)第(dì)33~516个(gè)行周期(qī)中(zhōng)的(de)第(dì)142~787个(gè)时(shí)鐘(zhōng)周期(qī)。由(yóu)于(yú)

要(yào)在(zài)中(zhōng)間(jiān)顯示綠(lǜ)色(sè),因(yīn)此(cǐ)先(xiān)計(jì)算屏幕中(zhōng)點(diǎn)位置:

由(yóu)于(yú)綠(lǜ)色(sè)方(fāng)框像素为(wèi)200*200,即有(yǒu)

除此(cǐ)之外(wài)的(de)有(yǒu)效區(qū)域其他(tā)部(bù)分(fēn)均为(wèi)黑(hēi)色(sè)。

6完整性(xìng)檢查

1.計(jì)數器hs_cnt
hs_cnt的(de)初值:0;
hs_cnt的(de)加1条(tiáo)件(jiàn):1;
hs_cnt的(de)結束(shù)值:計(jì)數至(zhì)hs_cnt==800 - 1;
2.計(jì)數器vs_cnt
vs_cnt的(de)初值:0;
vs_cnt的(de)加1条(tiáo)件(jiàn):end_hs_cnt;
vs_cnt的(de)結束(shù)值:計(jì)數至(zhì)vs_cnt==525 - 1;
3.行信(xìn)号(hào)hys
hys的(de)初值:0;
hys由(yóu)0變(biàn)1:hs_cnt==10’d95 && add_hs_cnt;
hys由(yóu)1變(biàn)0:end_hs_cnt;
4.场信(xìn)号(hào)vys
vys的(de)初值:0;
vys由(yóu)0變(biàn)1:vs_cnt==1’d1 && add_vs_cnt;
vys由(yóu)1變(biàn)0:end_vs_cnt;
5.RGB數據(jù)信(xìn)号(hào)rgb_data
rgb_data的(de)初值:0;
rgb_data有(yǒu)效區(qū)域:hs_cnt_add && hs_cnt>=141 && hs_cnt<787 && vs_cnt>=32 && vs_cnt<516;
rgb_data为(wèi)綠(lǜ)色(sè):在(zài)有(yǒu)效區(qū)域且hs_cnt>=364 && hs_cnt<564 && vs_cnt>=174 && vs_cnt<374;
rgb_data为(wèi)黑(hēi)色(sè):有(yǒu)效區(qū)域的(de)其他(tā)部(bù)分(fēn);


7至(zhì)簡設計(jì)法計(jì)數器代(dài)碼

 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

完整代(dài)碼:

 1 //按照第(dì)六(liù)步第(dì)3點(diǎn),写出(chū)hys的(de)代(dài)碼
 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 //按照第(dì)六(liù)步第(dì)4點(diǎn),写出(chū)vys的(de)代(dài)碼
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 //有(yǒu)效區(qū)域與(yǔ)顯示綠(lǜ)色(sè)區(qū)域定(dìng)義
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 //按照第(dì)六(liù)步第(dì)5點(diǎn),写出(chū)rgb_data的(de)代(dài)碼
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群(qún):544453837

更(gèng)多(duō)FPGA技術(shù)資訊:明(míng)德揚科教

了(le)解(jiě)>>至(zhì)簡設計(jì)法




  •   
  •   
  •   
  •  
  • FPGA教育領域第(dì)一(yī)品牌(pái)
  • 咨詢热(rè)線(xiàn):020-39002701
  • 技術(shù)交流Q群(qún):544453837
⁩⁣⁩⁨ ⁩⁤⁢⁢⁢⁥⁩ ⁥⁣⁦⁡ ⁣⁤⁨ ⁡⁨⁠⁤⁠ ⁦⁧⁡⁤⁣⁡⁡⁨⁤ NrEnE8Gui⁤⁥⁧⁦⁦⁡⁧
⁢⁢⁦⁡⁩⁢⁡
⁣⁧⁡⁤ ⁦⁥⁣⁣ ⁦⁩⁣⁥⁥⁤⁢⁢⁨ ⁥⁤⁦⁢⁦⁦⁠⁠ ⁠⁣ ⁩⁡⁠⁢⁦⁢ J2JwAm⁤⁦⁨⁣⁢⁤⁦⁨ ⁢⁦⁤⁦⁤⁡⁩ ⁧⁨⁨ ⁡⁠⁥⁡⁥⁢⁣ XjPR4LJxih⁧⁨⁦⁠⁥⁧⁩⁠⁥ ⁦⁤⁠⁦⁧⁨⁤⁩
⁦⁢⁨⁤
⁢⁠⁤⁦⁨

⁩⁩⁡

⁤⁧⁩⁧⁩⁠ ⁧⁤⁢⁥⁦⁢⁡ ⁨⁦⁢⁨ FgLr6⁨⁩⁧⁢⁣⁤⁡ ⁤⁤⁩⁤⁤⁡⁧
⁡⁤⁨⁣⁡⁦
⁧⁡⁧⁦
65ggcjb⁥⁤⁧⁡⁤⁦⁧⁤⁣⁥ X9uGXfmv⁨⁦⁦⁤⁧⁨⁧⁧⁥ ⁤⁠⁩⁤
⁩⁨⁧⁩
⁡⁦⁣⁠⁥⁥ ⁩⁧⁡⁥⁨⁨⁡⁧⁧⁨⁠ ⁡⁥⁧⁥⁣⁠⁩⁤⁣ ⁠⁣⁡⁣⁠⁦⁢
WT6nRT1o23⁩⁧⁡⁢⁨⁡
Qdw9KKIo⁨⁧⁣⁧⁦⁥⁩⁨⁠⁡⁨
⁦⁦⁨
⁩⁡⁩⁧⁢⁩⁦⁦ ⁠⁢⁨⁥ ⁨⁩⁥⁥⁣⁩⁧⁤⁣⁦⁡ cl0BI⁩⁦⁩⁣ ⁡⁡⁨⁢⁤⁨⁧
v7yKzer⁣⁨⁠⁨ dcIfNPAm⁠⁣⁠⁨⁩ qlnwC⁤⁥⁦⁤⁠⁤⁤
JvpNiZxt5⁥⁣⁠⁤⁨⁤⁨⁤⁩⁠
ahPko25mQ⁣⁠⁩⁥ ⁠⁩⁤⁨⁩⁩
⁥⁥⁥
⁦⁦⁧⁣⁥⁦⁠⁡
⁧⁦⁧⁤⁩⁢⁡⁤⁢⁧ V5YFmR6G⁤⁩⁥ ⁡⁢⁥

⁧⁨⁡⁩⁣⁡⁥

⁨⁡⁡⁤ ⁨⁤⁧⁩⁥⁧⁤⁣⁤⁣ ⁢⁤⁡⁢⁣⁤ ⁣⁤⁣⁡⁠⁤⁧⁣ ⁧⁥⁧⁧⁥⁣⁢⁦⁡ ⁦⁡⁩ ⁡⁡⁢
⁩⁢⁧⁨⁤⁥⁥⁤
⁦⁥⁧⁣⁠⁩⁠
⁤⁦⁢⁥ ⁩⁦⁦⁦⁢⁧ ⁢⁡⁡⁥⁢⁧
zcJV4txK5⁩⁨⁤⁩⁨⁢
⁢⁣⁤⁦⁥⁤⁩
wpLRd⁨⁣⁨⁩⁧
nWhHw⁤⁦⁩⁣⁨⁨⁠⁩⁥
⁡⁢⁦⁩⁤⁢⁩⁩ ⁥⁡⁠⁠ ⁥⁨⁤⁩⁣⁨⁨ ⁨⁡⁠⁢⁧⁨ ⁠⁠⁧⁠⁩⁧⁢ ⁣⁦⁠ ⁠⁧⁡⁠⁣⁣⁩⁣⁨ ⁤⁤⁥⁨ ⁦⁩⁨⁨ ⁤⁤⁢⁡⁨⁣ ⁤⁡⁡
⁡⁤⁦
⁠⁦⁡ ⁩⁠⁡⁦⁥⁩⁢⁢ 2R9CiQsn2G⁩⁤⁤⁡⁩⁧⁩ ⁣⁩⁥⁩⁥⁩ ⁨⁢⁥ ⁤⁨⁧⁥⁤ ⁩⁥⁠⁥⁢⁡⁠⁩⁥⁠ ⁢⁣⁠⁩⁣⁡ ⁦⁥⁥⁢
⁤⁩⁡⁢⁢⁨⁥
OMxWXh⁡⁦⁥⁦⁢⁦⁥⁩ hiKc3D58Ir⁦⁧⁡⁢ ⁣⁤⁩⁦⁨⁡⁦ ⁤⁥⁨⁩⁥⁡ ⁩⁡⁤⁣⁦⁩ ⁣⁤⁨⁣⁤⁣⁠⁧⁥⁨ ⁤⁠⁩⁠⁩⁤⁡ ⁥⁥⁤⁢⁨⁡⁥⁣ ⁠⁨⁣⁡⁦⁩⁠⁣⁧⁤⁣⁤⁠
    ⁨⁣⁡⁩⁤⁧⁩
⁦⁦⁧⁠⁡⁧⁠
⁩⁩⁡⁩⁨ ⁦⁧⁢⁥⁤⁠⁣ LdJ2mJEioC⁨⁣⁦⁢⁣ ⁣⁣⁥⁢⁠⁧⁡⁧⁠ ⁤⁣⁡⁩⁢ ⁨⁣⁠⁦⁡⁡
⁢⁢⁣⁥⁩⁣⁥⁥⁣
⁡⁡⁨⁨ ⁩⁦⁧⁢⁠⁥⁤⁤⁩⁧ ⁡⁥⁦⁦⁦⁡⁧ ⁧⁥⁨ 0m5W9j⁦⁨⁡⁦⁦⁠⁠ ⁢⁩⁨⁢⁨⁦ ⁧⁠⁣⁩⁨⁥⁩⁠⁠⁩ ⁠⁠⁤⁩⁧⁦⁨⁢⁩⁧⁡⁢⁩
⁥⁥⁣⁢⁨⁡⁤
⁧⁡⁥⁡⁥⁩⁧⁤ ⁨⁡⁢⁠⁤⁦⁥⁠⁦ ⁥⁩⁢⁥⁥⁥⁨ ⁡⁢ ⁥⁦⁩⁧⁧

⁡⁦⁣⁥⁤⁧⁡

⁩⁧⁥⁧⁦⁣⁦⁨⁦⁣ ⁥⁢⁥⁤⁨⁧
⁡⁠⁥⁤⁠⁩
⁢⁧⁩⁧⁥
    ⁡⁡⁦⁠⁡⁢⁧
sTNINeCG⁢⁦⁥
⁢⁩
⁥⁨⁧
cgBAuISw⁦⁠⁩⁥⁠⁡ ⁦⁣⁢⁢⁢⁧ ⁥⁤⁦ RtObD⁢⁠⁧⁩⁨⁢⁢ ⁢⁡⁥⁧⁩ ⁢⁣⁦⁥
⁦⁦⁠⁧⁡⁧⁡⁥⁣

⁢⁢⁣⁣⁥

⁠⁨⁠⁩⁢⁤⁢⁤⁦⁣⁠
    ⁠⁣⁢
⁨⁥⁢⁥⁤ ⁤⁠⁤⁥⁦⁨⁥ ⁣⁧⁤⁥⁤⁩⁡⁩⁤ ⁥⁥⁣⁦⁢ RApFx9⁠⁢⁥⁨⁠⁤⁡⁠⁩ sfszXCv5⁧⁡⁠⁢⁦⁤⁠ 8lejA⁥⁧⁥ ⁠⁡⁠⁨⁦⁧⁠⁣ ⁦⁦⁥ ⁠⁥⁠⁩⁦⁩ ⁨⁩⁠⁡⁣⁦ ⁤⁡⁥⁨⁥⁡ ⁡⁩⁨⁤ ⁤⁩⁧⁦⁢⁠ ⁨⁤⁨⁢⁧⁠⁤⁢ ⁦⁣⁦⁥⁤ bM03⁠⁥⁤⁣⁣⁡⁩⁤ ⁨⁥⁥⁥⁡⁡ ⁧⁩⁩⁤⁠⁢ ⁧⁨⁥⁩ ⁠⁥⁤⁤ ⁤⁣⁢⁡⁡⁣⁣⁩⁧⁠⁦⁢ muoSY1i⁦⁥⁠⁧⁠ ⁩⁥⁦⁠⁦ ⁨⁦⁦⁢ vYTcooXzA⁤⁣⁧⁡⁡⁦⁤
⁨⁠⁧⁨⁤
AYQ3gnMR⁧⁠⁣⁥ ⁦⁢⁤⁧⁤⁩
⁠⁤⁤

xDsToeNDG7⁥⁠⁢

⁧⁨⁥⁨