微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微电子和IC设计 > IC后端设计交流 > 求助!encounter进行P&R后,clkgate holdtime 不满足

求助!encounter进行P&R后,clkgate holdtime 不满足

时间:10-02 整理:3721RD 点击:

利用encounter进行P&R后,clkgate holdtime 不满足,如下图:



在encounter中进行时序分析,时序报告如下:






其中clk_i为系统主时钟,周期为80.由上图可以看出Arrival time为40,推测可能的原因是代码中采用了时钟的下降沿作为触发条件,附代码如下:

  1. always@(negedge clk_bus_i or negedge rst_n_i)
  2. begin
  3. if(!rst_n_i)
  4. cnt_odd_div_neg <= 3'b0;
  5. else
  6. cnt_odd_div_neg <= cnt_en?(cnt_odd_div_neg==bdry-1'b1)?3'b0 : cnt_odd_div_neg+1'b1 : 3'b0;
  7. end

复制代码


  1. always@(negedge clk_bus_i or negedge rst_n_i)
  2. begin
  3. if(!rst_n_i)
  4. clk_neg_div <= 1'b0;
  5. else
  6. clk_neg_div <= cnt_en?((cnt_odd_div_neg==(bdry-1'b1)>>1) || (~|cnt_odd_div_neg))?~clk_neg_div : clk_neg_div : 1'b0;
  7. end

复制代码



其中,cnt_en 在时钟上升沿产生的,clk_bus_i 直接与系统主时钟 clk_i 连接。这两段代码中由于需要必须要用 clk_bus_i的下降沿触发。
模块中其他语句用clk_bus_i的上升沿触发。
encounter进行PR后进行时序分析,仅剩两条clkgate的holdtime不满足。
在DC综合的约束中添加伪路径也不能解决此问题,百思不得其解,请各位高手帮助!

时钟路径的到达时间怎么是40ns呢?这个问题我也遇到过,门控时钟不大会用啊,我最后只好把门控去掉了,希望在此能有高人出来讲一下,俺也跟着学习学习!

建立小编把相关约束拉出来看看,这么大的hold违例,即使手工插buf也不太容易,我猜会不会是你的约束么做好吧。

clock gating 一般是tree固有的skew造成了。 控制一下gating 的位置吧

这是代码设计的问题,上升沿和下降沿混用了导致的半个周期的违例~

PR之后出现了许多hold违例,通过改约束基本都解决了,就剩下这两条了。试过许多改约束的方法,但是都无效。难道clkgate路径需要在约束中进行特别的设置吗,我觉得差半个时钟周期有点不科学啊

控制gating的位置是指修改代码吗?本人较菜,请多指点!

我也分析过代码,没发现有什么问题。请教一下,混用上升沿和下降沿会引起什么问题呢?

AOI211X2M要使用上升沿才行

encounter里面mode setup里面,可以设置不考虑clkgate的。
另外我觉得应该是false path 没设置吧。那个aoi211x2m 其中一个端口来自clki,另外一个端口来自前面的dffrqx2m,这个是需要constraint的么?

这个design频率不会是80ns吧?

小编,你这个问题后来是怎么解决的啊,我也碰到了一样的问题

约束肯定有问题啊

"encounter里面mode setup里面,可以设置不考虑clkgate的", are you sure?为什么我不可以。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top