HDMI RGB_TO_DVI模块

一、模块简介

在HDMI视频数据传输过程中,将24位的RGB888格式的图像,在编码和并串转换后,以TMDS数据输出至HDMI。HDMI_Encoder模块负责对数据进行编码,HDMI_Serializer模块对编码后的数据进行并串转换,最后通过OBUFDS转化成TMDS差分信号传输。

二、逻辑代码

module HDMI_RGBtoDVI(input           wire                [00:00]             i_pixel_clk     ,     //像素数据输入时钟input           wire                [00:00]             i_pixel_5_clk   ,     //像素数据输出shizhonginput         wire                [00:00]             i_rst_n         ,     //复位时钟,低有效 input           wire                [23:00]             i_pixel_data    ,     //像素输入数据input         wire                [00:00]             i_hsync         ,     //行同步数据input          wire                [00:00]             i_vsync         ,     //场同步数据input          wire                [00:00]             i_de            ,     //像素数据有效信号output          wire                [02:00]             o_tmds_data_p   ,     //TMDS数据信号output          wire                [02:00]             o_tmds_data_n   ,output         wire                [00:00]             o_tmds_clk_p    ,     //TMDS时钟信号output          wire                [00:00]             o_tmds_clk_n    ,     output            wire                [00:00]             o_tmds_en             //TMDS使能信号);reg           [00:00]             rst_temp1           ;reg            [00:00]             rst_temp2           ;   wire            [00:00]             sys_rst             ;   //异步复位信号,高有效wire         [00:00]             tmds_data_r         ;wire           [00:00]             tmds_data_g         ;wire           [00:00]             tmds_data_b         ;wire           [00:00]             tmds_clk            ;wire           [09:00]             tmds_red            ;wire           [09:00]             tmds_green          ;wire           [09:00]             tmds_blue           ;wire           [09:00]             tmds_clk_bit        ;assign o_tmds_en = 1'b1;assign   tmds_clk_bit = 10'b11_1110_0000;  //同步信号,异步复位,高有效assign    sys_rst = rst_temp2;always@(posedge i_pixel_clk or negedge i_rst_n)beginif(!i_rst_n)beginrst_temp1 <= 1'b1;rst_temp2 <= 1'b1;endelse beginrst_temp1 <= 1'b0;rst_temp2 <= rst_temp1;endendOBUFDS #(.IOSTANDARD("TMDS33"),          // Specify the output I/O standard.SLEW("SLOW")                   // Specify the output slew rate)OBUFDS_inst_r (.O(o_tmds_data_p[2]),            // Diff_p output (connect directly to top-level port).OB(o_tmds_data_n[2]),         // Diff_n output (connect directly to top-level port).I(tmds_data_r)                // Buffer input);   OBUFDS #(.IOSTANDARD("TMDS33"),           // Specify the output I/O standard.SLEW("SLOW")                   // Specify the output slew rate)OBUFDS_inst_g (.O(o_tmds_data_p[1]),            // Diff_p output (connect directly to top-level port).OB(o_tmds_data_n[1]),         // Diff_n output (connect directly to top-level port).I(tmds_data_g)                // Buffer input);       OBUFDS #(.IOSTANDARD("TMDS33"),           // Specify the output I/O standard.SLEW("SLOW")                   // Specify the output slew rate)OBUFDS_inst_b (.O(o_tmds_data_p[0]),            // Diff_p output (connect directly to top-level port).OB(o_tmds_data_n[0]),         // Diff_n output (connect directly to top-level port).I(tmds_data_b)                // Buffer input);       OBUFDS #(.IOSTANDARD("TMDS33"),           // Specify the output I/O standard.SLEW("SLOW")                   // Specify the output slew rate)OBUFDS_inst_clk (.O(o_tmds_clk_p),              // Diff_p output (connect directly to top-level port).OB(o_tmds_clk_n),             // Diff_n output (connect directly to top-level port).I(tmds_clk)                   // Buffer input);   HDMI_Encoder HDMI_Encoder_b(.i_pixel_clk   (i_pixel_clk        )  ,             .i_rst         (sys_rst            )  ,             .i_data        (i_pixel_data[07:00])  ,             .i_de          (i_de               )  ,             .i_ctrl_1      (i_hsync            )  ,             .i_ctrl_2      (i_vsync            )  ,             .o_data        (tmds_blue          )                );   HDMI_Encoder HDMI_Encoder_g(.i_pixel_clk   (i_pixel_clk        )  ,             .i_rst         (sys_rst            )  ,             .i_data        (i_pixel_data[15:08])  ,             .i_de          (i_de               )  ,             .i_ctrl_1      (1'b0               )  ,             .i_ctrl_2      (1'b0               )  ,             .o_data        (tmds_green         )                );       HDMI_Encoder HDMI_Encoder_r(.i_pixel_clk   (i_pixel_clk        )  ,             .i_rst         (sys_rst            )  ,             .i_data        (i_pixel_data[23:16])  ,             .i_de          (i_de               )  ,             .i_ctrl_1      (1'b0               )  ,             .i_ctrl_2      (1'b0               )  ,             .o_data        (tmds_red           )                );    HDMI_Serializer HDMI_Serializer_r(.i_pixel_clk     (i_pixel_clk  ) ,       .i_pixel_5_clk   (i_pixel_5_clk) ,       .i_rst           (sys_rst      ) ,       .i_pixel_data    (tmds_red     ) ,       .o_pixel_data    (tmds_data_r  )         );   HDMI_Serializer HDMI_Serializer_g(.i_pixel_clk     (i_pixel_clk  ) ,       .i_pixel_5_clk   (i_pixel_5_clk) ,       .i_rst           (sys_rst      ) ,       .i_pixel_data    (tmds_green   ) ,       .o_pixel_data    (tmds_data_g  )         );   HDMI_Serializer HDMI_Serializer_b(.i_pixel_clk     (i_pixel_clk  ) ,       .i_pixel_5_clk   (i_pixel_5_clk) ,       .i_rst           (sys_rst      ) ,       .i_pixel_data    (tmds_blue    ) ,       .o_pixel_data    (tmds_data_b  )         );       HDMI_Serializer HDMI_Serializer_clk(.i_pixel_clk     (i_pixel_clk  ) ,       .i_pixel_5_clk   (i_pixel_5_clk) ,       .i_rst           (sys_rst      ) ,       .i_pixel_data    (tmds_clk_bit ) ,       .o_pixel_data    (tmds_clk     )         );
endmodule

HDMI RGB_TO_DVI模块相关推荐

  1. FPGA极速入门(持续更新)

    第一章:VERILOG速览 关于参数与符号: 1.1 数值表示:以8'b10_110_110为例,8指的是位宽,b指的是数据类型为2进制,可以用下划线或者空格作数值分隔,不影响数值大小.此外,字符串类 ...

  2. FPGA设计——CMOS摄像与HDMI显示(DVP版)

    1. 概述 本设计采用FPGA技术,将CMOS摄像头(DVP接口)的视频数据经过采集.存储.处理.帧率转换,最终通过HDMI接口显示在电视屏幕上. 2. 硬件系统框图 CMOS采用分辨率为1080p的 ...

  3. rk3566 HDMI 热插拔HDMI显示无信号

    环境: rk3566 android11 kernel 内核版本,4.19.172 问题描述: hdmi热插拔相关的问题,当插入HDMI 系统开机启动,并正常运行,HDMI有显示且显示正常,进行热插拔 ...

  4. MS2109高清采集卡 HDMI转USB2.0免驱,支持MJPEG YUV数据格式 demo原理图介绍

    MS2109是一款高清视频采集芯片,内部集成USB2.0控制器和数据收发模块.HDMI RX模块和音视频处理模块.MS2109可以将HDMI 接口输出的音视频信号通过USB 接口传送到PC.智能手机或 ...

  5. MS2109/HDMI转USB2.0高清视频采集

    一.基本介绍 MS2109是一款高清视频采集芯片,内部集成USB2.0控制器(今年会更新推出USB3.0)和数据收发模块.HDMI RX模块和音视频处理模块.MS2109可以将HDMI接口输出的音视频 ...

  6. 【正点原子FPGA连载】第四十四章MT9V034摄像头HDMI显示实验 -摘自【正点原子】新起点之FPGA开发指南_V2.1

    1)实验平台:正点原子新起点V2开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id=609758951113 2)全套实验源码+手册+视频下载地址:ht ...

  7. USB 高清视频采集芯片HDMI转USB2.0

    MS2109 是一款高清视频采集芯片,内部集成了 USB2.0 控制器和数据收发模块.HDMI RX模块,音视频处理模块,MS2109 可以将 HDMI 接口输出的音视频信号,通过 USB 接口传送 ...

  8. HDMI转USB--------HDMI采集卡

    HDMI转USB--------HDMI采集卡 MS2109 是一款高清视频采集芯片,内部集成了 USB2.0 控制器和数据收发模块.HDMI RX模块,音视频处理模块,MS2109 可以将 HDMI ...

  9. FPGA虚拟三阶魔方(HDMI显示版)

    目录 ​编辑 一.设计概述 二.设计模块 1.三阶魔方建模 (1)魔方基本操作: (2)魔方建模: 2.魔方转动控制: (1)控制概述: (2)按键消抖: (3)魔方控制: 3.HDMI显示模块: ( ...

最新文章

  1. [BZOJ1857][Scoi2010]传送带
  2. socket.io的基本使用
  3. 将新更新从原始GitHub存储库中提取到派生的GitHub存储库中
  4. python 语言-Python的语言特点
  5. 数据分析_SQL数据分析--旅游数据分析可视化实操
  6. linux关机_Linux中shutdown,halt,poweroff,init 0区别
  7. php 的cookie设置时间,php cookie时间设置的方法
  8. 超声波的四个特性_超声波传感器,超声波的特性
  9. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第2节 线程实现方式_11_Thread类的常用方法_sleep...
  10. AD19---彻底解决原理图转PCB时,出现failed to add class member及Unknown Pin的问题
  11. Lasergene DNASTAR 8.1.3 特别版 Mac 专业的医学生物综合性序列分析工具
  12. APT、ET、RGI、ICQ
  13. PyQt5 打造GUI爬虫 小说下载器
  14. 【方向盘】使用IDEA的60+个快捷键分享给你,权为了提效(操作系统、终端篇)
  15. WinRM 服务无法创建以下 SPN: /WSMAN/DC.contoso.com; WSMAN/DC
  16. Python实战笔记-常用知识点
  17. 字节题--雀魂启动!
  18. Iphone攻与防-一
  19. Ubuntu 根目录结构
  20. 网络代理(Proxy)

热门文章

  1. webpack5 css打包压缩
  2. java项目编码设置
  3. Linux 下man 命令的使用
  4. 偶尔娱乐一下应该无妨?
  5. Web安全-ReDos正则表达式的拒绝服务攻击
  6. C#之基于winform窗体绘制简单图形
  7. python pip本身的安装路径
  8. 探索的动机: 爱因斯坦于1918年4月的讲话
  9. 华为手机语音通话时断时续原因
  10. 第四章css总结,第四章CSS层叠样式表分析.doc