FPGA 时序问题--时钟反向。

2019-07-15 22:13发布

本帖最后由 lhchen922 于 2016-11-15 18:13 编辑

请教下,在网上看见下面的一段话,其中“加了两次 反向”怎么理解,,怎么表示法?是连续assign吗??可是连续assign 好像是被优化了。谢谢大家。


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

[html] view plain copy
在CODE上查看代码片派生到我的代码片

    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移向能够解决问题。

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
李卿沅
1楼-- · 2019-07-15 23:53
我也在纠结这个问题
asuyyy
2楼-- · 2019-07-16 04:07
  assign IDCK_OUT = ~clk_out_test1;  
  assign clk_out_test = ~clk_rd;  
  assign clk_out_test1 = ~clk_out_test;  
其中clk_rd应该是默认的时钟信号,
取反一次后叫clk_out_test
后面再加2次取反
分别是clk_out_test1和IDCK_OUT
qijiemily
3楼-- · 2019-07-16 07:46
 精彩回答 2  元偷偷看……
mayaohui1994
4楼-- · 2019-07-16 09:54
qijiemily 发表于 2017-11-2 15:17
这个直接做OFFSET OUT约束没有用?

OFFSET应该是可以的
bluejort
5楼-- · 2019-07-16 13:21
时钟频率高了是要做时序约束的,应该约束输出时钟相位。取反两次是对时钟进行了一定延迟,满足了后端时序

一周热门 更多>