Prerequisite 2:
Ensure Placement Le
g
alit
y
• For clock tree synthesis to proceed without any errors, it is necessary to
have a legally placed design.
•
Use the
check legality
command to check whether the design is
gy
•
Use
the
check
_
legality
command
to
check
whether
the
design
is
properly placed and legalized, prior to CTS.
• In case of legality issues, use the legalize_placementcommand to
resolve these issues resolve
these
issues
.
Note:
•
Clock tree synthesis will abort in case of placement legality issues
•
Clock
tree
synthesis
will
abort
in
case
of
placement
legality
issues
.
• In some cases, like overlapping standard cells, it may still proceed and
issue a warning during placement legality checking, but continuing with
placement legality issues may lead to bad QoR placement
Design Rule Constraints
•
In addition to the clock tree design rule constraint values specified using In
addition
to
the
clock
tree
design
rule
constraint
values
specified
using
set_clock_tree_options, IC Compiler also considers the design rule constraint values
from the logic library and the design.
•
The following table summarizes how IC Compiler determines the design rule constraint
Case1:
Default behavior:
t lib f tfl
Case2: Use library and SDC settings for maximum fanout:
tlibftt
Case3: Use only user set settings for clock tree synthesis and clock tree optimization:
The
following
table
summarizes
how
IC
Compiler
determines
the
design
rule
constraint
values used during the design rule fixing st age of clock tree synthesis and optimization.
c
t
s
_
use
_lib_
max
_f
anou
t
=
f
a
l
se
cts_use_sdc_max_fanout=false
cts_force_user_constraints=false
ct
s
_
use
_lib_
max
_f
anou
t
=
t
rue
cts_use_sdc_max_fanout=true
cts_force_user_constraints=false
cts_force_user_constraints=true
Maximum capacitance
The minimum value from:
• The set_clock_tree_options
•
The CTS
default value (0.6pF)
The minimum value from:
• The set_clock_tree_options
•
The CTS
default value (0.6pF)
Value set using s
et clock tree o
p
tions
Maximum
capacitance
The
CTS
default
value
(0.6pF)
• The logic library
• The SDC constraints
The
Constraints Specified Using the
set clock tree o
p
tionsCommand
• Library units are used for time and capacitance values specified by using
the set_clock_tree_optionscommand
___p
• The smallest values accepted for the -max_capacitanceand
-max_transition options of the set_clock_tree_options
command are 1fF and 1ps respectively command
are
1fF
and
1ps
respectively
.
• For example, if the library units ar e pF and ps, and you specify the following
command IC Compiler will issue an error: command
,
IC
Messages in the compile_clock_tree CommandLog • Before clock tree synthesis:
Di dt
Command
Log
–
D
es
ign up
d
a
t
e
– Buffer and Inverter information
– Clock tree constraints
– Clock structure before clock three synthesis
• During clock tree synthesis:
– Clustering –
Meeting target early delay Meeting
START CMD: com
p
ile clock tree CPU: 55 s
(
0.02 hr
)
ELAPSE: 288 s
(
0.08 hr
)
MEM-PEAK: 203 Mb Wed Dec 28 22:33:54 2011
Overview of the compile_clock_treeCommand Log
_
p_ _
() ()
(PSYN-508)
CTS: CTS Operating Condition(s): MAX(Worst)
START_FUNC: prelude CPU: 55 s ( 0.02 hr) ELAPSE: 288 s ( 0.08 hr) MEM-PEAK: 203 Mb Wed Dec 28 22:33:54 2011
(PSYN-508)
Loading design 'ORCA_TOP'
…
Information: Desi
g
n Librar
y
and main librar
y
ca
p
acitance units are matched
-
1
.000
p
f.
Prelude
gy yp
p
END_FUNC: prelude CPU: 56 s ( 0.02 hr) ELAPSE: 288 s ( 0.08 hr) MEM-PEAK: 203 Mb Wed Dec 28 22:33:54 2011
(PSYN-508)
…
****************************************************************
Information: TLUPlus based RC computation is enabled. (RCEX-141)
****************************************************************
Information: The distance unit in Capacitance and Resistance is 1 micron. (RCEX
-
007)
Extraction related messages
Information:
The
distance
unit
in
Capacitance
and
Resistance
is
1
micron.
(RCEX
007)
Information: The RC model used is TLU+. (RCEX-015) … CTS: Blockage Aware Algorithm CTS: Marking Ignore Pins.... … Warning: too small maximum transition (=0.300000) defined at library cell dl02d4. (CTS-619) CTS bff ti td k t tdl dii i t CTS
:
b
u
ff
er es
ti
ma
t
e
d
s
k
ew
t
arge
t
CTS: I_SDRAM_TOP/I_SDRAM_IF/sd_mux_dq_out_8/S is implicit ignore
CTS: I_SDRAM_TOP/I_SDRAM_IF/sd_mux_dq_out_11/S is implicit ignore
…
Warning: Ignore net sd_CK since it has no synchronous pins. (CTS-231)
CTS: Info: will use target transition value for initial CTS stages
Pruning library cells (r/f, pwr)
Min drive = 0.000372606.
…
Final pruned buffer set (7 buffers):
bufbd1
Pruning of buffers and inverters
… CTDN lib estimation: buffers should result in better clock power. CTS: BA: Net 'sdram_clk' CTS: Starting clock tree synthesis ... CTS: Conditions = worst(1) CTS: Global design rule constraints [rise fall] CTS: max transition = worst[0.300 0.300] GUI = worst[0.300 0.300] SDC = undefined/ignored
Reporting global
clock tree constraints
…
Information: Removing clock transition on clock PCI_CLK ... (CTS-103)
CTS: gate level 1 clock tree synthesis
CTS: clock net = sdram_clk
CTS: gate level 1 clock tree synthesis results
CTS:
clock net :
sdram clk
Clock tree synthesis
CTS:
Maximum Capacitance and Transition Related
Warnings
• Even if the set_clock_tree_optionscommand does not issue
any errors when you set the maximum capacitance and transition
constraints, the compile_clock_treecommand can issue
warnings if the values are too small.
Warning: too small maximum transition (=0.050000) defined at pin instCLK1GC1/Q. (CTS
-
6
20)
Warning: too small maximum capacitance (=0.050000) defined at
pin instCLK1GC1/Q. (CTS-620)
Warning: too small maximum transition (
=
0.050000) defined at
Max trans =50ps is too tight for the pin instCLK1GC1/Q
Max cap =50fF is too tight for the pin instCLK1GC1/Q
Warning:
too
small
maximum
transition
( 0.050000)
defined
at
library cell bufbdk. (CTS-619)
•
Tight constraints can cause clock tree synthesis to use an excessive Tight
Buffers and Inverters Used During Clock Tree
Synthesis
• Before synthesizing the clock tree, IC Compiler characterizes each buffer
and inverter
To see the characterization details, set the followin
g
variable to true:
g
set cts_do_characterization true
After characterization is done, characterized values for each buffer and
inverte
r
are re
p
orted
Buffer
p
CTS: buffer estimated skew target delay driving res input cap
CTS: bufbdf [0.013 0.015] [0.217 0.200] [0.210 0.248] [0.007 0.007]
CTS: inv0da [0.018 0.021] [0.097 0.119] [0.294 0.347] [0.036 0.036]
CTS: bufbd7 [0.025 0.030] [0.223 0.234] [0.415 0.503] [0.008 0.008]
CTS b fbd4 [0 047 0 053] [0 347 0 357] [0 786 0 880] [0 004 0 004] CTS
:
b
u
fbd4
Pruning of Buffers and Invertors • Pruning is a process by which IC Compiler selects the buffers and
inverters which are best suited for clock tree synthesis, based on the
buffer and inverter characterization, and prevents the remaining ones
fbi d f
rom
b
e
ing use
d
.
• IC Compiler prunes the buffers and inverters based on drive strength
and power: and
power:
Pruning library cells (r/f, pwr)
Min drive = 0.264263.
Pruning inv0d0 because drive of 0.149845 is less than 0.264263.
Pruning inv0d2 because it is (w/ power-considered) inferior to invbd2.
• IC Compiler calculates a minimum drive value based on heuristics.
Buffers and inverters whose drive strength is less than the minimum
d
riv
e
v
a
lue
Maximum Transition, Maximum CapacitanceandTimingConstraints Capacitance
and
Timing
Constraints
Before clock tree synthesis begins, all the global clock tree constraints are reported in the log in the format shown below:
Default value or the value set
using
s
et clock tree o
p
tions
The value
reported
in
the
log
,
in
the
format
shown
below:
CTS: Global design rule constraints [rise fall]
CTS: max transition = worst
[
0.050 0.050
]
GUI = worst
[
0.100 0.100
]
SDC = worst
[
0.050 0.050
]
Value from
SDC
___
p
used by CTS
[] [] []
CTS: max capacitance = worst[0.600 0.600] GUI = worst[0.600 0.600] SDC = undefined/ignored
CTS: max fanout = 2000 GUI = 2000 SDC = undefined/ignored
on
s
Undefined means no value
ifi d i SDC
CTS: Global timing/clock tree constraints CTS: clock skew = worst[0.100] CTS: insertion delay = worst[2.000] CTS: levels per net = 200
Skew/insertio
delay targets
Values set using the
spec
ifi
e
d
Preexisting Clock Tree Information in the Log File
Maximum number of
Before starting to
CTS: Design infomation
CTS: total gate levels = 8
CTS: Root clock net CLK2
CTS: clock gate levels = 2
Number of sinks
Maximum
number
of
gate levels available
e levels
Before
starting
to
build the clock tree,
the preexisting clock
tree structure is
printed in the log file
CTS: clock sink pins = 4
CTS: level 2: gates = 1
CTS: level 1: gates = 1
CTS: Buffer/Inverter list for CTS for clock net CLK2:
CTS: invbdk
Existing gate levels and number
of gates at each level
Number of gate
for clock CLK2
printed
in
the
log
file
CTS: bufbdk
...
CTS: Root clock net CLK1
CTS: clock gate levels = 8
CTS: clock sink pins
=
8431
N
f
CTS:
Real Gates and Guide Buffers • You may see the term real gates in the preexisting clock tree structure
information section
:
CTS: Root clock net CLK1
CTS: clock gate levels = 16 CTS:
Buffers and Inverters Used
• Before it begins to build the clock tree, the t ool will list all the buffers and inverters it will
use to build the tree
CTS: Buffer/Inverter list for CTS for clock net
s
dram clk
:
_
CTS: CLKBUFX20
CTS: CLKBUFX16
CTS: CLKBUFX12
CTS: Buffer/Inverter LEQ cell list for Boundary Cell for clock net sdram_clk:
CTS CLKBUFX20
CTS uses this list
CTS
:
CLKBUFX20
CTS: CLKBUFX16
CTS: CLKINVX8
CTS: Buffer/Inverter LEQ cell list for CTO for clock net sdram_clk:
CTS: CLKBUFX20
CTS uses this list for inserting boundary cells
CTS: CLKBUFX16 CTS: CLKINVX8 CTS: Buffer/Inverter list for DelayInsertion for clock net sdram_clk:
CTS: CLKBUFX20
CTO uses this list for sizing
CTO thi li t f d l i ti
CTS: CLKBUFX16 CTS: CLKINVX8
• You can change the buffer and inverter list by using the following command:
CTO
uses
thi
s
li
s
t
Clock Tree Synthesis Removes User-Specified IdealAttributesonClocks
• Synthesized clocks are set to be propagated, and clock transition, which
is an attribute of an ideal clock, is removed
Ideal
Attributes
on
Clocks
CTS: Information: Removing clock transition on clock SP0XCLK ... (CTS
-
1
03)
CTS: Information: Removing clock transition on clock SP0RCLK ... (CTS-103)
•
Latency, another attribute of an ideal clock, is also removed Latency,
Clktbildiid tllb tllttif th
Gate Level-by-Level Clock Tree Synthesis
•
Cl
oc
k
t
ree
b
u
ildi
ng
is
d
one ga
t
e
leve
l
b
y ga
t
e
leve
l, s
t
ar
ti
ng
f
rom
th
e
sinks to the clock root
• For each gate level, just before the synthesis starts, the following
information will be printed in the log:
CTS: gate level 2 clock tree synthesis
CTS: clock net = I BLENDER 1/
g
clk
Net and driver at
__
g
CTS: driving pin = I_BLENDER_1/U483/Z
CTS: gate level 2 design rule constraints [rise fall]
CTS: max transition = worst[0.300 0.300]
CTS: max capacitance = worst[0.300 0.300]
Net
and
driver
at
this gate level
CTS: max fanout = 2000
CTS: gate level 2 target spec [rise fall]
CTS: transition = worst[0.240 0.240]
CTS: capacitance = worst[0.240 0.240]
C
T
S:
• The clock tree buildin
g
starts with clusterin
g
. Clusterin
g
is the
p
rocess of
Clustering During Clock Tree Synthesis
gggp
dividing a set of sink pins (fanouts) into groups. Each group is driven by a
buffer The instances of a cluster are all close to each other
•
The following message says that 423 sink pins are divided into 27 clusters
•
The
following
message
says
that
423
sink
pins
are
divided
into
27
clusters
,
each with approximately 423/27 sink pins
CTS: gate level 2 clock tree synthesis
...
CTS: gate level 2 design rule constraints [rise fall]
CTS: max transition = worst[0.300 0.300] CTS: max capacitance = worst[0.300 0.300] CTS: max fanout = 2000 CTS: gate level 2 target spec [rise fall] CTS: transition = worst[0.240 0.240] CTS: ca
p
acitance = worst
[
0.240 0.240
]
p[]
CTS: driver cap. = worst[0.088 0.088] CTS: fanout = 32 CTS: gate level 2 timing constraints ... CTS: ----------------------------------------------- CTS:
Starting clustering for
bufbda
with target load
=
worst[0.240 0.240]
Before clustering
After clustering
CTS:
Initially the tool makes attempts to cluster hookup pins along with the normal sinks (trial
Clustering With Hookup Pins
•
Initially
,
the
tool
makes
attempts
to
cluster
hookup
pins
along
with
the
normal
sinks
(trial
clustering)
CTS: gate level 1 clock tree synthesis
...
CTS: gate level 1 design rule constraints [rise fall]
CTS: max transition = worst[0.300 0.300]
In this example there are 479 sinks
CTS: max capacitance = worst[0.300 0.300] CTS: max fanout = 2000 CTS: gate level 1 target spec [rise fall] CTS: transition = worst[0.240 0.240] CTS: capacitance = worst[0.240 0.240] CTS: driver cap. = worst[0.150 0.150] CTS: fanout
=
32
In
this
example
,
there
are
479
sinks
and 1 hookup pin
CTS:
fanout
32
CTS: gate level 1 timing constraints
...
CTS: -----------------------------------------------
CTS: Starting clustering for bufbda with target load = worst[0.240 0.240]
CTS: Completed 480 to 34 clustering
CTS: Starting clustering for bufbda with target load = worst[0.240 0.240]
CTS C l t d 34 t 6 l t i
Trial clustering
CTS
:
C
omp
l
e
t
e
d
Clustering With Hookup Pins: HookupPinClusteredWithSinks
• If the trial clustering gives good QoR results, the following message shown in
blue is displayed :
Hookup
Pin
Clustered
With
Sinks
blue
is
displayed
:
CTS: BA: lp (1.968, 2.031): skew (0.257, 0.194) c(0.076, 0.072) viol(y y)
CTS: -----------------------------------------------
CTS: Starting clustering for bufbd7 with target load = worst[0.000 0.005]
CTS: BA: rootNetCap = 0.071776: targ cap = 0.045000: targ wirecap = 0.000000: not relaxed
CTS: Completed 2 to 2 clustering CTS:
Completed
2
to
2
clustering
CTS: Starting clustering for bufbd7 with target load = worst[0.000 0.005] CTS: BA: rootNetCap = 0.071776: targ cap = 0.045000: targ wirecap = 0.000000: not relaxed CTS: Completed 2 to 1 clustering CTS: BA: this delay [max min] (skew) = worst[2.040 1.844] (0.196) CTS: BA: next delay [max min] (skew)
=
worst[2.161 1.965] (0.196)
CTS:
Meeting Target Early Delay • After the synthesis of the root clock net (gate le vel 1 synthesis), the tool checks if the delay
constraint set by the user is being met or not.
• If it is not met, the tool inserts some buffers at the root clock net to achieve the target delay
s
p
ecified b
y
the user.
py
• In the following message, 16 buffers are inserted at the root clock net to increase the delay from
0.569ns to 2ns, which is the user specified target. CTS: gate level 1 clock tree synthesis
C
T
S:
c
l
oc
k n
et
=
sys c
lk
CS:
coc et
sys
_
c
CTS: driving pin = sys_clk
CTS: gate level 1 design rule constraints [rise fall]
...
CTS: gate level 1 target spec [rise fall]
...
CTS: gate level 1 timing constraints
Constraint set by the user
CTS: clock skew = worst[0.000] CTS: insertion delay = worst[2.000] CTS: levels per net = 200 CTS: ----------------------------------------------- CTS: Starting clustering for CLKBUF_X20 with target load = worst[0.211 0.270] ... CTS:
-----------------------------------------------
CTS:
CTS:
gate level 1 clock tree synthesis results
Synthesis Results of One Gate Level
After the synthesis of a
CTS:
gate
level
1
clock
tree
synthesis
results
CTS: clock net : sdram_clk
CTS: driving pin: sdram_clk
CTS: load pins : 5 sink pins, 0 gates/macros pins, 0 ignore pins
CTS: buffer level 1: bufbd7 (1)
CTS: buffer level 2: bufbd7 (1)
delay at the
dram_clk)
After
the
synthesis
of
a
gate level, the results are
printed in the log
CTS: clock tree skew = worst[0.036]
CTS: longest path delay = worst[0.327](rise)
CTS: shortest path delay = worst[0.291](rise)
CTS: total capacitance = worst[0.389 0.389]
CTS: buffer level phase delay
CTS
1 (I) t[0 293]( i ) t[0 256]( i ) k t[0 036]
d insertion d
n A (here sd
Operating Condition
CTS
:
1
(I)
: wors
t[0
.
293](
r
i
se
)
, wors
t[0
.
256](
r
i
se
)
; s
k
ew = wors
t[0
.
036]
CTS: (O): worst[0.151](rise), worst[0.129](rise); skew = worst[0.022] CTS: 2 (I): worst[0.150](rise), worst[0.128](rise); skew = worst[0.022] CTS: (O): worst[0.004](rise), worst[0.000](rise); skew = worst[0.004] CTS: buffer level output transition delays [rise fall] CTS:
level 0: worst[0.088 0.085] worst[0.088 0.085]
Skew and
driving pin
CTS:
is
reported as total capacitance of the subtree
Number of cap
violations
Number of trans
violations
Maximum Transition and Capacitance Violations • After each gate level is synthesized, the maximum capacitance and
maximum transition violations at that gate level are reported
Violations
CTS: gate level 3 clock tree synthesis results
...
CTS: buffer level total load capacitance
...
CTS it i l ti
ih
/CTS 755
CTS
: capac
it
ance v
i
o
l
a
ti
on on
p
er
i
p
h
/CTS
_
755
CTS: capacitance = worst[0.052 0.052]
CTS: constraint = worst[0.050 0.050]
CTS: capacitance violation on periph/CTS_757
CTS: capacitance = worst[0.051 0.051]
CTS: constraint
=
worst[0 050 0 050]
CTS:
Clock-by-Clock Summary
• A summary is reported for each clock:
CTS: ------------------------------------------------
CTS: Clock-by-Clock Summary
Buffer tree is inserted
only if necessary
CTS: ------------------------------------------------
CTS: Root clock net pclk
CTS: 3 gated clock nets synthesized
CTS: 2 buffer trees inserted
only
CTO-GS: Starting gate sizing ...
Gate Sizing
Information: Replaced the library cell of I7188625 from TLQMUX2X60 to TULQMUX2ZSX40. (CTS-152)
Information: Replaced the library cell of I7586451 from TLTMUX2X60 to TLTMUX2X50. (CTS-152)
Information: Replaced the library cell of I3342873 from TULTMUX2X50 to TLTMUX2ZSX60. (CTS-152)
Information: Replaced the library cell of I1387108 from TULTMUX2X80 to TULTMUX2ZSX80. (CTS-152)
...
I f ti R l d th lib ll f I6717862 f THQMUX2ZSX80 t TSTMUX2ZSX20
(CTS
152
)
14 cells sized
I
n
f
orma
ti
on:
R
ep
l
ace
d
th
e
lib
rary ce
ll
o
f
I6717862
f
rom
THQMUX2ZSX80
t
o
TSTMUX2ZSX20
.
(CTS
-
152
)
Information: Replaced the library cell of I9359863 from TLTMUX2ZSX80 to TULTMUX2ZSX60. (CTS-152) Information: Replaced the library cell of I10258160 from TLTMUX2ZSX60 to TLTMUX2ZSX40. (CTS-152) Information: Replaced the library cell of I7636259 from TLTMUX2ZFFX80 to TULTMUX2ZSX60. (CTS-152) CTO-GS: 1: Sized 14/40cell instances (tested 40X247)
CTO-GS: dela
y
(
from
)
= worst
[
9.104
]
worst
[
8.633
];
skew = worst
[
0.471
]
Summary of the first round of sizing
y( ) [ ] [ ]; [ ]
CTO-GS: delay (to) = worst[9.104] worst[8.633]; skew = worst[0.471] CTO-GS: improvement = worst[0.106%]
Information: Replaced the library cell of I2130284 from TLTMUX2X80 to TLTMUX2ZSX40. (CTS-152)
Information: Replaced the library cell of I8618764 from TLTMUX2ZFFX80 to TLTMUX2X80. (CTS-152)
Information: Replaced the library cell of I1749911 from TULTMUX2ZFFFX80 to TULTMUX2ZFFX80. (CTS-152)
• Number of gate sized (Here 14 out of 40 gates)
• Shows the improvement in skew
Information: Replaced the library cell of I3342873 from TLTMUX2ZSX60 to TLTMUX2ZSX40. (CTS-152)
Information: Replaced the library cell of I8872989 from TULTMUX2ZFFFX60 to TLTMUX2ZFFX80. (CTS-152)
Information: Replaced the library cell of I1387108 from TULTMUX2ZSX80 to TULTMUX2X50. (CTS-152)
CTO-GS: 2: Sized 6/40 cell instances (tested 40X247)
CTO-GS: delay (from) = worst[9.104] worst[8.633]; skew = worst[0.471] CTO
GS: delay (to) = worst[9 104] worst[8 633]; skew = worst[0 471]
CTO
-
GS:
A Successful Gate Relocation
CTO-GR: Starting gate relocation ...
CTO-GR: delay [max min] (skew) = worst[9.023 8.563] (0.460)
2 cells were tried at 47
new locations, 1 was moved
CTO-GR: 1: Relocated 1/40cell instances (tested 2cell instances at 47points)
CTO-GR: delay (from) = worst[9.023] worst[8.563]; skew = worst[0.460]
CTO-GR: delay (to) = worst[9.023] worst[8.563]; skew = worst[0.460]
CTO-GR: improvement = worst[0.000%]
CTO
GR dl [ i](k ) t[90188563](0455)
Initial skew
Final skew
Improvement in skew
CTO
-
GR
:
d
e
l
ay
[
max m
i
n
]
• After the embedded clock tree optimization, the tool prints the summary. •
It looks exactly similar to the summary printed after clock tree synthesis
Post Embedded Clock Tree Synthesis •
It
Placement Legalization is Called AfterClockTreeSynthesis • When clock tree synthesis places a clock tree buffer or inverter, it After
Clock
Tree
Synthesis
places it at a legal location, but the location might be occupied Causes overlaps which needs to be resolved
• The tool calls the placement legalizer which moves the cells to
resolve the overlaps.
• After legalization, the cells with large displacement gets reported in
the log
Largest displacement cells:
Cell: periph/U122 (AND3X)
Input location: (906.380 1597.520)
Legal location: (897.140 1582.400)
Displacement: 17 720 um e g 3 52 row height
1 of 6 cells that
were displaced
Displacement:
Standalone Optimization Using the optimize clock tree
Command
• Standalone optimization differs from embedded optimization in the optimize_clock_tree
Command
algorithms used
• Some of the lo
g
messa
g
es are similar to those of when
y
ou use the
gg y
compile_clock_treecommand
Design update information
Buffer characterization Buffer
CTS-352 Warning • The default delay calculation engine is Elmore. Elmore delay
calculation might lead to inferior accuracy in skew and latency
estimation.
• Enable the Arnoldi dela
y
calculation en
g
ine for more accurate dela
y
yg y
calculation during optimization, by using the following command:
set_delay_calculation –clock_arnoldi
• Otherwise, the optimize_clock_treecommand will issue the
following warning:
Warning: set_delay_calculation is currently set to 'elmore'.
'clock arnoldi' is suggested (CTS
352)
'clock
_
arnoldi'
Optimization Options • Before starting optimization, the optimize_clock_tree
dhidhiiiifh
comman
d
reports t
h
e root p
in an
d
t
h
e opt
im
izat
ion opt
ions
f
or eac
h
clock.
• The following are the options which you have specified, by using the
set clock tree optimization options
command
set
_
clock
_
tree
_
optimization
_
options
command
Initializing parameters for clock CLK2GC: Root pin: instCLK2GC/Q Root
PreoptimizationReport • Before the tool begins to optimize t he clock tree, it reports some of
the current characteristics of the clock tree:
*****************************************
*
Preoptimization
report (clock
'
CLK3
'
)*
Clock name
*
name
CTS corner
The starting skew and ID
for the clock as seen by
CTO
Estimated Skew (r/f/b) = (0.005 0.000 0.005)
Estimated Insertion Delay (r/f/b) = (0.008 -inf 0.008)
Wire capacitance = 0.8 pf
Total capacitance = 2.3 pf
Max transition = 0.448 ns
CTO
Maximum transition value p
resent in the clock tree
Cells = 24 (area=67.500000) Buffers = 23 (area=67.500000) Buffer Types ============
bufbd2: 1
bufbdf
:8
p
Information about the
buffers and inverters
ti th l kt
bufbdf
:
Optimization Messages • During optimization, the tool prints out messages for sizing, insertion
and removal, and switching of metal layers:
Deleting cell I_SDRAM_TOP/bufbda_G1B1I10 and output net I_SDRAM_TOP/sdram_clk_G1B1I10.
iteration 1: (0.314104, 3.328620)
Total 1 buffers removed on clock CLK3
Start (3.256, 3.527), End (3.015, 3.329)
Buffer Removal
Start (sp,
lp
) : Initial delays
(skew, ID)
.... iteration 2: (0.313991, 3.314841) iteration 3: (0.308073, 3.295621) Total 2 cells sized on clock CLK3 Start (3 015, 3 329), End (2 988, 3 296)
Cell Sizing
Start
(sp,
lp
)
:
Initial
delays
End (sp, lp) : Final delays
sp: shortest path delay
lp: longest path delay
Start
Optimization Messages
• If area recovery option is enabled, the tool does area recovery after
optimizing each clock and reports the changes made to that clock: optimizing
• After com
p
letin
g
the o
p
timization of a clock
,
the tool re
p
orts the new
Post Optimization Report
pg p , p
characteristics of the clock tree.
• This is similar to the information printed in before optimization: **************************************************
* Multicorner optimization report (clock 'CLK3') *
**************************************************
Corner ‘max'
Estimated Skew (r/f/b) = (0.041 0.000 0.041)
E ti t d I ti D l ( /f/b) (1 725
if
1 725)
E
s
ti
ma
t
e
d
I
nser
ti
on
D
e
l
ay
(
r
/f/b)
=
(1
.
725
-
i
n
f
1
.
725)
Corner 'RC-ONLY'
Estimated Skew (r/f/b) = (0.007 0.000 0.007)
Estimated Insertion Delay (r/f/b) = (0.009 -inf 0.009)
Wire capacitance = 0.8
p
f
Total capacitance = 2.3 pf Max transition = 0.356 ns
Cells = 24 (area=59.000000)
Buffers = 23 (area=59.000000) Buffer Types Buffer
Reporting the Longest and Shortest Paths
• The longest and shortest paths corresponding to all corners are reported,
soon after the post optimization report:
++ Longest path for clock CLK3 in corner 'max':
object fan cap trn inc arr r location
clk3 (port) 32 0 0 r ( 440 748)
clk3 (net) 13 97
… I_SDRAM_TOP/I_SDRAM_READ_FIFO/reg_array_reg_3__8_/CP (senrq1)
167 4 289 r ( 521 520)
++ Shortest path for clock CLK3 in corner 'max':
object fan cap
trn
inc
arr
r location
object