FPGA 时序问题

时间:2023-03-09 03:14:18
FPGA 时序问题

近期 做一个项目------4个 1080p(1920 x 1080) 合成 一个 4K(3840 x 2160,297M)的接口板。当 1080p 进去, 1080p出来的时候,视频正常 播放出来。 但是当 1080p进, 4k出来的时候,视频图像上会有水波纹。当时就猜想是 FPGA 送给 下游器件SII9136的 时序不能满足。于是把输出的时钟反向有了一定的效果, 水波纹少了非常多。后来用示波器量了下,发现时序还缺少一些。然后又 加了两次 反向。 Oh, God. 成功了! 撒花。。。。。。

 assign IDCK_OUT = ~clk_out_test1;
assign clk_out_test = ~clk_rd;
assign clk_out_test1 = ~clk_out_test;
//assign D_OUT[35: 28] = // always @(posedge clk_rd or negedge global_reset_n)
begin
if (~global_reset_n)
begin
D_OUT[31: 0] <= 32'b0;
// D_OUT[25: 0] <= 26'b0;
end
else
begin
D_OUT[31: 24] <= dout_c[7: 0]; // DD35 ------DD28 D_OUT[19: 12] <= dout_c[15: 8]; /// DD23 -----DD16
// D_OUT[26:24] <= 3'b0;
// D_OUT[15: 0] <= 16'b0;
// D_OUT[34: 27] <= dout_c[7: 0];
// D_OUT[23: 16] <= dout_c[15: 8];
end
end

总结:  一般说来,当FPGA->下游器件的时序不够的时候, 反向或者 PLL移向可以解决这个问题。