moduleXO2_pattern (
input wire reset_n,
input wire clk_7425m,
output wire pclk,
output reg hsync,
output reg vsync,
outputwire de,
output wire [9:0] whdi_Y,
output wire [9:0] whdi_CbCr
);
亲测验证可用,所有的时序均是同步时序逻辑设计。
同步于时钟的上升沿,下降沿采数据。(PS:与SMPTE的标准有一点区别,因为我们的应用环境是上升沿改变数据,下降沿采样数据)
clk_7425m可以输入时钟有
PCLK |
|
Video format |
74.25Mhz |
|
1080p30 |
74.17MHz |
|
1080p29.97 |
148.5MHz |
|
1080p60 |
148.35MHz |
|
1080p59.96 |
设计的几个重点是同步时序逻辑的设计。
1.复位信号的同步设计
//复位信号同步处理
regreset_n_r1;
regreset_n_r2;
reglocal_reset_n1;
reglocal_reset_n;
reg[11:0] reset_count;
always@(negedgeclk_7425m) begin
reset_n_r1 <= reset_n;
reset_n_r2 <= reset_n_r1;
local_reset_n1 <= reset_n_r2 & reset_n_r1;
end
always@(negedgeclk_7425m or negedge local_reset_n1) begin
if (!local_reset_n1) begin
local_reset_n <= 1'b0;
reset_count <= 12'd0;
end
else begin
if (reset_count == 12'd2300)begin //2300
local_reset_n <= 1'b1;
reset_count <=12'd2300; //2300
end
else reset_count <= reset_count + 1'b1;
end
end
1.1 对复位信号的变化同步到时钟的上升沿,因为下降沿作为HVDE信号的触发沿,所以避免时钟的下降沿触发的时候复位信号在一个不稳定的状态,对计数器产生的不确定状态的影响。
1.2对复位后的第一行数据进行了舍弃处理,计数器的设计使得第一行的数据不是标准的2200个像素点,所以舍弃处理。