0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【ZYNQ Ultrascale+ MPSOC FPGA教程】第十五章HDMI字符顯示實驗

FPGA技術(shù)專欄 ? 來源:芯驛電子科技 ? 作者:芯驛電子科技 ? 2021-01-25 09:52 ? 次閱讀

原創(chuàng)聲明:

本原創(chuàng)教程由芯驛電子科技(上海)有限公司(ALINX)創(chuàng)作,版權(quán)歸本公司所有,如需轉(zhuǎn)載,需授權(quán)并注明出處。

適用于板卡型號:

AXU2CGA/AXU2CGB/AXU3EG/AXU4EV-E/AXU4EV-P/AXU5EV-E/AXU5EV-P /AXU9EG/AXU15EG

實驗Vivado工程為“hdmi_char”。

在HDMI輸出實驗中講解了HDMI顯示原理和顯示方式,本實驗介紹如何使用FPGA實現(xiàn)字符顯示,通過這個實驗更加深入的了解HDMI的顯示方式。

1. 實驗原理

實驗通過字符轉(zhuǎn)換工具將字符轉(zhuǎn)換為16進(jìn)制coe文件存放到單端口的ROM IP 核中,再從ROM 中把轉(zhuǎn)換后的數(shù)據(jù)讀取出來顯示到HDMI上。

2.程序設(shè)計

字符顯示例程是在HDMI顯示的基礎(chǔ)上增加了一個osd_display的模塊,“osd_display”模塊是用來讀取存儲在Rom ip核里轉(zhuǎn)換后的字符信息,并在指定區(qū)域顯示。程序框圖如下圖所示:

pIYBAGAKL9OAJR1jAAB-JFttXqs841.jpg

2.1在“timing_gen_xy”模塊是根據(jù)HDMI時序標(biāo)準(zhǔn)定義了“x_cnt”和“y_cnt”兩個計數(shù)器并由這兩個計數(shù)器產(chǎn)生了HDMI顯示的“x”坐標(biāo)和“y”坐標(biāo)。程序中用“vs_edge”和“de_falling”分別表示場同步開始信號和數(shù)據(jù)有效結(jié)束信號。其原理如下圖所示:

o4YBAGAKL9OAYIrhAABmJ64Do0c337.jpg

信號名稱 方向 說明
rst_n in 異步復(fù)位輸入,低復(fù)位
clk in 外部時鐘輸入
i_hs in 行同步信號
i_vs in 場同步信號
i_de in 數(shù)據(jù)有效信號
i_data in color_bar數(shù)據(jù)
o_hs out 輸出行同步信號
o_vs out 輸出場同步信號
o_de out 輸出數(shù)據(jù)有效信號
o_data out 輸出數(shù)據(jù)
x out 生成X坐標(biāo)
y out 生成Y坐標(biāo)

timing_gen_xy模塊端口

2.2下面介紹如何存儲文字信息的ROMIP,首先需要生成能夠被XILINX FPGA識別的.coe文件。

首先在工程文件夾下找到“FPGA字模提取”工具。

pIYBAGAKL9SAK-J1AAACGrD-K80325.jpg

雙擊.exe文件打開工具

o4YBAGAKL9SAblV1AAAcg7WxZaI894.jpg

在提取工具的“字符輸入”框中輸入需要顯示的字符,字體和字符高度可以自定義選擇。設(shè)置完成后點(diǎn)擊“轉(zhuǎn)換”按鈕,在界面左下角可以看到轉(zhuǎn)換后的字符點(diǎn)陣大小,點(diǎn)陣的寬和高在程序中是需要用到

pIYBAGAKL9SAZCf-AAAc4RrSjDo702.jpg

點(diǎn)陣的寬和高這里位144x32,需要跟osd_display程序中定義的一致:

o4YBAGAKL9WABhyEAAAESGgPz9k852.jpg

點(diǎn)擊“保存”按鈕,將文件保存到本例程源文件目錄下,需要注意的是在保存類型下應(yīng)該選擇Xilinx(*.coe),點(diǎn)擊“保存”按鈕。

pIYBAGAKL9WAOJqqAADGwnCs6qs338.jpg

找到生成的.coe文件打開后可以看到如下:

o4YBAGAKL9aANLuzAAARW82Wc-w776.jpg

調(diào)用單端口Rom IP核的過程在前面ROM的使用中已經(jīng)介紹過,設(shè)置為Single Port ROM

pIYBAGAKL9aADrNQAACVuVfQilI361.jpg

在PortA Options欄中設(shè)置如下:

o4YBAGAKL9eAfeAAAACHlYHuATA615.jpg

按如下圖添加osd.coe文件(找到前面生成的coe文件),完成后點(diǎn)擊“OK”按鈕:

pIYBAGAKL9iAYj9kAACCDiJFxHA130.jpg

2.3osd_display模塊包含timing_gen_xy 模塊和osd_rom模塊。osd_rom里存儲的字符數(shù)據(jù),如果數(shù)據(jù)為1,OSD的區(qū)域顯示ROM中的前景紅色(顯示ALINX芯驛),如果數(shù)據(jù)是0,OSD的區(qū)域顯示數(shù)據(jù)為背景色(彩條)。

o4YBAGAKL9iAMfKSAAAUpsxg2sw665.jpg

設(shè)置區(qū)域有效信號,也就是字符顯示在此區(qū)域中,起始坐標(biāo)設(shè)置成(9,9),區(qū)域大小可以根據(jù)字符生成工具設(shè)置的區(qū)域設(shè)置。

pIYBAGAKL9mALSUKAAAZ1sCoESc546.jpg

在ROM的讀地址部分可能很多人不理解,為什么是[15:3],也就是八個時鐘周期才讀出一個數(shù)據(jù),這是因為字符的一個點(diǎn)只表示1bit,而ROM的存儲數(shù)據(jù)寬度是8位,因此需要八個周期取出一個數(shù)據(jù),并比較每個bit位的值,將字符一個點(diǎn)轉(zhuǎn)換成圖像上的一個像素。

o4YBAGAKL9qAeDbTAAAL5h2fwT0434.jpg

信號名稱 方向 說明
rst_n in 異步復(fù)位輸入,低復(fù)位
pclk in 外部時鐘輸入
i_hs in 行同步信號
i_vs in 場同步信號
i_de in 數(shù)據(jù)有效信號
i_data in color_bar數(shù)據(jù)
o_hs out 輸出行同步信號
o_vs out 輸出場同步信號
o_de out 輸出數(shù)據(jù)有效信號
o_data out 輸出數(shù)據(jù)

osd_display模塊端口

3.實驗現(xiàn)象

連接好開發(fā)板和顯示器,連接方式參考《HDMI輸出實驗》教程,需要注意,開發(fā)板的各個連接器不要帶電熱插拔,下載好實驗程序,可以看到顯示器顯示以彩條為背景的字符。開發(fā)板作為HDMI輸出設(shè)備,只能通過HDMI顯示設(shè)備來顯示,不要試圖通過筆記本電腦的HDMI接口來顯示,因為筆記本也是輸出設(shè)備。

默認(rèn)字符顯示的位置在坐標(biāo)為(9,9),另外用戶可以修改下面的pos_y和pos_x的判斷條件將字符顯示在顯示屏的任意位置:

o4YBAGAKL9uAPi1IAAAKcj8OzpM385.jpg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1624

    文章

    21573

    瀏覽量

    600704
  • HDMI
    +關(guān)注

    關(guān)注

    32

    文章

    1630

    瀏覽量

    151449
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4846

    瀏覽量

    96887
  • Zynq
    +關(guān)注

    關(guān)注

    9

    文章

    607

    瀏覽量

    47084
  • MPSoC
    +關(guān)注

    關(guān)注

    0

    文章

    195

    瀏覽量

    24215
收藏 人收藏

    評論

    相關(guān)推薦

    請問Zynq Ultrascale + MPSOC本身是否存在問題?

    你好我們正在考慮在我們的新設(shè)計中使用Zynq Ultrascale + MPSOC。我們想在我們的電路板設(shè)計中加入HDMI接口。 Zynq
    發(fā)表于 10-14 09:17

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

      如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器  Zynq UltraScale+
    發(fā)表于 01-07 16:02

    如何調(diào)試Zynq UltraScale+ MPSoC VCU DDR控制器

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?
    發(fā)表于 01-22 06:29

    ZYNQ Ultrascale+ MPSOC FPGA教程

    ZYNQ Ultrascale+ MPSOC FPGA教程
    發(fā)表于 02-02 07:53

    Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞

    本文試圖搞清楚在 Xilinx 基于 ARM 的 Zynq-7000、Zynq UltraScale+ MPSoCZynq
    發(fā)表于 06-28 15:53 ?2649次閱讀

    Zynq UltraScale+ MPSoC的發(fā)售消息

    Zynq?UltraScale+?MPSoC,現(xiàn)已開始發(fā)售。視頻向您重點(diǎn)介紹了Xilinx UltraScale +產(chǎn)品組合的第一位成員
    的頭像 發(fā)表于 11-27 06:47 ?3534次閱讀

    ZYNQ Ultrascale+ MPSOC FPGA教程】第十五章 HDMI字符顯示實驗

    HDMI輸出實驗中講解了HDMI顯示原理和顯示方式,本實驗介紹如何使用
    發(fā)表于 01-28 06:22 ?14次下載
    【<b class='flag-5'>ZYNQ</b> <b class='flag-5'>Ultrascale+</b> <b class='flag-5'>MPSOC</b> <b class='flag-5'>FPGA</b>教程】<b class='flag-5'>第十五章</b> <b class='flag-5'>HDMI</b><b class='flag-5'>字符</b><b class='flag-5'>顯示</b><b class='flag-5'>實驗</b>

    如何調(diào)試 Zynq UltraScale+ MPSoC VCU DDR 控制器?

    Zynq UltraScale+ MPSoC VCU DDR 控制器是一款專用 DDR 控制器,只支持在 Zynq UltraScale+
    發(fā)表于 02-23 06:00 ?15次下載
    如何調(diào)試 <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b> VCU DDR 控制器?

    【正點(diǎn)原子FPGA連載】第二十五章HDMI方塊移動實驗 -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1

    【正點(diǎn)原子FPGA連載】第二十五章HDMI方塊移動實驗 -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1
    發(fā)表于 11-24 14:36 ?13次下載
    【正點(diǎn)原子<b class='flag-5'>FPGA</b>連載】第二<b class='flag-5'>十五章</b><b class='flag-5'>HDMI</b>方塊移動<b class='flag-5'>實驗</b> -摘自【正點(diǎn)原子】新起點(diǎn)之<b class='flag-5'>FPGA</b>開發(fā)指南_V2.1

    【正點(diǎn)原子FPGA連載】第十五章 窗口門狗(WWDG)實驗 -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1

    【正點(diǎn)原子FPGA連載】第十五章 窗口門狗(WWDG)實驗 -摘自【正點(diǎn)原子】新起點(diǎn)之FPGA開發(fā)指南_V2.1
    發(fā)表于 12-05 11:21 ?12次下載
    【正點(diǎn)原子<b class='flag-5'>FPGA</b>連載】<b class='flag-5'>第十五章</b> 窗口門狗(WWDG)<b class='flag-5'>實驗</b> -摘自【正點(diǎn)原子】新起點(diǎn)之<b class='flag-5'>FPGA</b>開發(fā)指南_V2.1

    米爾電子zynq ultrascale+ mpsoc底板外設(shè)資源清單分享

    米爾電子推出的國內(nèi)首款zynq ultrascale+ mpsoc平臺核心板(及開發(fā)板):MYC-CZU3EG吸引了人工智能、工業(yè)控制、嵌入式視覺、ADAS、算法加速、云計算、有線/無線通信等
    發(fā)表于 01-07 15:20 ?3次下載
    米爾電子<b class='flag-5'>zynq</b> <b class='flag-5'>ultrascale+</b> <b class='flag-5'>mpsoc</b>底板外設(shè)資源清單分享

    ZYNQ Ultrascale+ MPSoC系列FPGA芯片設(shè)計

    基于 Xilinx 公司ZYNQ Ultrascale+ MPSoC系列 FPGA 芯片設(shè)計,應(yīng)用于工廠自動化、機(jī)器視覺、工業(yè)質(zhì)檢等工業(yè)領(lǐng)域
    發(fā)表于 11-02 14:35 ?1529次閱讀

    Zynq UltraScale+ MPSoC中的隔離方法

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC中的隔離方法.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 17:11 ?1次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>中的隔離方法

    Zynq UltraScale+ MPSoC的隔離設(shè)計示例

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC的隔離設(shè)計示例.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 11:28 ?3次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>的隔離設(shè)計示例

    Zynq UltraScale+ MPSoC驗證數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《Zynq UltraScale+ MPSoC驗證數(shù)據(jù)手冊.pdf》資料免費(fèi)下載
    發(fā)表于 09-15 10:13 ?0次下載
    <b class='flag-5'>Zynq</b> <b class='flag-5'>UltraScale+</b> <b class='flag-5'>MPSoC</b>驗證數(shù)據(jù)手冊