Clock Tree Synthesis (CTS) Interview Questions - Vlsi4freshers
Clock Tree Synthesis (CTS) Interview Questions - Vlsi4freshers
vlsi4freshers
vlsi4freshers December 30, 2019 Add Comment CTS , STA , STA Interview Questions
In this post I am writing some frequently asked Clock Tree Synthesis (CTS) Interview Questions
Q1. What is Clock Tree Synthesis (CTS)? Why do we need it?
CTS is insertion of buffers or inverter along the clock path to balance the clock delay to all the clock
inputs of different flops in the same design is called CTS.
Since some amount of delay is associated with every physical wire due to RC factor associated with it,
which results into clock not reaching to the clock pin of all the flops at same time in the design. So by
adding buffers/inverters, we try to maintain Zero skew (ideally impossible).
Selecting a set of particular buffers and inverter's plays a very important role, which decides the
performance of design.
If clock buffers are not selected correctly they may cause the clock pulse width to degrade as the clock propagates
through them.
CTS Goals
2. Power
3. Noise
Physical Design STA Frontend Design DFT Verification CMOS Basics Linux Basics
4. Delay
5. Electromigration
Q3. Why clock nets are given priority above other signal nets?
Since a significant fraction of power is consumed by clock network. In the design almost 50% of total
dynamic power is contributed by clock network.
It is intuitive since these buffers have highest toggle rate.
We have lots of clock buffers in the design.
All clock buffers we use are of high drive strengths.
Also, registers which are clocked dissipate some dynamic power even when input data is not changing.
Because all of above reasons, clock nets becomes more sensitive towards crosstalk and noise than normal signal
nets. Clock network works as central processing unit for the design and we need to provide a more robust clock
network to avoid noise crosstalk issues which may lead to unnecessary post CTS violations and in later route stage
(setup and hold time). So we do clock routing before signal routing.
Clock skew is the difference in clock arrival times at the different end points of the clock tree.
Local skew is the difference in the arrival of clock signal at the clock pin of related flops, which are
directly communicating to each other.
Global skew is the difference in the arrival of clock signal at the clock pin of non-related flops, which are
not communicating directly.
Positive Skew: When data and clock are routed in same direction then it is Positive skew i.e. If capture
clock comes late than launch clock. It can lead to hold violation but improves setup time.
Negative Skew: When data and clock are routed in opposite direction then it is negative skew. i.e. if
capture clock comes early than launch clock. It can lead to setup violation but improves hold time.
A clock is defined inside SDC file (Synopsys Design Constraint) provided by synthesis team.
Period
Clock source
Duty Cycle
Edge timing
Create_clock –name CLK –period 40 –waveform {0 10} [get_ports CLK]
A generated clock is a clock derived from a master clock by a circuit within the design itself, such as a
clock divider.These are divider/multiplier clocks which get generated from a master clock. Mostly these
are defined at the output of a clock divider like flip flop or mux. When we define a generated clock, its
source clock, the generation point, division ratio and uncertainty value should be provided.
Generated clocks can be also defined at any point, if we need to define some exception with respect to
this clock.
Q9. In which stage will you find the clock gating violations? Why in that stage?
Post CTS stage because before CTS we have ideal clock (with zero insertion delay and skew) so we
cannot have real results. During CTS stage only various clock cells comes into picture and their related
checks too. skew control between the clock gated and no clock gated cells is difficult. Clock gated path
takes more path delay compared to no clock gated path.
After CTS only we will have results with respect to real clock. Clock gating cells type depends on the
positive edge or negative edge triggered flip flop.
You could get some glitches in the gated clock if clock gating was not done properly.
Skew balancing. In fact gated and not gated circuits are not clocked at the same time because of the
delay overhead introduced by the circuit responsible of gating the clock.
Area increased.
Q11. Can we have latency or insertion delay more than clock period?
placement database
SDC, TLU+,.tf files
CTS constraint
Clock Spec file: list of clock buffers/inverters, CTS root pin, Max Skew, Max/Min Delay, Sink Max Tran/
Buff Max Tran.
Physical Design STA Frontend Design DFT Verification CMOS Basics Linux Basics
Clock tree exceptions through which we can control clock tree tracing or excluding particular pins
explicitly. Like LeafPin/Port, ExcludePin/Port, ThroughPin/Port, preservePin.
NDR’s :( Non Default Rules)
Double Width
Double Spacing
Shielding nets.
Delay Variation and OCV.
Q13. Why clock buffers and inverters should have equal rise and fall time?
Q15. What are the changes between the pre CTS and post CTS?
Clock propagation
Uncertainty values
IO delays
Disable timing constraints, False paths if timing violations occurs.
Q17. What are the NDR used for the clock tree?
Double spacing
Double width
Net shielding
Q18. Will you use the buffers or inverters for CTS and why?
Physical Design STA Frontend Design DFT Verification CMOS Basics Linux Basics
It depends on design requirement.After a series of experiments with different combinations of buffers and
inverters we can decide. In some cases we prefer mix of both buffer and inverter or only inverters in
another case. But if we have to select one among the two,answer will be inverter, because of below
properties of inverter than buffer.
Less area
Less power (dynamic as well as leakage current)
Less prone to OCV (process variation) due to less number transistors
High drive strength
Less delay, skew reduction because on less insertion delay because of the less inverter delay compared
to buffer delay.
Q19. Which metal did you use for the clock tree routing?
Next lower layer to the top two metal layers (global routing layers).
Because it has less resistance hence less RC delay.
Q20. What is OCV? How you control the OCV in clock paths?
OCV stands for on chip variation. Due to difference in PVT conditions (Process, Voltage, and
Temperature) for different devices at different locations over same die cause performance differences
which leads to OCV.
So required derating is applied to overcome this effect, by adding derating factor during skew
calculations.
Transistors located in close proximity on the same chip exhibit variation in their characteristics due to random
manufacturing variations in:
Set up violations are checked before CTS, while hold violations are checked after CTS because positive
clock skew helps setup. So if setup is cleared before CTS with an estimated skew, then mostly setup will
be clear with the actual value of skew calculated after CTS.
However in hold analysis skew increases the minimum logic delay required in the path. Since its work
against hold, hold analysis is performed after CTS when an accurate value of skew is known.
Fixing hold is easy compared to set up. Cell density may increases if we keep fixing from pre CTS stage
itself.