减少Clock Buffer的数量的方法
创始人
2025-05-31 10:28:46
0

随着频率提高,时钟网络的功耗占比也越来越高,在满足时序约束和signoff要求的情况下clock buffer越少,功耗自然也就越小,而且,随之减短的latency也有助于时序收敛。

CTS阶段常用命令

1.放松skew

放松target skew是降低整体buffer数量最有效的方法,仅少数设会有latency和skew的要求,大部分项目里只要时序能收敛,skew大也没什么。

set_clock_tree_options -target_skew 0.3 (default: 0)

2.控制CTS阶段scenario数量

挂的scenario能覆盖所有sdc即可,挂的越多,clock qor也并不会变得更好,反而run time更久,clock buffer也会更多。

set_scenario_status [get_scenarios -filter active] false

set_scenario_status $scenario -active true 

3.func与scan分开长tree

在一些只有func和scan两个mode的项目里,可以考虑先长func tree设don't touch后再做scan tree,这样也可以减少clock buffer数量,但是这种方法有时候时序会不如一起长tree的方式。

set_scenario_status -active false [get_scenarios]

set_scenario_status -active true [get_scenarios FUNC]

clock_opt -from build_clock -to route_clock

set_dont_touch_network -clock_only [all_clocks]

set_scenario_status -active false [get_scenarios]

set_scenario_status -active true [get_scenarios {FUNC SCAN}]

clock_opt -from build_clock -to route_clock

4.做短latency最长的path

latency长要么逻辑多,要么距离root远,要么就是时序单元有很长的内部延时,长tree算进去了。

CTS实例分析

innovus可以在长tree时用cluster的方案,只看不需要balance的情况下,clock tree都能长多长,ICC2没有这样的命令,需要的话可以自己ignore所有的sink pin。

set_clock_balance_points -consider_for_balance false -balance_points [get_clock_tree_pins -filter "is_sink == 1"]

CTS之后再remove_clock_balance_points,report_clock_qor即可。

1)针对逻辑多的问题,需要在CTS阶段,允许CTS优化tree上的组合逻辑,使用相同的VT。

set_dont_touch [get_flat_cells $clock_opt_cell_list ] false

set_lib_cell_purpose -include cts [get_flat_cells $clock_opt_cell_list]

2)物理距离远的情况,除非调floorplan,不然很难做短latency,有一种情况除外,那就是channel里没加soft blockage,导致寄存器放进去了,可以观察有没有detour的clock buffer,往往与channel里寄存器balance工具会插这类命名的buffer。

3)最后,一些sram内部有一部分延迟在CTS阶段算到clock tree上,导致长tree会拉长其他寄存器的latency。需要把这些pin抓出来,offset设成0。

set_clock_tree_options -offset 0 [get_pins $list]

5.减少不必要的balance

如果只有timing check的寄存器之间需要balance,那clock buffer肯定就少了,然而传统的CTS只能balance global skew,顶多再针对local skew做优化。

优化local skew把cts.compile.enable_local_skew和cts.optimize.enable_local_skew设为true。

如果能确定哪些sink pin只有彼此间有timing check,可以只让他们balance。

set_clock_balance_points -consider_for_balancing true -balance_points [get_pins $list]

 

 

 

 

相关内容

热门资讯

在PyCharm中运行Pyth... 先看一个报错: Traceback (most recent call last):F...
最新或2023(历届)给淘宝买... 给淘宝买家的感谢信范文一:  亲:  您好!  首先在此感谢您对本店的关注与支持!我们是一群年轻上进...
写给物业的一封感谢信范文 怎么... 写给物业的感谢信范文一:  XX建物业管理有限公司成都分公司:  新年伊始辞旧岁,万象更新迎新春。公...
关于最新或2023(历届)企业...  企业对员工的感谢信范文一:  尊敬的各位同事:  大家好!为应对公司生产一线人员缺口,同时保障公司...
最新或2023(历届)企业对员...  企业对员工的感谢信范文一:  尊敬的各位同事:  大家好!为应对公司生产一线人员缺口,同时保障公司...
最新或2023(历届)教你怎么... 给领导的感谢信范文一:  尊敬的xx县交巡警大队领导:  我们是xxx丝绸印花有限公司,今天来信的目...
城乡供水一体化平台-助力乡村振... 城乡供水一体化管理系统建设方案 城乡供水一体化管理系统是运用云计算、大数据等信息化手段࿰...
【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
捐款感谢信的范文参照 感谢村民... 捐款感谢信的范文一尊敬的xx实验中学的全体师生、员工:  您们好!您们的捐款我们如数收到,您们的爱心...
最新或2023(历届)火灾捐款...  火灾捐款感谢信范文一:同志:  正月初七早晨,新河镇西门街遭受火灾,一排木结构二层七间民房着火,居...
毕业送给给老师的感谢信 六年级... 尊敬的老师:  你好!感谢这三年来你对我的关怀与照顾,在你的帮助下,我也考得了好成绩,我之所以能考到...
最新或2023(历届)给老师的...   给老师的感谢信范文参考一敬爱的老师:  您好!最近在课堂上看到您容光满面,我也替您感到快乐与舒心...
家长写给老师的感谢信范文精选 ... 泾洋初级中学的老师、同学们:  我是贵校初三第十三班学生陈佳豪的家长。就在清明节放假期间,我的孩子在...
【vue2】vue2中的性能优... ⭐ v-for 遍历避免同时使用 v-if ⭐ v-for 中的key绑定唯一的值 ⭐ v-show...
freemarker转成PDF... Spring Boot 集成 FreeMarker 可以通过在 pom.xml 文件中添加依赖项来实...
写给亲爱的妈妈的一封感谢信 给... 写给亲爱的妈妈的一封感谢信亲爱的妈妈:  您好!  恩情,从小处讲可以是炎夏中给你一碗清爽冰凉的柠檬...
受到爱心捐款的感谢信范文 受灾... 受到爱心捐款感谢信一尊敬的老师,亲爱的同学: 你们好!  自9月xx日校工会、校团委发出向后港小学陈...
关于国家助学金感谢信范文 关于... 关于国家助学金感谢信篇一  尊敬的各位领导、老师:  你们好!  我很高兴能向国家和学校申请国家助学...
最新或2023(历届)助学金获...  助学金获奖感谢信范文篇一:  首先,感谢国家对我们贫困大学生的关怀和关爱。  xxxx年10月份我...
关于拾金不昧的感谢信精选范文 ... 拾金不昧的感谢信范文篇一  尊敬的县保健院领导及全体员工:  我叫XXX,于20XX年2月17日下午...