ICC2 CTS STEP
#第一步: Design Initialization for Clock Synthesis
1.说明cts 将工作在哪些scenario
2.cts 相关的app option
cts.common.max_fanout = 50
cts.common.max_net_length = 120
cts.common.user_instance_name_prefix = CTS
cts.compile.enable_cell_relocation = all
cts.compile.enable_global_route = true
cts.compile.enable_local_skew = false
cts.compile.fix_clock_tree_sinks = true
等等
3.cts时用到的buffer/Inverter ,一般用D4到D8的buffer inverter
4.cts时用到的ICG cell的list
5.指定哪一个corner 是clock tree building 过程中的主corner(CTS-103)
6.所有clock的sink,internal,root的NDR rule
7.clock cell的spacing rule
#第二步:Existing Clock Tree Removal
删除已经存在在的时钟树
#第三步:Clock Tree Initialization
1.检查时钟树结构,有问题的一些sink pin工具会设exception,放在当前目录下的clock_auto_exceptions*.tcl文件里。
2.以及工具自己的一些初始化,比如legalizer的初始化,extractor和timer的初始化等等,与user基本无关。
#第四步:Clock Cell Relocation
这里的clock cell指的时icg和mux,clock cell location会把icg放在所有sink的中间位置,以获得更好的qor,cts.compile.enable_cell_relocation这个app_option可以控制clock cell 如何 relocation,默认所有的clock cell都可以被relocation
#第五步:Gate-By-Gate Clock Tree Synthesis
按照 bottom up的方式长tree,依照设定好的max_transition和max_capacitance先长icg到sink的tree,再长icg到root的tree。
例如:
#第六步:Latency Bottleneck Analysis
这一步工具会把各个clock下超过500ps的latency的path报出来
#第七步:DRC Fixing Beyond Exception
修exception的sink点的drc 包括(trans,cap,fanout,netlength)
#第八步:Clock Net Global Routing
对时钟树做global route
#第九步:Pre-Optimization DRC Fixing
修 clock tree global route 后产生的drc 包括(trans,cap,fanout,netlength)
fix前后会统计当前scenario里每个clock group 的latency skew DRCviols,例如
fix 手段包括resize cell/relocation cell/clone repeater/insert buffer inverters
#第十步:Skew Latency Optimization and Area Recovery
主要进行clock tree 的 optimizing,包括对skew 和lantency进行优化 同时进行Area Recovery 以便得到更好得QoR。同上一步一样,会在开头和结尾产生一个summary,例如
从图中可以看出来skew lantency 以及Area 优化的代价是又有一部分drc冒了出来。
#第十一步:Post-Optimization DRC Fixing
对clock tree skew 和lantency进行opt以及area recovery后又会冒少量的drc,这些drc会在这一步修掉,同上一步一样,会在开头和结尾产生一个summary。
#第十二步:Postlude
对clock cell进行legalize
#第十三步:summary report
报timing 产生summary report
ICC2 CTS STEP相关推荐
- 区分鼠标左键和右键单击
在 mousedown 和 mouseup 事件处理程序让我们知道哪一个鼠标按键点击: ele.addEventListener('mousedown', function (e) {// e.but ...
- C#2.0实例程序STEP BY STEP--实例二:数据类型
C#2.0实例程序STEP BY STEP--实例二:数据类型 与其他.NET语言一样,C#支持Common Type Sysem(CTS),其中的数据类型集合不仅包含我们熟悉的基本类型,例如int, ...
- Cisco Wireless Controller 5508 Configuration Step by Step – Part 1 (CLI and GUI Access, Upgrade)
As the industry's most deployed controller, the Cisco 5500 Series Wireless Controller provides the h ...
- android 副mic测试,【收藏】Android Audio Framework CTS Verifier 测试方法
This new suite of tests requires human intervention and some external hardware including a Loopback ...
- 数字后端基础技能之:CTS(下篇)
不知道为什么用原来系列的标题突然提示字数超出,可能最近知乎更新了标题字数限制.所以我把原来的Clock Tree Synthesis这几个单词去掉了.请谅解~ 拖了很久才写了CTS系列的最后一篇,很是 ...
- 数字后端基础技能之:CTS(中篇)
在开始之前有两件事想征求一下大家的意见: 最近有同学反映文章中很多专业词汇不太明白,因此想开一个系列专门讲一些后端的基础知识和词汇,毕竟后端的知识颇为繁杂,对入门者极为不利.因此如果大家有不懂的知识尽 ...
- 时钟树综合CTS技术经验分享(高薪必备)
时钟树综合CTS技术经验分享(高薪必备!) 文章右侧广告为官方硬广告,与吾爱IC社区无关,用户勿点.点击进去后出现任何损失与社区无关. 说到时钟树综合,需要大家紧紧围绕 3W 和 1H 来思考,即 W ...
- ICC2 user guide(二)Placement and Optimization
目录 一 Specifying Coarse Placement Constraints and Settings 1 Defining Keepout Margins 2 Defining Area ...
- ICC2 user guide(三)Clock Tree Synthesis
目录 一 Prerequisites for Clock Tree Synthesis 二 Defining the Clock Trees 1 Deriving the Clock Trees 1. ...
最新文章
- 2021年大数据ELK(四):Lucene的美文搜索案例
- STM32 电机教程 5 - 步进电机基础知识介绍
- 海外投行抢滩大数据 人工智能等领域趋热
- FileStream实现多线程断点续传(已封装)
- C++STL理论基础
- C语言素数筛选法(prime seive) 算法(附完整源码)
- python清洗文本数据_02.数据预处理之清洗文本信息
- python property作用_python中@property的作用和getter setter的解释
- pandas和 excel 尝试
- 数学分析闭区间套定理_不能精确找到背驰点?利用区间套解决这难题
- python入门教程收藏_python入门教程:超详细保你2小时学会Python,快来收藏看看...
- oracle 行列转换 pivot unpivot (本文来自官网)
- 4个关键,如何清晰的做好数据分析
- iOS 开发中遇到的各种证书的详细说明以及申请讲解
- 【Prometheus】prometheus告警配置
- 安卓系统明日之后服务器,明日之后安卓区哪个人少 安卓区服务器推荐[多图]
- LLC谐振半桥电路分析与设计(1)
- oracle数据库userenv,Oracle数据库中userenv、sys_context的参数
- 如何用python进行数据处理?(二)
- 关于节日文化的HTML网页设计-----二十四节气