RM新时代网站-首页

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用FPGA實現(xiàn)字符顯示

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2022-02-09 10:29 ? 次閱讀

作者:ALINX

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

適用于板卡型號:

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

實驗Vivado工程為“hdmi_char”。

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

1. 實驗原理

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

2.程序設計

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

pIYBAGAJbwiABA5_AACDMYqn5qM256.png

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

o4YBAGAJb4WAPkl1AAA_z3eNx_A049.png

timing_gen_xy模塊端口

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

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

pIYBAGAJb82AGcrLAAACb-XdSDs808.png

雙擊.exe文件打開工具

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

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

pIYBAGAJcJGALjJZAAACd2FyqGw689.png

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

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

o4YBAGAJcQ6AAHDyAAARYbJQeyc512.png

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

在PortA Options欄中設置如下:

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

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

o4YBAGAJchGAOBWMAAAUSFeMZK4808.png

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

pIYBAGAJck-AHimWAAAaMQ9ftS8526.png

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

pIYBAGAJco-Aa47nAAAMJLGS_rE191.png

pIYBAGAJcs2AYy0WAAA3dOkFW5Y690.png

osd_display模塊端口

3.實驗現(xiàn)象

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

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

o4YBAGAJc0qAbiR9AAAKp6OGA3E495.png

審核編輯:何安

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

    關注

    1629

    文章

    21729

    瀏覽量

    602986
  • HDMI
    +關注

    關注

    32

    文章

    1694

    瀏覽量

    151863
收藏 人收藏

    評論

    相關推薦

    FPGA驅動AD芯片之實現(xiàn)與芯片通信

    概述:?利用FPGA實現(xiàn)AD芯片的時序,進一步實現(xiàn)與AD芯片數(shù)據(jù)的交互,主要熟悉FPGA對時序圖的實現(xiàn),掌握時序圖轉換Verilog硬件描述
    的頭像 發(fā)表于 12-17 15:27 ?146次閱讀
    <b class='flag-5'>FPGA</b>驅動AD芯片之<b class='flag-5'>實現(xiàn)</b>與芯片通信

    基于FPGA實現(xiàn)數(shù)碼管顯示

    本文介紹數(shù)碼管顯示譯碼基本工作原理及Verilog HDL驅動代碼編寫,進一步熟練掌握FPGA入門基礎知識。
    的頭像 發(fā)表于 10-24 14:44 ?839次閱讀
    基于<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>數(shù)碼管<b class='flag-5'>顯示</b>

    基于FPGA的LCD1602液晶顯示模塊驅動設計

    本文通過以LCD1602液晶顯示模塊為基礎,介紹FPGA驅動LCD1602原理,詳細介紹硬件原理圖設計及FPGA驅動LCD1602軟件設計,通過萬年歷功能綜合實現(xiàn)時鐘功能、LCD160
    的頭像 發(fā)表于 10-24 14:42 ?1095次閱讀
    基于<b class='flag-5'>FPGA</b>的LCD1602液晶<b class='flag-5'>顯示</b>模塊驅動設計

    Labview 字符串 不常用功能:快捷才當將字符串設置為反斜杠(\'\\\')代碼顯示,用于儀器通信

    右鍵單擊字符串常量、顯示控件或輸入控件,從快捷菜單中選擇 **\'\'代碼顯示** ,則LabVIEW將反斜杠()后緊接的字符視作不可顯示
    發(fā)表于 09-06 14:01

    labview字符串如何轉換為16進制字符

    在LabVIEW中,將字符串轉換為16進制字符串是一個常見的需求,尤其是在處理數(shù)據(jù)通信和硬件接口時。LabVIEW提供了多種方法來實現(xiàn)這一轉換,包括使用內置函數(shù)、編寫VI(Virtual
    的頭像 發(fā)表于 09-04 15:54 ?2296次閱讀

    labview中如何實現(xiàn)字符串換行

    1. 字符串換行的基本概念 在LabVIEW中,字符串換行通常指的是在字符串中插入換行符,使得字符串在顯示或輸出時能夠自動換行。這在創(chuàng)建用戶
    的頭像 發(fā)表于 09-04 15:47 ?1614次閱讀

    labview中如何實現(xiàn)字符串選擇輸出

    在LabVIEW中實現(xiàn)字符串選擇輸出是一項常見的任務,它涉及到字符串處理、條件判斷和用戶界面設計等多個方面。由于LabVIEW是一種圖形化編程語言,其編程方式與傳統(tǒng)的文本編程語言有所不同,因此
    的頭像 發(fā)表于 09-04 15:44 ?891次閱讀

    labview字符串的四種表示各有什么特點

    字符串控件(String Control) 字符串控件是LabVIEW中用于顯示和編輯字符串的圖形界面元素。它允許用戶在前面板(Front Panel)上輸入
    的頭像 發(fā)表于 09-04 15:40 ?533次閱讀

    基于FPGA的圖像采集與顯示系統(tǒng)設計

    源和固有的并行處理能力,在數(shù)字信號處理、硬件加速、汽車電子等領域得到了廣泛應用。在圖像采集與顯示系統(tǒng)中,FPGA能夠實現(xiàn)高速、并行的數(shù)據(jù)處理,顯著提高系統(tǒng)的實時性和性能。本文設計了一個基于FP
    的頭像 發(fā)表于 07-17 10:58 ?1837次閱讀

    執(zhí)行menuconfig后顯示的全是字符頁面,怎么解決?

    請問一下,為什么我執(zhí)行完idf.py menuconfig后,顯示的頁面上全都是字符呢? 我的Windows11操作系統(tǒng),在ESP-IDF 5.2 PowerShell頁面下。
    發(fā)表于 06-11 08:47

    FPGA實現(xiàn)的“俄羅斯方塊”游戲系統(tǒng)設計

    本項目主要在FPGA實現(xiàn)了一個經(jīng)典小游戲“俄羅斯方塊”。本項目基本解決方案是,使用Xilinx Zynq系列開發(fā)板 ZedBoard 作為平臺,實現(xiàn)主控模塊,通過VGA接口來控制屏幕進行顯示
    發(fā)表于 03-28 10:41 ?1971次閱讀
    <b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>的“俄羅斯方塊”游戲系統(tǒng)設計

    在3伏電壓下使用字符LCD模塊

    LCD模塊與七段LED顯示屏相比,LCD模塊比LED顯示屏可以顯示更多的字符。大多數(shù) LCD 模塊的功耗小于 1 mA,因此也適用于電池供電的設備。
    發(fā)表于 02-02 16:56 ?505次閱讀
    在3伏電壓下使用<b class='flag-5'>字符</b>LCD模塊

    FPGA實現(xiàn)原理

    FPGA(Field-Programmable Gate Array,現(xiàn)場可編程門陣列)是一種特殊的集成電路,其內部結構由大量的可配置邏輯塊和互連線組成。FPGA可以通過編程來實現(xiàn)各種數(shù)字系統(tǒng)功能
    發(fā)表于 01-26 10:03

    IIC總線的FPGA實現(xiàn)說明

    DE2_TV中,有關于寄存器的配置的部分,采用的方法是通過IIC的功能,這里對IIC總線的FPGA實現(xiàn)做個說明。
    的頭像 發(fā)表于 01-05 10:16 ?1052次閱讀
    IIC總線的<b class='flag-5'>FPGA</b><b class='flag-5'>實現(xiàn)</b>說明

    如何能夠實現(xiàn)通用FPGA問題?

    FPGA 是一種偽通用計算加速器,與 GPGPU(通用 GPU)類似,FPGA 可以很好地卸載特定類型的計算。從編程角度上講,FPGA 比 CPU 更難,但從工作負載角度上講 FPGA
    發(fā)表于 12-29 10:29 ?459次閱讀
    RM新时代网站-首页