Clock Tree Synthesis in Openroad: December 12, 2024
Clock Tree Synthesis in Openroad: December 12, 2024
Clock Tree
Floorplanning Placement Routing Chip Finishing
Synthesis
Define chip size, Place standard cells Build clock tree for Global routing to
layout synchronous logic minimize congestion Metal fill insertion
Optimize for timing
Place IO pads and and power Repair hold and Optimize for timing Timing signoff with
macros logical DRC and power parasitic extraction
Detailed placement violations
Build power (legalization) Detailed routing to Layout verification
distribution network Detailed placement repair all physical
DRC violations GDSII generation
3
© 2024 Precision Innovations, do not copy or distribute without authorization.
Outline
Routing
Sequential elements
are scattered all
across the chip Chip Finishing
clock port
5
© 2024 Precision Innovations, do not copy or distribute without authorization.
How do we measure “quickly” and “simultaneously”?
6
© 2024 Precision Innovations, do not copy or distribute without authorization.
Outline
ff1 ff2
ff2/D
D Q D Q
CK CK
Hold
clk ff2/CK
ff1 ff2
ff2/D
D Q D Q
CK CK
Hold
clk ff2/CK
buf1
9
© 2024 Precision Innovations, do not copy or distribute without authorization.
LDRC violations (max transition violations)
cell ("sky130_fd_sc_hd__buf_1") {
. . .
pin ("X") {
. . .
direction : "output";
What is Max transition violation occurs when signal function : "(A)";
max_capacitance : 0.1300150000;
it? transition time degrades over a long wire or max_transition : 1.5061030000;
0.0005
0.0013
signal transition time (10-90% or 20-80%) 0.0032
0.0081
0.0204
0.0515
0.1300
limit
10
© 2024 Precision Innovations, do not copy or distribute without authorization.
Fixing max transition violations
limit
limit
11
© 2024 Precision Innovations, do not copy or distribute without authorization.
Outline
13
© 2024 Precision Innovations, do not copy or distribute without authorization.
Benefits of CTS
QoR Metric Without CTS With CTS Comment
Worst clock latency 1.67 0.82
Best clock latency 0.24 0.72
Clock skew 1.43 0.10 14X less skew
Setup WNS / TNS / NVP -2.19 / -206.43 / 382 -1.01 / -21.46 / 105 10X less setup TNS
Hold WNS / TNS / NVP 0/0/0 0/0/0
Max trans / Max cap / 1025 / 3 / 0 187 / 4 / 0 5X less max trans
Max fanout violations violations
Total power 17.7 mW 24.1 mW 1.4X more power
18
© 2024 Precision Innovations, do not copy or distribute without authorization.
Sink Clustering
19
© 2024 Precision Innovations, do not copy or distribute without authorization.
Clock Tree Balancing
Perform library cell and wire analysis to determine best buffer choices and
buffering distance
Construct Htree by alternating vertical segments with horizontal segments
Ensure that all segments of clock trees are balanced to minimize skew
L2 L L2
1
L2 L1 L2
20
© 2024 Precision Innovations, do not copy or distribute without authorization.
Obstruction-Aware CTS
23
© 2024 Precision Innovations, do not copy or distribute without authorization.
Handling Macro Cells
24
© 2024 Precision Innovations, do not copy or distribute without authorization.
Outline
choosing appropriate clock [INFO CTS-0017] Max level of the clock tree: 5.
[INFO CTS-0098] Clock net "clk"
[INFO CTS-0099] Sinks 2537
[INFO CTS-0100] Leaf buffers 96
design
Startpoint: dp.rf.rf[31][3]$_DFFE_PP_
report_checks -format Report timing violations (rising edge-triggered flip-flop clocked by clk)
Endpoint: aluout[0] (output port clocked by clk)
Path Group: clk
Path Type: max
0.00
0.00
Time
0.00
0.00
Description
-----------------------------------------------------------------------------
clock clk (rise edge)
clock source latency
1 0.09 0.00 0.00 0.00 ^ clk (in)
clk (net)
0.00 0.00 0.00 ^ clkbuf_0_clk/A (sky130_fd_sc_hd__clkbuf_16)
8 0.21 0.22 0.25 0.25 ^ clkbuf_0_clk/X (sky130_fd_sc_hd__clkbuf_16)
clknet_0_clk (net)
0.22 0.00 0.25 ^ clkbuf_3_3__f_clk/A (sky130_fd_sc_hd__clkbuf_16)
17 0.23 0.24 0.34 0.59 ^ clkbuf_3_3__f_clk/X (sky130_fd_sc_hd__clkbuf_16)
clknet_3_3__leaf_clk (net)
0.24 0.00 0.59 ^ clkbuf_leaf_47_clk/A (sky130_fd_sc_hd__clkbuf_16)
11 0.04 0.06 0.20 0.79 ^ clkbuf_leaf_47_clk/X (sky130_fd_sc_hd__clkbuf_16)
clknet_leaf_47_clk (net)
0.06 0.00 0.79 ^ dp.rf.rf[31][3]$_DFFE_PP_/CLK (sky130_fd_sc_hd__dfxtp_2)
3 0.01 0.03 0.32 1.11 v dp.rf.rf[31][3]$_DFFE_PP_/Q (sky130_fd_sc_hd__dfxtp_2)
dp.rf.rf[31][3] (net)
26
© 2024 Precision Innovations, do not copy or distribute without authorization.
Clock Tree Viewer
Open GUI
• gui::show
Enable “Clock Tree Viewer” if not
enabled
Clock tree viewer shows
latencies at all sinks
• Red sinks represent
FF/latches
• Green sinks represent
macros
• Insertion delays
are added to
macro sinks
27
© 2024 Precision Innovations, do not copy or distribute without authorization.
Outline
29
© 2024 Precision Innovations, do not copy or distribute without authorization.
Variability Considerations
31
© 2024 Precision Innovations, do not copy or distribute without authorization.