Beruflich Dokumente
Kultur Dokumente
Introduction
The goal of Clock Tree Synthesis (CTS) is to buffer clock signals from their root to all the leaf pins, while
meeting your design requirements which may include skew, delay, transition, fanout, power and others.
The clock tree specification file defines these constraints along with other directions to instruct CTS how
to build the clock tree. Once CTS is complete, additional optimization can be performed to improve skew
and latency. Lastly, EDI System provides several clock reporting and analysis tools and commands for
debugging.
Where CTS is used in the flow:
Procedure
Create the CTS Specification File
Create the CTS specification file using the command createClockTreeSpec. The SDCs used to generate the
CTS spec file are:
GlobalExcludedPin/GlobalExcludedPort
+ u0/CK CK pin on instances u0 (of DFFRX1) have been declared as excluded pins.
+ DFFRX1/CK This will exclude the CK pin of all DFFRX1 instances from clock tree.
CTS would not to trace or do any skew analysis to this pin specified.
The ckECO command also supports local skew optimization (with the -localSkew parameter). Local skew
optimization considers the skew between adjacent flip-flops that have data path connection (from a Q-pin
of one flip-flop to the D-pin of another flipflop).
Below are the options to control the behavior of the ckECO.
-preRoute: Used when there is no license to run NanoRoute; or their flow is to build the clock tree,
optimize clock tree, and then call another router to route the clock net.
-clkRouteOnly: To use immediately after the clock tree is routed.
-postRoute: To use after all signal nets are routed.
Examples
Below is an example CTS flow including steps where you would run ckECO. The flow assumes the clock is
routed during CTS.
# Specify the CTS mode settings. For example, specify the preferred layers
# to use and create extra spacing around the clock net to minimize noise:
setCTSMode -bottomPreferredRouteLayer 5 -topPreferredRouteLayer 6
setCTSMode -routePreferredExtraSpace 2
# Instruct CTS to output verbose information for debugging:
setCTSMode -verbose true
# Create the clock tree specification file:
createClockTreeSpec -file constraints.cts -bufferList {CLKBUFX12 CLKBUFX16 CLKBUFX20 CLKINVX12
CLKINVX16 CLKINVX20}
# Run clock tree synthesis using clockDesign.
# - Use the -clk option to only synthesize specified clocks.
# - Use -outDir to specify where to output the report file.
clockDesign -specFile constraints.cts
# Optimize the clock skew of the clock tree after CTS (optional).
setCTSMode -top true
setCTSMode -optAddBuffer true
ckECO -clkRouteOnly
# Perform Post-CTS timing optimization
# Fix clock tree DRVs and Optimize the skew of the clock tree
# after Post-CTS Optimization (optional):
ckECO -fixDRVOnly
ckECO -postCTS
# Perform signal routing