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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: 糖糖123

[求助] 如何减小时钟树

[复制链接]
 楼主| 发表于 2018-6-6 17:07:05 | 显示全部楼层
回复 2# sgj821


   没有用过,又比较急,能否请教一下
发表于 2018-6-6 21:46:54 | 显示全部楼层
回复 8# 糖糖123


   sink数量比较多,而且分的比较散的话,可以试试看设一些placement constraint,让工具在做placement的时候,尽量不太远,这样或许还有些效果
发表于 2018-6-7 11:25:16 | 显示全部楼层
cts确实比较复杂但是太重要了,说下个人经验:
1. 保证cts的sdc是正确的,比如clock的定义,case_analysis之类的;
2. tree上用ck cell,保证rise和fall的对称性,对skew有好处;
3. 合适的constrain,比如max_transition太大会导致transition压不下去,太小导致cts area面积增加,tree过长等;
4. 分析report,结合longest path, shortest path, 看clock tree structure report,分析有没有balance conflicts,有没有设置错误的balance point等;
5. 结合layout,看是不是floorplan的原因;
6. tree上换用推力强的cell等。

从你的report看,skew都崩了,检查下是不是有冲突的balance点。比如某个reg在某个clock下是balance sink点,在另一个clock下穿过去了之类的,导致无法balance。
 楼主| 发表于 2018-6-7 14:54:29 | 显示全部楼层
回复 13# xingyun620


   一个时钟树的sink单元太多了,去check每个reg的话不太容易呀
发表于 2018-6-8 09:55:43 | 显示全部楼层



你的summary report不是报出来longest path, shortest path了吗?仔细比较比较,配合structure report分析。看看longest path上有没有ICG或者reg(后面定义一个generated clock)之类的穿过去了 。也要注意一下path上面有没有较大的transition vio或者fanout violation,可能有dont buffer net,导致transition没解。
发表于 2018-6-8 13:42:31 | 显示全部楼层
回复 13# xingyun620

4. 分析report,结合longest path, shortest path, 看clock tree structure report,分析有没有balance conflicts,有没有设置错误的balance point等;从你的report看,skew都崩了,检查下是不是有冲突的balance点。比如某个reg在某个clock下是balance sink点,在另一个clock下穿过去了之类的,导致无法balance,ICG或者reg(后面定义一个generated clock)之类的穿过去了 。
5. 结合layout,看是不是floorplan的原因;
   

师哥,你好,我有点疑问:
对于第4条,怎么会发生reg在某个clock下是balance sink点,在另一个clock下穿过去了?ICG和gener reg(DIV)就是throught pin啊?无论是在fun clock还是scan clock 下。不太懂诶
对于第5条,由于floorplan的原因,可以举个例子吗?感觉很抽象
发表于 2018-6-8 13:44:33 | 显示全部楼层
回复 4# sdlyyuxi


   请问,为什么要在长时钟树的cell list中添加些小driven length的cell,我觉得这样会引起DRC问题,而且引起插了很多inv。不是要用一些中间推力的INV?
发表于 2018-6-8 14:08:59 | 显示全部楼层
回复 16# xingyun666666

客气了。
比较常见的是func和scan下某一个reg 有balance 冲突,比如func和scan都能看到某一个reg,func下在reg后定义了一个gen clock,那func下就会穿过去;但是scan会把这个reg当sink点,导致工具无法做到balance。icg是都会穿过去,但我有次遇到把它当sink点的....原因未知,后来设了non stop pin.
floorplan的话,我也没遇到特殊的问题,但是place的结果肯定是会影响cts的。

inverter确实一般用中间driving能力的,但是对于垫delay的地方,可以只用driving能力稍弱的,减少inverter乱跳现象。
发表于 2018-6-8 16:33:20 | 显示全部楼层
回复 18# xingyun620

比较常见的是func和scan下某一个reg 有balance 冲突,比如func和scan都能看到某一个reg,func下在reg后定义了一个gen clock,那func下就会穿过去;但是scan会把这个reg当sink点,导致工具无法做到balance。icg是都会穿过去,但我有次遇到把它当sink点的....原因未知,后来设了non stop pin.
floorplan的话,我也没遇到特殊的问题,但是place的结果肯定是会影响cts的。

inverter确实一般用中间driving能力的,但是对于垫delay的地方,可以只用driving能力稍弱的,减少inverter乱跳现象。

我的疑问是:func和scan都能看到某一个reg,func下在reg后定义了一个gen clock,那func下就会穿过去;但是scan会把这个reg当sink点,导致工具无法做到balance。这个影响的应该只是scan tree?所以我在长scan  tree时,把这个reg设置成no stop pin?
另外,减少inverter乱跳现象,这个不理解,好晕哦
 楼主| 发表于 2018-6-8 16:57:12 | 显示全部楼层
回复 19# xingyun666666


   请问怎么定义这个general clk,而且设计中似乎没有插入scan tree。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-5-1 16:39 , Processed in 0.026791 second(s), 5 queries , Gzip On, Redis On.

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