视频行场信号转 bt1120方案.

原创 2015年11月20日 11:03:42

        我们先看下下面的架构图,HDMI 4k@30hz,想进3536没有找到相应的芯片转为 bt1120.FPGA就充当了转化作用。 Xilinx最近出了一个Hdmi_ipcore.就想把他用起来。所以就有下面的架构图。我要做的工作其中之一就是要把 标准的视频VESA信号转为 BT1120出去.




现在我要做的就是把TTL(YCbCr 4:2:2)转为 BT1120给海思3531。我把思路说一下:

如上图所示,当收到第一个nvsync下降沿,然后 de 上升沿的时候,开始计数。这样就可以在相应的位置上填上相应的标志位和有效像素。当然需要用到状态机。


最后我附上,之前写的testbench关于1920 x 1080 @ 60hz.VESA标准。

`timescale  1 ps/1ps  
module tb;  



parameter H_D0 = 88;
parameter H_D1 = 44;
parameter H_D2 = 148;
parameter H_D = 1920;

parameter V_D0= 4;
parameter V_D1 = 5;
parameter V_D2 = 36;
parameter V_D = 1080;




reg                   clock_source;
reg                   clk_rd;
reg                   reset_n;
reg                   de_rd;
reg                   nhsync_rd;
reg                   nvsync_rd;
reg   [11:0]          hcounter_rd;
reg   [11:0]          vcounter_rd;
reg   [15:0]          data_input_a;
wire                de_rd_dly;
wire                nhsync_rd_dly;
wire                nvsync_rd_dly;
wire   [15:0]       data_input_a_dly;
wire   [15: 0]      bt_data_o;


always #3367  clk_rd = ~clk_rd;

initial 
  begin
    clk_rd = 0;
  	 clock_source =  0;
    reset_n = 0;
    #200000;
    reset_n = 1;
  end
 
//GSR GSR_INST (.GSR(1'b1));  
//PUR PUR_INST (.PUR(1'b1)); 


always @(posedge clk_rd or negedge reset_n)
begin
  if (~reset_n)
    hcounter_rd <= 12'b0;
  else if (hcounter_rd == (H_D + H_D0 + H_D1 + H_D2 - 1)) 
    hcounter_rd <= 12'b0;
  else
    hcounter_rd <= hcounter_rd + 12'h1;
end

always @(posedge clk_rd or negedge reset_n)
begin
  if (~reset_n)
    vcounter_rd <= 12'h0;
  else if ((vcounter_rd == (V_D + V_D0 + V_D1 + V_D2 - 1))  && (hcounter_rd == (H_D + H_D0 + H_D1 + H_D2 - 1)))
    vcounter_rd <= 12'h0;
  else if (hcounter_rd == (H_D + H_D0 + H_D1 + H_D2 - 1))  ////
    vcounter_rd <= vcounter_rd + 12'h1;
end

always @(posedge clk_rd)
begin
 if (((vcounter_rd >= V_D1 + V_D2 + V_D0) && (vcounter_rd < (V_D + V_D1 + V_D2 + V_D0))) && (hcounter_rd >= H_D0 + H_D1 + H_D2 -1) && (hcounter_rd < H_D0 + H_D1 + H_D2 + H_D - 1)) // 280 
    de_rd <= 1'b1;
  else
    de_rd <= 1'b0;
end



always @(posedge clk_rd or negedge reset_n)
begin
  if (~reset_n)
    data_input_a <= 16'h0;   // 1121    41
  else if (((vcounter_rd >= V_D1 + V_D2 + V_D0) && (vcounter_rd < (V_D + V_D1 + V_D2 + V_D0))) && (hcounter_rd >= H_D0 + H_D1 + H_D2 -1) && (hcounter_rd < H_D0 + H_D1 + H_D2 + H_D - 1)) // 280 
    data_input_a <=  data_input_a + 16'h2;    
end





always @(posedge clk_rd)
begin
 if ((hcounter_rd >= H_D0 -1) && (hcounter_rd < H_D0 + H_D1 - 1))
    nhsync_rd <= 1'b1;
  else
    nhsync_rd <= 1'b0;
end

always @(posedge clk_rd)
begin
if (((vcounter_rd < V_D0 + V_D1) && (vcounter_rd > V_D0)) || ((vcounter_rd == V_D0) && (hcounter_rd >= H_D0 -1)) || ((vcounter_rd == V_D0 + V_D1) && (hcounter_rd < H_D0 -1)))
    nvsync_rd <= 1'b1;
  else
    nvsync_rd <= 1'b0;
end

/*
bt_rx U_BT(
	      .reset_n(reset_n),
		  .clk(clk_rd),
	      .de_i(de_rd),
          .nhsync_i(nhsync_rd),
          .nvsync_i(nvsync_rd),
          .ycbcr_i(data_input_a),
		  .bt_data_o(bt_data_o)
				);
*/
endmodule






版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

BT1120接口及协议

因为项目上用到的是 海思3536的bt1120接口对接 FPGA。项目上用到的是 1920 x 1080,60Hz.逐隔.                         上图看到, BT1...

BT656/BT601/BT1120协议以及DM365/DM355/DM6467上使用的YUV颜色空间说明

ITU-R BT.601和ITU-RBT.656国际电信联盟(International Telecommunication Union)无线通信部门(ITU-R)制定的标准。严格来说,ITU-R...
  • maopig
  • maopig
  • 2012年01月03日 18:28
  • 17285

BT656跟BT1120和BT709有什么区别

601是SDTV的数据结构 656是SDTV的interface 709是HDTV的数据结构 1120是HDTV的interface 从数据结构上 都是Y Cb Cr 只是SDTV用4:2:2   ...
  • mao0514
  • mao0514
  • 2013年11月26日 09:03
  • 10453

live555分析之基础知识-BT1120协议

今天谈点我所理解的BT1120协议。 BT1120是高清晰度电视 (HDTV) 演播室信号数字接口,首先说一下接口标准里面的概念,然后谈谈自己的理解,写这个文章的目的就是解释给自己听的,所以都是一些白...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

嵌入式 BT656/BT601/BT1120协议差异小结

弟弟
  • skdkjxy
  • skdkjxy
  • 2014年05月06日 13:05
  • 11081

Bt656的数据格式

标准BT.656并行数据结构 BT.656并行接口除了传输4:2:2的YCbCr视频数据流外,还有行、列同步所用的控制信号。,一帧图像数据由一个625行、每行1 728字节的数据块组成。其中,23~3...
  • evilcode
  • evilcode
  • 2011年06月09日 17:55
  • 20159

1080P全高清@60fps的HDMI接收器方案

HDMI接收器规格:支持1080P@60fps。 方案:SIi9125 + Hi3517 这两者之间采用16 bit BT1120接口/Bayer 16位。 带宽计算: 1920*1080*6...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:视频行场信号转 bt1120方案.
举报原因:
原因补充:

(最多只允许输入30个字)