L15_CTS_3
L15_CTS_3
Bach Luong
Tresemi
Bach Luong
Tresemi
Data Import
• Introduction
Floor • Objectives
Planning
• Inputs
• PreCTS Sanity Checks
• CTS Terminologies
Placement • CTS Exceptions
• CTS Spec
• Type of Clock Trees
• CTS Optimization Techniques
CTS
• CTS
• Post CTS optimization
• CTS Outputs
Routing • Review and Qualify CTS Results
Data Export
Data Import
Virtual clock
• Is a clock without any clock source
Floor • Clock that has been defined without any association with any clock port or pin.
Planning
• Does not exist physically in the design
• Is used as a reference to constrain the interface timing paths (input and output delays)
• User can define desired latency
Placement
CTS
Routing
Data Export
Data Import
Generated clock
• Is derived from a master clock
Floor • Master clock is a clock associate with a clock port or pin
Planning
• Is a multiple division of a master clock
Placement
CTS
z
Routing
Data Export
Data Import
Buffer vs Inverter based clock trees
Buffer based clock tree
Floor • Buffer is consisted of two inverters connected back to back
Planning • High power consumption
• Sensitive to OCV
• More area
Placement
CTS
Routing
• To have the equal pulse widths for high and low times, the RC delay observed by the first inverter must be
equal to the RC delay of the second inverter.
Data Export
Data Import
Buffer vs Inverter based clock trees
Inverter based clock tree
Floor • Maintaining duty cycle
Planning
• Better OCV tolerance
• Lower power consumption
• Less area
Placement
CTS
Routing
Data Export
Data Import
• Buffering
Floor
Planning • Cell Sizing
• Cloning
Data Export
Data Import
Floor
Planning
• Buffering
• Cell Sizing
Placement
•
INV2X INV4X
Cloning
CTS
• VT- Swapping
Routing
Power
High VT Standard VT Low VT
Delay
Data Export
Data Import
Cell Relocation
• Moving or adjusting the location of cells to balance output load
Floor
Planning
Placement
CTS
Routing
Data Export
Data Import
Level Adjustment
• Move or adjust sinks (FF) level to balance out clock tree sinks
Floor
Planning
Placement
CTS
Routing
Data Export
Data Import
Dummy Load Insertion
• Add a dummy load on different branches of to clock tree to balance their loadings.
Floor • Add to shortest delay path
Planning
Placement
CTS
Data Import
Load Splitting
• Process of inserting buffers to split the fanout loads and resize the
Floor current driver to meet CTS and DRV constraints
Planning
Placement
Routing
Data Import
Useful Skew
• Skew that can be intentionally introduce to fix setup or hold time violations
by adding or removing buffers in the clock paths
Floor
Planning
Placement
CTS
Data Import
Useful Skew
• Since FF2-> FF3 has 3ns of useful skew, we can make use of this useful skew for FF1->FF2
by adding 2ns delay to Clock path of FF2 to remove the setup timing violation in FF1->FF2 path
Floor
Planning
2ns
Placement
CTS
Data Import
• Introduction
Floor • Objectives
Planning
• Inputs
• PreCTS Sanity Checks
• CTS Terminologies
Placement • CTS Exceptions
• CTS Spec
• Type of Clock Trees
• CTS Optimization Techniques
CTS
• CTS
• Post CTS optimization
• CTS Outputs
Routing • Review and Qualify CTS Results
Data Export
Data Import
• Clustering
Floor o Build clock tree based on DRV constraints
Planning
• Balancing
o Balance skew per skew group
Placement o Repeat until skew target is met or exhausted
• Routing clock tree
o All clock nets get detail routed
CTS
• Post Conditioning
o Fix minor timing violations
Routing
Data Export
Data Import
Clustering
• Step where CTS tool group related clock sinks (FFs) into a clusters
• Each cluster represent a group of sequential cells that share the same clock source
Floor • Clustering help optimize the clock tree by minimizing clock skew and insertion delay
Planning • During this process, a clock tree are built based on DRV rules
• CTS tool build clock tree and place clock drivers at certain location/distance
based on CTS DRV constraints max capacitance load, max fanout, max transition
• At the end of Clustering stage, tool reports the number of buffers/inverters, icg cells are added.
Placement
Three type of clustering
• Top-Down Clustering: Starts with a single cluster containing all sinks and recursively
splits it into smaller clusters.
CTS • Bottom-Up Clustering: Begins with individual sinks and merges them into larger clusters.
• Iterative Clustering: Combines top-down and bottom-up approaches iteratively.
clk1 clk2 clk3 clk4
Routing
Data Export
Data Import
Clustering log
Floor
Planning
Placement
CTS
Routing
Data Export
Data Import
Balancing
• During this process, clock tree skew will be balanced
• Tool will balance clock skew per skew group constraints
Floor • Tool will repeat this step until clock skew per groups are met
Planning or already exhausted all options.
CTS
Routing
Data Export
Data Import
Balancing log
Floor
Planning
Placement
CTS
Routing
Data Export
Data Import
Routing Clock Tree
• During this process, clock tree will be detail routed.
• Tool will route all clock nets in the design
Floor
• All clock nets NDR rules will be obeyed
Planning
• Clock nets are normally routed in higher metal layers
Placement
CTS
Routing
Data Export
Data Import
Routing Clock Tree log
Floor
Planning
Placement
CTS
Routing
Data Export
Data Import
Post Conditioning
• Clocks are now propagated (with real delay)
• Fine tune skew
Floor
• This step fix minor timing and drv violations after clock routing
Planning
• These new violations arises as the result of newly routed clock nets, which cause degradation in timing, drv.
Placement
CTS
cppr adjust
Data Export
Data Import
Post Conditioning log
Floor
Planning
Placement
CTS
Routing
Data Export
▪ vlsi-backend-adventure.com
▪ teamvlsi.com
▪ vlsi-soc.blogspot.com
▪ www.researchgate.net
▪ www.semanticscholar.org
▪ vlsitalks.com
▪ www.vlsi-expert.com
▪ https://www.slideserve.com/
▪ https://semiengineering.com/
▪ https://www.techsimplifiedtv.in/
▪ https://vlsimaster.com/
▪ Cadence RAK