目录:
Ø 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 模式结束。如下图所示:

传统 CTS 介绍
对传统的flop to flop之间的电路,setup和hold time需要满足以下两个条件,如图所示:

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比时钟周期快就行。

当一个时钟树有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 技术介绍

Ø 通过减小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 优化流程


CCOpt 技术介绍

如下图可以看到,ccopt技术通过做短T2达到整体timing meet的要求。

CCOpt (Chain的介绍)

主要可以分为两类:IO chain和Loop chain
IO chain:

Loop chain:
可分为以下三种:
1.普通loop chain

2.带macro chain

3.带ICG chain

Worst chain analysis





常用命令介绍:
自定义时钟网络边界
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