当DRC和STA没有问题时,后仿真出了violation应该如何解决

后仿真出了问题如何解决

在ICC布局布线之后是PT,STA分析,当这些都显示ok时,我们还剩下最后一步工作--- 就是后仿真。

一般来讲,是基本不会有问题的,所以当出现问题的时候,我就懵了。师傅离职之前没有遇到过这情况,我该咋办呢?

好吧,经过我的摸索后,我如今已经知道了,写下来作为笔记和知识分享。

当出现violation集中报错在一个或几个寄存器时,不要惊慌

以一个corner下面的tb结果为例,

报出来的问题一般以如下图的形式给出:

 

 

   根据类似上图的violation,我们能得到那些信息能呢?

  1. 首先看到有setup违规
  2. 出现违规的时间是815xxxxxPS和81569xxxxPS
  3. 寄存器D端到CK端发生SETUP时间不满足问题
  4. 打开verilog.v的文件对应观察6943行(内容如下图,但是没有信息量,只能说是source到这个文件里)

 

 

 

    5.非常重要的一点:出现问题的寄存器模块和名称i_mipi/ssc1_reg

l  对于所有信息已经分析完毕,下一步我们打开Debussy&。查看波形。

关于波形怎么debug问题。下面这些都是自己摸索的。希望有大佬或者好心人指点更好的功法吧。

  1. 打开icc_layout的post_layout.v文件,并找到ssc1_reg(即出错的寄存器名)。可以看到使用的器件是DFSM2。把对应的相关信号加入nWave中查看,即SYNOPSYS_**93,sdata_buf,sclk_buf。

 

 

 

    2.观察时钟CK端和D输入端的时间差。仅有11ps

 

 

     3.方法一:

          a)      在Foundry提供的Databook器件手册里找到关于DFM2的stdcell说明,红色是我想要的部分,显示了D到CK需要0.0791ns的时间。(至于是Rise 还是Fall需要自行到模块中去查找)。所以判断需要加入buf去增加setup时间

 

 未完待续

 

posted @ 2019-12-27 18:42  AnnaLan  阅读(2287)  评论(2编辑  收藏  举报