CTS Spec File

CTS Spec File

CTS spec file contains the below information:

1. Inverters or buffers to be defined which will be used to balance the clock tree.
2. CTS Exceptions (End points of clock tree).
3. Skew group information.
4. Contains target Skew, max target transition and other timing constraints as per clock tree.
5. Top layer and bottom layer route info. VIA’s information which will be used during clock route.
6 Clock related info (Generated clocks {Eg. Clock divider, Clock multiplier etc}).
7 NDR Rule definition.

1. Inverters or buffers to be defined which will be used to balance clock tree:

When I was in the early stage of VLSI industry, I always thought that buffer is the only element which is used for the clock balancing but when I worked on designs, I saw that Inverter plays a very important role in balancing. So, we can say that while balancing the clock tree, we can use both buffer and inverter. Normally inverter is used more in the design. Before understanding why inverter is better than buffer, first we need to recall the difference between a buffer and an inverter. (This might be an interview question and I have asked this to many candidates)

Buffer is basically two inverters connected back to back. So, wherever we need to use one buffer, we can split that buffer into two inverter which balances better in terms of transition and consumes less power and area. For example, if we need 30 buffers to balance a tree and these are back to back connected, then in this case, we can use 60 inverters instead of 30 buffers. But practically we don’t need 60 cells, so our requirement can be met within 30-40 inverters. This way we can save power and area along with making transition better for clock.


2. CTS Exceptions (End points of clock tree):

There are many points present in the design after which we don’t need clock tree propagation. So to avoid unnecessary buffering, we can ask the tool not to go for balancing further to these points.

3. Skew group information:

There are millions of sink pins which we need to balance in the design. There might be a case where design is huge, and we will have high latency. So to avoid this, we create skew group. We will talk more details on creating and executing skew group later in this section.

4. Contains target Skew, max target transition and other timing constraints as per clock tree.

Spec file contains the skew values defined, max and min transition of the clocks along with other timing constraint.

5. Top layer and bottom layer route info. VIA’s info which will be used during clock route.

While creating clock tree, we need to route the clock. So we need to define the routing layers. Generally we choose top metal layers for clock routing as these metal layers have lower resistance as compared to lower metal layers.

6. Clock related information (Generated clocks {Eg. Clock divider, Clock multiplier etc.})

If we have missed defining generated clock in the SDC, we can define it here while balancing the clock.

7. NDR Rule definition:

Clock nets are very sensitive and impacts timing if it changes a little. We already have default rule present in the design but if we route with default rule, we might have many issues like crosstalk, transition violations, min pulse width issues at the end. To avoid all these issues in later ECO stages, we define the NDR rule. Non-Default Rule (NDR) means that other than default rule, it contains some user defined routing rule like Double-Width Double Spacing, single width double spacing etc.




    • Skew grouping the term we use during the CTS stage of skew balancing, where a set of registers are being balanced within, hence we create a skew group wrt to a clock. I hope this clarifies. I will write a few experiments on CTS on the latest 5nm projects wrt skew group. Till then keep learning. Thanks!!!

        • Hi Arun,

          Alone inverter or buffer are never recommended but again this depends upon the design requirement. TO answer your question, CTS with only buffers will increase the area and power, on the other hand, if CTS with the only inverter might result in extra cells in the design. I hope this is clear.


  1. In some cases, buffer is not 2 inverters back to back. The first inverter is sized down to save area and second inverter is sized up to improve drive strength. Because of this using a buffer will result in rise and fall transition times to be unequal because of difference in resistance of PMOS and NMOS. This can be made better by using special cells called clock buffers in which beta ratio is adjusted so that rise and fall times are the same but results in higher area and power.

Leave a Reply