在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6369|回复: 7

[求助] 由于path很长最后导致design的reg2regTNS以及violation path变差的情况,如何fix tns

[复制链接]
发表于 2014-5-9 23:22:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我有一个design的TNS很差,我发现这些violaiton path多比较长.   如图1所示:   highlights了8条paths
  
   图2是其中最worst path
  

最worst path

最worst path

>>>>>>>>>>>before ecoroute>>>>>>>>>>>>>>



##############before ecoroute###########################
------------------------------------------------------------
          timeDesign Summary                             
------------------------------------------------------------

+--------------------+---------+---------+---------+---------+---------+---------+
|     Setup mode     |   all   | reg2reg | in2reg  | reg2out | in2out  | clkgate |
+--------------------+---------+---------+---------+---------+---------+---------+
|           WNS (ns):| -0.527  | -0.527 |  0.430  |   N/A   |   N/A   | -0.449  |
|           TNS (ns):| -2620.9 | -2576.3 |  0.000  |   N/A   |   N/A   | -44.555 |
|    Violating Paths:|  12906  |  12629 |    0    |   N/A   |   N/A   |   277   |
|          All Paths:|1.95e+05 |1.85e+05 |  3213   |   N/A   |   N/A   |  7957   |
+--------------------+---------+---------+---------+---------+---------+---------+

+----------------+-------------------------------+------------------+
|                |              Real             |       Total      |
|    DRVs        +------------------+------------+------------------|
|                |  Nr nets(terms)  | Worst Vio  |  Nr nets(terms)  |
+----------------+------------------+------------+------------------+
|   max_cap      |      0 (0)       |   0.000    |    217 (217)     |
|   max_tran     |     22 (718)     |   -0.063   |   3702 (21833)   |
|   max_fanout   |      0 (0)       |     0      |      0 (0)       |
|   max_length   |      0 (0)       |     0      |      0 (0)       |
+----------------+------------------+------------+------------------+

>>>>>>>>>>
  Note:我为了降低这个path的长度,靠左move了path 的begin port的reg以及path经过的一些cells
下面是作为ecoroute之后的结果
>>>>>>>>>>>>>
##############after ecoroute###########################
------------------------------------------------------------
          timeDesign Summary
------------------------------------------------------------

+--------------------+---------+---------+---------+---------+---------+---------+---------+
|     Setup mode     |   all   | reg2reg | in2reg  | reg2out | in2out  | clkgate | default |
+--------------------+---------+---------+---------+---------+---------+---------+---------+
|           WNS (ns):| -1.276  | -1.276  |  0.377  |   N/A   |   N/A   | -0.692  |  0.000  |
|           TNS (ns):| -3508.8 | -3508.8 |  0.000  |   N/A   |   N/A   | -62.019 |  0.000  |
|    Violating Paths:|  13477  |  13477  |    0    |   N/A   |   N/A   |   303   |    0    |
|          All Paths:|1.95e+05 |1.93e+05 |  3266   |   N/A   |   N/A   |  7957   |    0    |
+--------------------+---------+---------+---------+---------+---------+---------+---------+

+----------------+-------------------------------+------------------+
|                |              Real             |       Total      |
|    DRVs        +------------------+------------+------------------|
|                |  Nr nets(terms)  | Worst Vio  |  Nr nets(terms)  |
+----------------+------------------+------------+------------------+
|   max_cap      |      2 (2)       |   -0.051   |    219 (219)     |
|   max_tran     |     23 (676)     |   -0.610   |   3686 (21764)   |
|   max_fanout   |      0 (0)       |     0      |      0 (0)       |
|   max_length   |      0 (0)       |     0      |      0 (0)       |
+----------------+------------------+------------+------------------+


>>>>>>>>>>>>>>>
我发现timing 变差了,是由于begin port的reg会形成一个loop,有net detour。
我也尝试move begin port and end port这些方法多失效了。
所以我对于这类path too long的violation感到非常困惑,不知道如何去fix.
请大家帮忙分析一下,谢谢!


 楼主| 发表于 2014-5-9 23:23:17 | 显示全部楼层
如图1所示:

8paths

8paths
 楼主| 发表于 2014-5-9 23:25:10 | 显示全部楼层
不好意思,上传图1失败,我又重新上传了!
谢谢!大家!
发表于 2014-5-11 01:50:42 | 显示全部楼层
对encounter的timing report不是很熟,但从图上可以很明显看出worst transition 更差了,你可以看看是不是你动过的那条path的cell之间的距离被你拉大了。然后导致net delay和celldelay变大。不知道你说的“path too long” 指的是path上的逻辑门很长还是layout里cell之间的距离长。你可以先检查一下sdc,看看constraint是不是合理的,sdc没问题的话先分析data path,比如看看是否可以将一串小buffer或inverter换成一个大buffer 有没有transition问题导致delay很大,sizeup cell等等。data path实在修不下去的时候可以考虑useful skew。我一般也做clk 的design,所以我会先看clk再看data,clk调齐再去修timing。有的大公司修timing 的时候clk是不能动的。
发表于 2014-5-11 01:55:13 | 显示全部楼层
不过lz貌似还没到最后修timing阶段,这样你前期place阶段可以试着多加点margin,如把feq提高点或uncertainty加大点,还可以设几个path group。
 楼主| 发表于 2014-5-12 17:05:43 | 显示全部楼层
hi ,vien_gao
多谢你的热心回复!
1) path too long” 指的是path上的逻辑门很长还是layout里cell之间的距离长?
a) 我这里说path很长是指我path 的begin reg 和end reg的cell距离很长
2)sdc,看看constraint是不是合理的?
b)clock以及sdc的constraint不能够修改的
c)我也重新定义了几个pathgroup,但是最后的TNS还是很差。
不知道还有什么 方法可以fix TNS。

谢谢!
发表于 2014-5-12 20:02:50 | 显示全部楼层
是startpoint和endpoint之间物理距离长吗?你在place优化的时候有加max_length和max_transition之类的constraint吗?没有的话加上试试,但max_length不要给太小,不然工具会加很多buffer进去,你可以估计一下一个x16的buffer 能推多远。还有就是把频率调高点或者uncertainty加大点,报timing的时候再改回来。
 楼主| 发表于 2014-5-12 22:07:01 | 显示全部楼层
hi vien_gao
  多谢你的热心回复,是两个cells的物理距离很远,在place阶段加了max_length 和max_transition的constraint了。
  我再调整period 和uncertainly 试试!
  谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-11-21 21:26 , Processed in 0.024877 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表