视频信号vsync hsync dotclock 的关系

4 篇文章 0 订阅
1 篇文章 0 订阅



在图像里面的参数如图所示:
Dotclk = Htotal × Vtotal × framerate
Htotal = Hactive + Hsync + HfrontPorch + HbackPorch
Vtotal = Vactive + Vsync + VfrontPorch + VbackPorch

 
出现滚屏由以下现象:


何滚屏的原因都是输入输出的行数多或者少的问题:
行数多,下滚屏
行数少,上滚屏
 
因此要调整时序的参数实现时序要求,当然上升沿和下降沿采样可能影响图像的颜色。不管ISP还是后端的接收端都需要匹配起来来能够在后端显示。
Htotal = Hactive + Hsync + HfrontPorch + HbackPorch
 Vtotal = Vactive + Vsync + VfrontPorch + VbackPorch
在FPGA中,可以通过生成水平同步信号(HSYNC)和垂直同步信号(VSYNC)来实现对显示器扫描行和帧的同步。下面是一个简单的示例代码,用于生成HSYNCVSYNC信号: ```verilog module VGA_Sync ( input clk, output reg hsync, output reg vsync ); parameter H_SYNC_CYCLES = 96; // 水平同步脉冲周期 parameter H_BACK_PORCH = 48; // 水平后肩周期 parameter H_ACTIVE = 640; // 水平有效像素数 parameter H_FRONT_PORCH = 16; // 水平前肩周期 parameter V_SYNC_CYCLES = 2; // 垂直同步脉冲周期 parameter V_BACK_PORCH = 33; // 垂直后肩周期 parameter V_ACTIVE = 480; // 垂直有效行数 parameter V_FRONT_PORCH = 10; // 垂直前肩周期 reg [11:0] h_count; reg [10:0] v_count; always @(posedge clk) begin if (h_count == H_SYNC_CYCLES-1) begin h_count <= 0; hsync <= 1; end else if (h_count == H_SYNC_CYCLES+H_BACK_PORCH-1) begin h_count <= 0; hsync <= 0; end else if (h_count < H_SYNC_CYCLES+H_BACK_PORCH+H_ACTIVE+H_FRONT_PORCH-1) begin h_count <= h_count + 1; hsync <= 0; end else if (h_count == H_SYNC_CYCLES+H_BACK_PORCH+H_ACTIVE+H_FRONT_PORCH-1) begin h_count <= 0; v_count <= v_count + 1; hsync <= 0; end if (v_count == V_SYNC_CYCLES-1) begin v_count <= 0; vsync <= 1; end else if (v_count == V_SYNC_CYCLES+V_BACK_PORCH-1) begin v_count <= 0; vsync <= 0; end else if (v_count < V_SYNC_CYCLES+V_BACK_PORCH+V_ACTIVE+V_FRONT_PORCH-1) begin v_count <= v_count + 1; vsync <= 0; end else if (v_count == V_SYNC_CYCLES+V_BACK_PORCH+V_ACTIVE+V_FRONT_PORCH-1) begin v_count <= 0; vsync <= 0; end end endmodule ``` 上述代码中,我们定义了一个名为VGA_Sync的模块,它包含了时钟(clk)作为输入,并且输出了两个信号,hsyncvsync。 通过使用两个计数器,h_count和v_count,我们可以根据指定的参数来生成HSYNCVSYNC信号。 具体的生成过程如下: 1. 在水平同步信号的生成中,当h_count计数器达到H_SYNC_CYCLES-1时,表示水平同步脉冲的开始,此时hsync信号置为高电平。当h_count计数器达到H_SYNC_CYCLES+H_BACK_PORCH-1时,表示水平后肩周期结束,hsync信号置为低电平。在H_SYNC_CYCLES+H_BACK_PORCH到H_SYNC_CYCLES+H_BACK_PORCH+H_ACTIVE+H_FRONT_PORCH-1期间,表示水平有效像素周期,此时hsync信号保持低电平。 2. 在垂直同步信号的生成中,当v_count计数器达到V_SYNC_CYCLES-1时,表示垂直同步脉冲的开始,此时vsync信号置为高电平。当v_count计数器达到V_SYNC_CYCLES+V_BACK_PORCH-1时,表示垂直后肩周期结束,vsync信号置为低电平。在V_SYNC_CYCLES+V_BACK_PORCH到V_SYNC_CYCLES+V_BACK_PORCH+V_ACTIVE+V_FRONT_PORCH-1期间,表示垂直有效行周期,此时vsync信号保持低电平。 通过以上代码实现,我们可以在FPGA中生成HSYNCVSYNC信号,用于同步显示器的扫描行和帧。需要注意的是,示例代码中的参数值是根据常见的VGA显示器参数进行设置的,实际应用中需要根据具体的显示器规格进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值