1 實(shí)驗(yàn)要求
在FPGA上生成1280x720@60分辨率的視頻信號(hào),通過(guò)DE10-Nano的 HDMI輸出到顯示屏上進(jìn)行顯示,顯示的內(nèi)容是一個(gè)黑色方塊每隔10ms移動(dòng)一個(gè)像素位置,方塊遇到邊框自行回彈,屏幕背景為白色,屏幕邊框?yàn)榫G色。
2 設(shè)計(jì)框圖
根據(jù)實(shí)驗(yàn)要求分析可得出,想要控制ADV7513最終在HDMI顯示器上顯示畫(huà)面,需要先配置ADV7513寄存器,配置通過(guò)I2C總線,該部分的控制原理在前面(參考文末往期閱讀的鏈接)已經(jīng)講解過(guò)。
想要在HDMI顯示器上顯示邊框,方塊和白色背景,需要設(shè)計(jì)一個(gè)滿足DMT時(shí)序的視頻信號(hào)。
1280x720@60分辨率的像素時(shí)鐘是74.25MHz,所以這里可調(diào)用Altera的PLL IP來(lái)生成這個(gè)時(shí)鐘(系統(tǒng)時(shí)鐘是50MHz)。
整個(gè)系統(tǒng)的設(shè)計(jì)框圖如下所示:

3 代碼實(shí)現(xiàn)
(1)Top level代碼
主要是例化PLL、HDMI顯示和I2C控制三個(gè)模塊。具體代碼參考工程。
(2)HDMI控制器模塊
HDMI控制器模塊用于生成1280x720分辨率的視頻信號(hào),并在屏幕上顯示一個(gè)每隔10ms移動(dòng)的黑色方塊,背景為白色,屏幕邊框?yàn)榫G色。
1. 首先是1280*720分辨率時(shí)序參數(shù)的設(shè)定。如下是行時(shí)序參數(shù)設(shè)定:

這些參數(shù)對(duì)應(yīng)到時(shí)序如下圖所示:

如下是場(chǎng)時(shí)序參數(shù)設(shè)定:

這些參數(shù)對(duì)應(yīng)到時(shí)序如下圖所示:

2. 實(shí)現(xiàn)行計(jì)數(shù)器和場(chǎng)計(jì)數(shù)器,用于跟蹤當(dāng)前像素位置,以及生成像素點(diǎn)橫縱坐標(biāo):

3. 根據(jù)行場(chǎng)計(jì)數(shù)器生成行場(chǎng)同步信號(hào):

4. 根據(jù)行場(chǎng)計(jì)數(shù)器生成像素點(diǎn)橫縱坐標(biāo):

5. hdmi_ctrl模塊的時(shí)鐘是74.25MHz(1280*720@60對(duì)應(yīng)的像素時(shí)鐘),利用計(jì)數(shù)器產(chǎn)生10ms間隔:

6. 當(dāng)方塊移動(dòng)到邊界時(shí),改變移動(dòng)方向:

根據(jù)代碼畫(huà)出方向改變的框圖示意圖如下:

7. 根據(jù)方塊移動(dòng)方向,改變其縱橫坐標(biāo):


8. 給不同的區(qū)域繪制不同的顏色:

(3)I2C控制模塊
I2C控制模塊直接參考本文第8.3章節(jié)(內(nèi)容一模一樣)。
4 硬件準(zhǔn)備
DE10-Nano開(kāi)發(fā)板一套(包括電源和USB 線纜)
HDMI顯示器一臺(tái)
HDMI cable 一根
5 軟件安裝 1. 進(jìn)入Altera官網(wǎng)選擇Quartus Prime Lite 17.1版本:

2. 點(diǎn)擊Indicidual Files 找到Cyclone V的器件包并下載:

3. 往下繼續(xù)找到Intel Quartus Software下載QuartusLiteSetup壓縮包和ModelSimSetup壓縮包(后續(xù)會(huì)有仿真章節(jié)):

4. 所有文件都下載完以后,雙擊QuartusLiteSetup-17.1.0.590-windows.exe文件進(jìn)行安裝。安裝的過(guò)程中會(huì)默認(rèn)選擇一起安裝Nios II IDE、ModelSim和Cyclone V器件包(未勾選時(shí)可自行勾選這些內(nèi)容),建議安裝的過(guò)程中所有默認(rèn)設(shè)置都保留(除了安裝路徑自己選擇外)。USB Blaster II驅(qū)動(dòng)程序?qū)⒃谲浖惭b結(jié)束時(shí)提示安裝。 6 操作步驟 1. 打開(kāi)Quartus軟件,點(diǎn)擊File——New Project Wizard...

2. 點(diǎn)擊Next:

3. 在如下對(duì)話框里面選擇工程路徑和工程名稱:

4. 繼續(xù)點(diǎn)擊Next:

5. 繼續(xù)點(diǎn)擊Next:

6. 然后在如下對(duì)話框里面鍵入DE10-Nano對(duì)應(yīng)的FPGA器件(5CSEBA6U23I7):

7. 點(diǎn)擊Finish結(jié)束工程的創(chuàng)建:

8. 開(kāi)始新建Top工程,點(diǎn)擊File——New...

9. 選擇Verilog HDL File 然后點(diǎn)擊OK:

10. 編Verilog代碼(代碼可以參考隨本文一起提供的工程)并保存為HDMI_block_move.v文件:

11. 用同樣的方法新建.v文件,編Verilog代碼(代碼可以參考隨本文一起提供的工程)并保存為hdmi_ctrl.v文件:

12. 將第八章節(jié)提到的I2C控制器所包含的三個(gè).v文件拷貝到當(dāng)前工程路徑下:

13. 并將這三個(gè)文件添加到當(dāng)前工程里面以便后面編譯的時(shí)候會(huì)調(diào)用這三個(gè)文件,具體做法是點(diǎn)擊Project——Add/Remove Files in Project..., 然后點(diǎn)擊File Name旁邊的...瀏覽到三個(gè)文件所在路徑,選中這三個(gè)文件然后點(diǎn)擊打開(kāi)按鈕:


14. 然后點(diǎn)擊Apply和OK按鈕結(jié)束工程文件的添加:

15. 接下來(lái)配置PLL IP,在IP Catalog里面搜索pll 找到Altera PLL,點(diǎn)擊它:

16. 在出現(xiàn)如下的對(duì)話框里填入pll的名稱為pll,然后點(diǎn)擊OK:

17. 在Reference Clock Frequency處填寫(xiě)50,在outclk0處填寫(xiě)74.25,然后點(diǎn)擊Finish結(jié)束pll的配置:

18. 等pll模塊生成以后會(huì)彈出如下對(duì)話框,點(diǎn)擊Yes將其添加到當(dāng)前工程:

19. 這時(shí)FPGA電路設(shè)計(jì)基本完成,接下來(lái)是引腳分配,首先點(diǎn)擊Start Analysis&Synthesis按鈕對(duì)工程進(jìn)行分析和綜合,這樣在后面引腳分配的時(shí)候信號(hào)端口才能出現(xiàn):

20. 接下來(lái)參考DE10-Nano的 usermanual文檔或者schematic文件來(lái)分配引腳,該工程引腳分配如下:


21. 引腳分配完成就點(diǎn)擊Start Compilation按鈕開(kāi)始全編譯工程:

22. 工程全編譯結(jié)束后在HDMI_block_moveoutput_files路徑下會(huì)產(chǎn)生HDMI_block_move.sof文件,接下來(lái)點(diǎn)擊Programmer 按鈕將此文件配置到FPGA里面去:

23. 點(diǎn)擊Hardware Setup(在這之前記得用一根HDMI線纜連接HDMI顯示器和DE10-Nano, 然后用一根Mini USB線連接PC和DE10-Nano, 然后給DE10-Nano開(kāi)發(fā)板插上5V電源),選擇DE-SoC[USB-1]端口,點(diǎn)擊Close:

24. 點(diǎn)擊Auto Detect,選擇5CSEBA6,然后點(diǎn)擊OK:

25. 如果出現(xiàn)如下窗口,點(diǎn)擊Yes:

26. 此時(shí)系統(tǒng)會(huì)出現(xiàn)兩個(gè)器件,一個(gè)是SOCVHPS, 一個(gè)是5CSEBA6U23,鼠標(biāo)右擊5CSEBA6U23選擇Change File:

27. 瀏覽到HDMI_block_move.sof路徑下選擇該文件,然后點(diǎn)擊Open:

28. 點(diǎn)選如下復(fù)選框,然后點(diǎn)擊Start開(kāi)始FPGA 文件配置:

29. 當(dāng)Progress進(jìn)度條顯示100%(顏色變綠了)代表FPGA配置完成:

7 實(shí)驗(yàn)現(xiàn)象
可以觀察到HDMI顯示器上有個(gè)綠色邊框,中間背景為白色,有個(gè)黑色小方塊在屏幕中移動(dòng)。
HDMI_block_move工程下載鏈接: https://pan.baidu.com/s/1LwQjqLpmZMl5IkvTgzo-3w
提取碼: tera
-
FPGA
+關(guān)注
關(guān)注
1664文章
22502瀏覽量
639160 -
顯示器
+關(guān)注
關(guān)注
22文章
5159瀏覽量
144761 -
HDMI
+關(guān)注
關(guān)注
34文章
1916瀏覽量
161370
原文標(biāo)題:7-DE10-Nano的HDMI方塊移動(dòng)案例的整體實(shí)現(xiàn)(含Quartus完整工程免費(fèi)下載)
文章出處:【微信號(hào):友晶FPGA,微信公眾號(hào):友晶FPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于FPGA開(kāi)發(fā)板DE10-Standard和T-Core的串口通信設(shè)計(jì)
來(lái)自InnovateFPGA的全球令人印象深刻的創(chuàng)新設(shè)計(jì)
【正點(diǎn)原子FPGA連載】第十九章HDMI方塊移動(dòng)實(shí)驗(yàn)-領(lǐng)航者ZYNQ之FPGA開(kāi)發(fā)指南
ADI開(kāi)發(fā)板擴(kuò)展DE10-Nano 套件功能
如何使用英特爾FPGA加速軟件
【正點(diǎn)原子FPGA連載】第二十五章HDMI方塊移動(dòng)實(shí)驗(yàn) -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開(kāi)發(fā)指南_V2.1
自制Arduino Nano俄羅斯方塊游戲
用于Terasic DE10-納米套件的實(shí)際插件
PwFPGA第5部分 - DE0 Nano上的乒乓游戲
基于互聯(lián)網(wǎng)的攝像測(cè)量系統(tǒng)(二)
基于互聯(lián)網(wǎng)的攝像測(cè)量系統(tǒng)(三)
使用友晶DE10-Nano開(kāi)發(fā)板的HDMI彩條顯示案例
友晶科技DE10和DE25系列開(kāi)發(fā)板在實(shí)驗(yàn)室該如何選擇
使用DE10-Nano的HDMI方塊移動(dòng)案例的整體實(shí)現(xiàn)
評(píng)論