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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 13143|回复: 20

[讨论] 做时钟树平衡的目的是什么

[复制链接]
发表于 2011-7-29 17:46:28 | 显示全部楼层 |阅读模式

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

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

x
大家做时钟树平衡有什么原则吗?什么样的情况要做时钟树?

现在做一个时钟频率很慢的项目,越来越觉得在慢速系统中,做时钟树平衡没有什么意义。如果出现了hold违例,就让工具修嘛
发表于 2011-7-29 22:59:51 | 显示全部楼层
我觉得你说的有一定道理. 但也不全对.
在慢速设计中. skew的重要性明显下降.
但我认为, 时钟树除了 skew latency这些东西以外.
最最重要的是品质是: 强壮.
所谓强壮就是在任意corner下都能满足时序. 这点对提高良率的意义重大.

在考虑到工艺偏差, 模型偏差等因素后.
一种常用的让时钟树强壮的方式就是对称.

我用类似的cell, 类似的拓扑结构, 经过类似的级数到达每个register.
这样, 即使工艺偏差, 即使模型偏差.
我也更可能在不同的corner下保证时序可控. 也就是 "强壮".

其实, 不用delay cell 去CTS,  CTS时尽量用较少的buffer类型, 以及专门的CLK cell 等方法.
都或多或少的是为这一目的服务的.

以上是我的理解. 求指正.
发表于 2011-7-31 20:08:33 | 显示全部楼层
balance 该需要平衡的clock 主要是为了timing修复能简单些

如果latency差的太远,inter clock timing就会很差

balance好了,就很少了,

尤其是hold,就更明显了,
发表于 2012-4-24 16:52:17 | 显示全部楼层
学习啦!
发表于 2012-4-24 20:46:56 | 显示全部楼层
学习了!
发表于 2014-10-26 20:00:54 | 显示全部楼层
本帖最后由 shuanghx 于 2014-10-27 00:06 编辑

下面是我的一点理解,还请有PR经验的各位指正。
(其中一个观点是,CTS之后的优化,PR工具不会再动clock tree,除非ECO)

1、hold
在datapath上修hold,就只能一条一条插buffer,用更多的buffer。

在时钟树上修,可能在一个公共时钟节点插一个buffer,就可以同时修复好几条hold违例。但是动时钟树,只能ECO,要人
为去考虑在哪插buffer最划算。况且修一个寄存器的hold,还可能恶化前/后的寄存器hold slack。牵一发,动全身,这种
事情给计算机做比较合适。

所以,事先做好时钟树平衡,虽然在时钟树上的buffer要多些。但后面的hold违例要少些,小些。总的negative hold
slack少些,修复代价代价小些。

当然,如果不考虑代价多与少的差异,无论clock skew的大、小,hold总是可以修复的。

2、setup
对于快速设计,在理想时钟条件下的setup slack本来就不大。
时钟树上的偏差很容易将一个本来正的setup slack恶化成负的slack,
在data path上已经修不掉,只能在clock path上做文章,只能用ECO。
(例如帖子http://bbs.eetop.cn/thread-309533-1-1.html中提到的)
由于动时钟,会恶化前/后寄存器的setup slack,
所以ECO时钟树前,必须确认前/后寄存器的setup slack是充分的。
这都是人工的,违例一多就很麻烦,而且不一定能修复。

如果不做时钟树平衡,setup违例就可能很多,依靠ECO时钟树来修复是很麻烦的。
相反,如果事先做好时钟树平衡,就可以尽量降低clock skew 对setup slack的恶化,修复起来就容易得多。

3、CTS
由于clock tree牵一发,动全身的特性,所以CTS必须在route之前。好的CTS,更容易时序收敛。
发表于 2014-10-26 22:16:56 | 显示全部楼层




    正解,这么多答案就你说到点子上了
    其他答案都忽略了一个前提,时钟慢,timing容易满足
发表于 2014-10-26 23:47:53 | 显示全部楼层
本帖最后由 shuanghx 于 2014-10-27 21:41 编辑

回复 8# herrzhou

既然在慢时钟下timing容易满足,强壮不强壮的时钟树,setup违例都几乎不存在,hold违例都是可以修复的为什么还要优化clock skew来创造强壮的时钟树呢?

我认为跟修Hold的代价不同可能有点关系吧。从OCV的角度,skew小的clock tree因为考虑OCV而增加的hold修复代价要小于skew大的clock tree。
即使不考虑OCV,也会是这样的,正如前面所说,在clock path上修hold,比在data path上修hold会更划算。


所以,创造一个skew小的clock tree,虽然看似在clock tree上多用了buffer,但是会减少后面的hold违例。
这种减少应该会抵消clock tree上为获得小skew而增加的buffer。


发表于 2014-10-26 23:55:13 | 显示全部楼层
修Hold插一堆Delay Cell,又浪费面积又浪费电,如果你觉得这不算什么代价那就不算吧...
发表于 2014-10-27 10:12:06 | 显示全部楼层


回复  herrzhou

既然在慢时钟下timing容易满足,强壮不强壮的时钟树,setup违例都几乎不存在,hold违例 ...
shuanghx 发表于 2014-10-26 23:47




    很多公司ECO阶段都不允许动clock tree的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-4-29 01:14 , Processed in 0.029961 second(s), 6 queries , Gzip On, Redis On.

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