目录:
Ø CCOpt 概念
Ø 传统 CTS 介绍
Ø CCOpt 技术介绍
Ø CCOpt 优化流程
Ø Worst Chain Analysis
概念介绍
CCD : 全称是 Concurrent Clock Datapath ,并行优化 clock 和 data path 。
CCOpt : 全称是 Clock Concurrent Optimization
clock 的timing 分为两种模式, ideal clock 和 propagated clock 。
pre CTS 并没有 clock, 因此需要建立一个 ideal clock ,从 clock 端口到寄存器 CK 端的 network delay 来自 sdc 中的 set_clock_latency 设置;
post CTS update IO latency , clock 就会自动的转换成 propagated clock ,这时 network delay 就是实际时钟互连线网络的 RC extraction delay 。
在实际设计中, clock 起始于 ideal 模式,并以 propagated 模式结束。如下图所示:
![CCD 技术介绍(基于innovus引擎CCOpt)_第1张图片](http://img.e-com-net.com/image/info8/107dabd3107645c0a9c3f80732749520.jpg)
传统 CTS 介绍
对传统的flop to flop之间的电路,setup和hold time需要满足以下两个条件,如图所示:
![CCD 技术介绍(基于innovus引擎CCOpt)_第2张图片](http://img.e-com-net.com/image/info8/de61146219d3455ebcfc0d4ea00dfb08.jpg)
Propagated clock:
setup: L+ Dmax < T + C
hold: L+ Dmin > C
Ideal clock:
setup: Dmax < T
hold: Dmin > 0
Dmin > 0 是一个永远成立的条件,在这个model下面,我们只需要保证logic path上的最大delay,也就是critical path上的delay比时钟周期快就行。
![CCD 技术介绍(基于innovus引擎CCOpt)_第3张图片](http://img.e-com-net.com/image/info8/be39f266fce147b1bed10484e6760f8c.jpg)
当一个时钟树有N个sink以后,这里就有了global skew概念,完全balance的时钟树就很难做,clock skew变成各个flop之间的Launch和capture clock path的最大差值。
Propagated clock:
setup: Dmax < T - (L-C)
hold: Dmin > C – L
Ideal clock:
setup: Dmax< T + skew
hold: Dmin > skew
CCOpt 技术介绍
![CCD 技术介绍(基于innovus引擎CCOpt)_第4张图片](http://img.e-com-net.com/image/info8/6c41bd677e3949feb3dce6b30a401bdd.jpg)
Ø 通过减小clock skew来实现ideal和propagated clock收敛的做法已经不适合现在的先进工艺设计。由于OCV, clock gating, 以及clock的复杂性等因素导致两者之间有很大的clock timing gap,实现balanced的L和C几乎变成一个不可能的目标。
【关于OCV的介绍和应用可以参考下文:】
OCV/AOCV/SOCV的介绍和应用_芯片后端工程师-ratel的博客-CSDN博客
Ø 而 CCOpt 技术就放弃了这种减小clock skew的方法,而是将CTS和postCTS的timing optimize集合为一体,在优化data path的同时进行clock path的优化。根据timing情况自动调整时钟树各点的延迟,以达到合理利用skew来优化timing的目的。
CCOpt 优化流程
![CCD 技术介绍(基于innovus引擎CCOpt)_第5张图片](http://img.e-com-net.com/image/info8/9a2bc40a72564e9789ba025b8b6b8695.jpg)
![CCD 技术介绍(基于innovus引擎CCOpt)_第6张图片](http://img.e-com-net.com/image/info8/879040d318ac49959c9b9cf0f643bc16.jpg)
CCOpt 技术介绍
![CCD 技术介绍(基于innovus引擎CCOpt)_第7张图片](http://img.e-com-net.com/image/info8/d3e19a66850147a28f4c49a4b3c49ce8.jpg)
如下图可以看到,ccopt技术通过做短T2达到整体timing meet的要求。
![CCD 技术介绍(基于innovus引擎CCOpt)_第8张图片](http://img.e-com-net.com/image/info8/64a7495c0e9b4e9cab17dad367b20353.jpg)
CCOpt (Chain的介绍)
![CCD 技术介绍(基于innovus引擎CCOpt)_第9张图片](http://img.e-com-net.com/image/info8/27f1af55269a4198966148217b246331.jpg)
主要可以分为两类:IO chain和Loop chain
IO chain:
![CCD 技术介绍(基于innovus引擎CCOpt)_第10张图片](http://img.e-com-net.com/image/info8/c03f9315494640edbd58e94eb9325edb.jpg)
Loop chain:
可分为以下三种:
1.普通loop chain
![CCD 技术介绍(基于innovus引擎CCOpt)_第11张图片](http://img.e-com-net.com/image/info8/6a697a4feb7b49f78af7350376b133d6.jpg)
2.带macro chain
![CCD 技术介绍(基于innovus引擎CCOpt)_第12张图片](http://img.e-com-net.com/image/info8/d0583e8684d84458bcbabdfd71c4920a.jpg)
3.带ICG chain
![CCD 技术介绍(基于innovus引擎CCOpt)_第13张图片](http://img.e-com-net.com/image/info8/be0a10b368da4eaaa40c8b3138142174.jpg)
Worst chain analysis
![CCD 技术介绍(基于innovus引擎CCOpt)_第14张图片](http://img.e-com-net.com/image/info8/3f6c8e979eeb4b2f9931896e1d5f6fba.jpg)
![CCD 技术介绍(基于innovus引擎CCOpt)_第15张图片](http://img.e-com-net.com/image/info8/f997395ca2ef4420862af7efa1340e7e.jpg)
![CCD 技术介绍(基于innovus引擎CCOpt)_第16张图片](http://img.e-com-net.com/image/info8/1c00c01f06074a74b67fb94bcd19a630.jpg)
![CCD 技术介绍(基于innovus引擎CCOpt)_第17张图片](http://img.e-com-net.com/image/info8/e3e0a46b7f2f44a6854c2569d98e47f8.jpg)
![CCD 技术介绍(基于innovus引擎CCOpt)_第18张图片](http://img.e-com-net.com/image/info8/2a921fe5eeae423d930c17417e760a77.jpg)
常用命令介绍:
自定义时钟网络边界
set_ccopt_property sink_type {stop, ignore, exclude} –pin
stop:cts在该点停止,把这个pin作为skew group的sink,会对其做balance
ignore:cts只对这个pin做cluster,不做balance,ignore pin不会作为任何skew group的sink
exclude:cts在该点停止,该点不是时钟的一部分,不对其做balance