IP Library Granted Patent US 9,607,122
Granted Patent B2
US 9,607,122 · App. 14/168,363 · Granted Mar 28, 2017

Timing driven clock tree synthesis

Inventor: Vincent Le Bars (Newark, CA)
Assignee: Mentor Graphics Corporation
G06F17/5081
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 9,607,122
App. No.
14/168,363
Granted
Mar 28, 2017
Kind
B2
Abstract

This application discloses performing a static timing analysis on a circuit design with an unbalanced clock tree, for example, to determine data arrival timing and clock arrival timing at multiple clock-driven circuits in a circuit design, and then performing clock tree synthesis on the circuit design to initially balance the unbalanced clock tree based, at least in part, on the data arrival timing relative to the clock arrival timing at the multiple clock-driven circuits. The clock tree after initial balancing includes a clock signal path configured to provide a clock signal to each of the multiple clock-driven circuits with a new clock arrival timing that corresponds to the data arrival timing.

Claims (29)

1. A method comprising:

determining, by a computing system, data arrival timing and clock arrival timing at multiple clock-driven circuits in a circuit design describing at least a portion of an electronic device; and

performing, by the computing system, clock tree synthesis (CTS) on the circuit design, which synthesizes an unbalanced clock tree for the circuit design and utilizes the data arrival timing relative to the clock arrival timing at the multiple clock-driven circuits to initially balance the unbalanced clock tree for the circuit design, wherein the initial balancing of the unbalanced clock tree alters a clock signal path in the unbalanced clock tree to provide a clock signal to each of the multiple clock-driven circuits with a new clock arrival timing that is synchronized with the data arrival timing for the multiple clock-driven circuits, and wherein the electronic device is capable of being manufactured based, at least in part, on the circuit design.

2. The method of claim 1 , wherein performing clock tree synthesis (CTS) for the circuit design further comprising:

establishing, by the computing system, multiple branches for the clock signal path to couple a clock source device in the circuit design to each of the multiple clock-driven circuits; and

inserting, by the computing system, buffers into the clock signal path to selectively delay the clock signal through different branches of the clock signal path.

3. The method of claim 1 , wherein performing clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design is based, at least in part, on a total negative slack (TNS).

4. The method of claim 1 , wherein performing clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design is based, at least in part, on a total hold slack (THS).

5. The method of claim 1 , wherein determining the data arrival timing at multiple clock-driven circuits further comprising:

performing, by the computing system, static timing analysis (STA) on the circuit design having an unbalanced clock tree; and

determining, by the computing system, propagation delays in data paths between the multiple clock-driven circuits based on the static timing analysis, wherein the data arrival timing at the multiple clock-driven circuits is based, at least in part, on the propagation delays in the data paths between the multiple clock-driven circuits.

6. The method of claim 1 , wherein performing clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design is independent of skew resulting from non-synchronous arrival times for the clock signals at the multiple clock-driven circuits.

7. A system comprising:

a static timing analysis tool configured to determine data arrival timing and clock arrival timing at multiple clock-driven circuits in a circuit design describing at least a portion of an electronic device; and

a clock tree synthesis unit configured to perform clock tree synthesis (CTS) on the circuit design, which synthesizes an unbalanced clock tree for the circuit design and utilizes the data arrival timing relative to the clock arrival timing at the multiple clock-driven circuits to initially balance an unbalanced clock tree for the circuit design, wherein the initial balancing of the unbalanced clock tree alters a clock signal path in the unbalanced clock tree to provide a clock signal to each of the multiple clock-driven circuits with a new clock arrival timing that is synchronized with the data arrival timing for the multiple clock-driven circuits, and wherein the electronic device is capable of being manufactured based, at least in part, on the circuit design.

8. The system of claim 7 , wherein the clock tree synthesis unit is configured to establish multiple branches for the clock signal path to couple a clock source device in the circuit design to each of the multiple clock-driven circuits, and insert buffers into the clock signal path to selectively delay the clock signal through different branches of the clock signal path.

9. The system of claim 7 , wherein the clock tree synthesis unit is configured to perform the clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design based, at least in part, on a total negative slack (TNS).

10. The system of claim 7 , wherein the clock tree synthesis unit is configured to perform the clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design based, at least in part, on a total hold slack (THS).

11. The system of claim 7 , wherein static timing analysis tool is configured to perform static timing analysis (STA) on the circuit design having an unbalanced clock tree and determine propagation delays in data paths between the multiple clock-driven circuits based on the static timing analysis, and wherein the data arrival timing at the multiple clock-driven circuits is based, at least in part, on the propagation delays in the data paths between the multiple clock-driven circuits.

12. An apparatus comprising at least one computer-readable memory device storing instructions configured to cause one or more processing devices to perform operations comprising:

generating an unbalanced clock tree for a circuit design describing at least a portion of an electronic device; and

performing clock tree synthesis (CTS) on the circuit design, which synthesizes an unbalanced clock tree for the circuit design and utilizes data arrival timing relative to clock arrival timing at multiple clock-driven circuits in the circuit design having the unbalanced clock tree to initially balance the unbalanced clock tree for the circuit design, wherein the initial balancing of the unbalanced clock tree alters a clock signal path in the unbalanced clock tree to provide a clock signal to each of the multiple clock-driven circuits with a new clock arrival timing that is synchronized with the data arrival timing for the multiple clock-driven circuits, and wherein the electronic device is capable of being manufactured based, at least in part, on the circuit design.

13. The apparatus of claim 12 , wherein performing clock tree synthesis (CTS) for the circuit design further comprising:

establishing multiple branches for the clock signal path to couple a clock source device in the circuit design to each of the multiple clock-driven circuits; and

inserting buffers into the clock signal path to selectively delay the clock signal through different branches of the clock signal path.

14. The apparatus of claim 12 , wherein performing clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design is based, at least in part, on a total negative slack (TNS).

15. The apparatus of claim 12 , wherein performing clock tree synthesis (CTS) that initially balances the unbalanced clock tree for the circuit design is based, at least in part, on a total hold slack (THS).

16. The apparatus of claim 12 , wherein the instructions configured to cause one or more processing devices to perform operations further comprising performing static timing analysis (STA) on the circuit design having the unbalanced clock tree to determine the data arrival timing and the clock arrival timing at the multiple clock-driven circuits.

17. The apparatus of claim 12 , wherein performing clock tree synthesis (CTS) describing at least a portion of an electronic device for the circuit design is independent of skew resulting from non-synchronous arrival times for the clock signals at the multiple clock-driven circuits.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Jun 28, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056696/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2014
From: LE BARS, VINCENT
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 033981/0442 →
Continuity (1)
Related Publication 20150213186A1 · Jul 30, 2015