IP Library › Granted Patent US 10,073,944
Granted Patent B2
US 10,073,944 · App. 15/177,225 · Granted Sep 11, 2018

Clock tree synthesis based on computing critical clock latency probabilities

Inventors: Anand K. Rajaram (Austin, TX); Aiqun Cao (Sunnyvale, CA)
Assignee: Synopsys, Inc.
G06F17/5081G06F17/5072G06F17/505G06F17/5045G06F2217/62G06F2217/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,073,944
App. No.
15/177,225
Granted
Sep 11, 2018
Kind
B2
Abstract

Systems and techniques are described for context aware clock tree synthesis (CTS). A probability value can be computed for each clock sink in the set of clock sinks, wherein each probability value represents a probability that the corresponding clock sink has a critical clock latency. Next, the set of clock sinks can be clustered into a set of clock sink clusters based on the probability values. An optimization goal for each clock sink cluster can be selected, and an optimized subtree can be constructed for each clock sink cluster based on the selected optimization goal. The synthesized clock tree can be obtained by combining the optimized subtrees.

Claims (53)

1. A non-transitory computer-readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method for synthesizing a clock tree to distribute a clock signal to a set of clock sinks in a circuit design, the method comprising:

computing a probability value for each clock sink in the set of clock sinks in the circuit design, wherein each probability value represents a probability that the corresponding clock sink has a critical clock latency;

clustering the set of clock sinks into a set of clock sink clusters based on the probability values, wherein each clock sink cluster includes clock sinks whose probability values are within a specific range of probability values associated with the clock sink cluster;

selecting an optimization goal for each clock sink cluster based on the specific range of probability values associated with the clock sink cluster;

constructing an optimized subtree for each clock sink cluster based on the optimization goal that was selected for the clock sink cluster, wherein each optimized subtree distributes the clock signal to clock sinks in the corresponding clock sink cluster;

combining the optimized subtrees to obtain the clock tree for the circuit design; and

providing the circuit design to a next step in a circuit design and manufacturing process which, when completed, produces a better quality integrated circuit chip that contains the clock tree.

2. The non-transitory computer-readable storage medium of claim 1 , wherein computing the probability value for each clock sink in the set of clock sinks comprises:

constructing a temporary clock tree based on the set of clock sinks;

computing a clock latency for each clock sink in the set of clock sinks based on the temporary clock tree, wherein the clock latencies are computed by using an approximate timing model; and

computing the probability value for each clock sink in the set of clock sinks based on the computed clock latencies.

3. The non-transitory computer-readable storage medium of claim 1 , wherein clustering the set of clock sinks into the set of clock sink clusters based on the probability values comprises comparing the probability values with one or more threshold values that define two or more specific ranges of probability values.

4. The non-transitory computer-readable storage medium of claim 1 , wherein the optimization goal is to minimize area.

5. The non-transitory computer-readable storage medium of claim 1 , wherein the optimization goal is to minimize clock latency.

6. The non-transitory computer-readable storage medium of claim 1 , wherein the method further comprises:

receiving an activity ratio for each clock sink in the set of clock sinks, wherein each activity ratio represents a percentage of time that the corresponding clock sink is expected to be active; and

placing integrated clock gating (ICG) cells in the clock tree based on the activity ratios.

7. An integrated circuit (IC) design system, comprising:

a processor; and

a non-transitory computer-readable storage medium storing instructions that, when executed by the processor, cause the IC design system to perform a method for synthesizing a clock tree to distribute a clock signal to a set of clock sinks in a circuit design, the method comprising:

computing a probability value for each clock sink in the set of clock sinks in the circuit design, wherein each probability value represents a probability that the corresponding clock sink has a critical clock latency;

clustering the set of clock sinks into a set of clock sink clusters based on the probability values, wherein each clock sink cluster includes clock sinks whose probability values are within a specific range of probability values associated with the clock sink cluster;

selecting an optimization goal for each clock sink cluster based on the specific range of probability values associated with the clock sink cluster;

constructing an optimized subtree for each clock sink cluster based on the optimization goal that was selected for the clock sink cluster, wherein each optimized subtree distributes the clock signal to clock sinks in the corresponding clock sink cluster;

combining the optimized subtrees to obtain the clock tree for the circuit design; and

providing the circuit design to a next step in a circuit design and manufacturing process which, when completed, produces a better quality integrated circuit chip that contains the clock tree.

8. The IC design system of claim 7 , wherein computing the probability value for each clock sink in the set of clock sinks comprises:

constructing a temporary clock tree based on the set of clock sinks;

computing a clock latency for each clock sink in the set of clock sinks based on the temporary clock tree, wherein the clock latencies are computed by using an approximate timing model; and

computing the probability value for each clock sink in the set of clock sinks based on the computed clock latencies.

9. The IC design system of claim 7 , wherein clustering the set of clock sinks into the set of clock sink clusters based on the probability values comprises comparing the probability values with one or more threshold values that define two or more specific ranges of probability values.

10. The IC design system of claim 7 , wherein the optimization goal is to minimize area.

11. The IC design system of claim 7 , wherein the optimization goal is to minimize clock latency.

12. The IC design system of claim 7 , wherein the method further comprises:

receiving an activity ratio for each clock sink in the set of clock sinks, wherein each activity ratio represents a percentage of time that the corresponding clock sink is expected to be active; and

placing integrated clock gating (ICG) cells in the clock tree based on the activity ratios.

13. A method for synthesizing a clock tree to distribute a clock signal to a set of clock sinks in a circuit design, the method comprising:

computing, by using a computer, a probability value for each clock sink in the set of clock sinks in the circuit design, wherein each probability value represents a probability that the corresponding clock sink has a critical clock latency;

clustering the set of clock sinks into a set of clock sink clusters based on the probability values, wherein each clock sink cluster includes clock sinks whose probability values are within a specific range of probability values associated with the clock sink cluster;

selecting an optimization goal for each clock sink cluster based on the specific range of probability values associated with the clock sink cluster;

constructing an optimized subtree for each clock sink cluster based on the optimization goal that was selected for the clock sink cluster, wherein each optimized subtree distributes the clock signal to clock sinks in the corresponding clock sink cluster;

combining the optimized subtrees to obtain the clock tree for the circuit design; and

providing the circuit design to a next step in a circuit design and manufacturing process which, when completed, produces a better quality integrated circuit chip that contains the clock tree.

14. The method of claim 13 , wherein computing the probability value for each clock sink in the set of clock sinks comprises:

constructing a temporary clock tree based on the set of clock sinks;

computing a clock latency for each clock sink in the set of clock sinks based on the temporary clock tree, wherein the clock latencies are computed by using an approximate timing model; and

computing the probability value for each clock sink in the set of clock sinks based on the computed clock latencies.

15. The method of claim 13 , wherein clustering the set of clock sinks into the set of clock sink clusters based on the probability values comprises comparing the probability values with one or more threshold values that define two or more specific ranges of probability values.

16. The method of claim 13 , wherein the optimization goal is to minimize area.

17. The method of claim 13 , wherein the optimization goal is to minimize clock latency.

18. The method of claim 13 , wherein the method further comprises:

receiving an activity ratio for each clock sink in the set of clock sinks, wherein each activity ratio represents a percentage of time that the corresponding clock sink is expected to be active; and

placing integrated clock gating (ICG) cells in the clock tree based on the activity ratios.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2016
From: RAJARAM, ANAND K.; CAO, AIQUN
To: SYNOPSYS
Reel/Frame 039562/0951 →
Continuity (1)
Related Publication 20170357746A1 · Dec 14, 2017
Cited By (2)
US 12,430,489 US 12,535,850