原創聲明:
本原創教程由芯驛電子科技(上海)有限公司(ALINX)創作,版權歸本公司所有,如需轉載,需授權并注明出處。
適用于板卡型號:
AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG
前面我們介紹了led閃燈實驗,只是為了了解Vivado的基本開發流程,本章這個實驗相對LED閃燈實驗復雜點,做一個HDMI輸出的彩條,這也是我們后面學習顯示、視頻處理的基礎。實驗還不涉及到PS系統,從實驗設計可以看出如果要非常好的使用ZYNQ芯片,需要良好的FPGA基礎知識。
1. 硬件介紹
由于開發板上只有DP可以顯示,但卻是PS端的,PL端沒有HDMI的接口,因此我們采用AN9134的HDMI擴展模塊實現HDMI顯示。將24位RGB編碼輸出TMDS差分信號。SIL9134功能強大,本實驗只使用其中一小部分,將RGB24視頻數據顯示出來即可。
SI9134芯片需要通過I2C總線配置寄存器才能正常工作,從原理圖中可以看出I2C總線連接到PL端的IO,可以通過PL直接配置。
2. 程序設計
本實驗實現通過HDMI顯示彩條,實驗中設計了視頻時序發生和彩條發生模塊“color_bar.v”,I2C Master 寄存器配置模塊“i2c_config.v”,配置數據查找表模塊“lut_si9134.v”。
具體代碼在這里不再一一介紹了,大家自己去看。下面針對每個模塊實現的功能給大家做一下簡介:
頂層模塊top.v是項目的頂層文件,主要是實例化4個子模塊(時鐘模塊vidio_pll, 彩條生成模塊color_bar和I2C配置模塊i2c_config和配置查找表模塊lut_si9134。
彩條產生模塊color_bar.v是產生8種顏色的VGA格式的彩條,彩條分別為白、黃、青、綠、紫、紅、藍和黑。產生分辨率為1920x1080刷新率為60Hz的彩條,也就是所謂的1080P的高清視頻圖像。所以這個模塊會輸出R(8位)G(8位)B(8位)圖像信號、行同步、列同步和數據有效信號。
時鐘模塊video_pll調用的是一個Xilinx提供的時鐘IP,通過輸入的系統時鐘產生一個100Mhz時鐘和一個1080P的像素時鐘148.5Mhz。生成時鐘IP的方法是點擊Project Manager目錄下的IP Catalog,再選擇FPGA Features and Design->Clocking->Clocking Wizard圖標。
3. 下載調試
保存工程并編譯生成bit文件,連接HDMI模塊到J15擴展口,連接HDMI接口到HDMI顯示器,需要注意,這里使用1920x1080@60Hz,請確保自己的顯示器支持這個分辨率。
硬件連接圖(J15擴展口)
下載后顯示器顯示如下圖像
4. 實驗總結
本實驗初步接觸到視頻顯示,涉及到視頻知識,這不是zynq學習的重點,所以沒有詳細介紹,但zynq在視頻處理領域用途廣泛,需要學習者有良好的基礎知識。實驗中僅僅使用PL來驅動HDMI芯片,包括I2C寄存器配置,當然I2C的配置還是使用PS來配置比較合適。
-
FPGA
+關注
關注
1629文章
21729瀏覽量
603002 -
HDMI
+關注
關注
32文章
1694瀏覽量
151864 -
開發板
+關注
關注
25文章
5032瀏覽量
97375 -
Zynq
+關注
關注
10文章
609瀏覽量
47175 -
MPSoC
+關注
關注
0文章
198瀏覽量
24272
發布評論請先 登錄
相關推薦
評論