IP Library Granted Patent US 8,677,305
Granted Patent B2
US 8,677,305 · App. 13/488,065 · Granted Mar 18, 2014

Designing a robust power efficient clock distribution network

Inventors: Charles Jay Alpert (Austin, TX); Joseph Nicolas Kozhaya (Morrisville, NC); Zhuo Li (Cedar Park, TX); Joseph J Palumbo (Poughkeepsie, NY); Haifeng Qian (White Plains, NY); Phillip John Restle (Katonah, NY); Chin Ngai Sze (Austin, TX); Ying Zhou (Austin, TX)
Assignee: International Business Machines Corporation
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 8,677,305
App. No.
13/488,065
Granted
Mar 18, 2014
Kind
B2
Abstract

An electronic automation design tool with a sink locator unit creates clusters of loads from a plurality of loads within a sector of a clock network design based on balancing magnitudes of the loads among the clusters of loads and based on minimal delays of each of the clusters and respective ones of a plurality of sink locations in the sector of the clock network design. The tool determines centers of the clusters of loads, and sink locations corresponding to the centers of the clusters for connecting output terminal points of sector buffers are determined. Each of the sector buffers drive a clock signal to a corresponding one of the clusters of loads.

Claims (37)

1. A method comprising:

determining, within a sector in a clock network design, a plurality of initial sink locations for connection of output terminal points of sector buffers, wherein the sector comprises a plurality of loads;

balancing, by a computer, the plurality of loads across the plurality of initial sink locations based, at least in part, on magnitude of the loads and delays of paths between the loads and the plurality of initial sink locations, wherein said balancing the plurality of loads across the plurality of initial sink locations yields clusters of loads from the plurality of loads;

wherein said balancing the plurality of loads across the plurality of initial sink locations based, at least in part, on magnitude of the loads and delays of paths between the loads and the plurality of initial sink locations comprises:

for each of the initial sink locations,

selecting an unassociated load of the plurality of loads based on a magnitude of the unassociated load of the plurality of loads and a sum of magnitudes of associated loads of the plurality of loads for each of the other sink locations, and based on delays of paths from unassociated loads of the plurality of loads to the initial sink location, wherein the unassociated load of the plurality of loads are loads not associated with the plurality of initial sink locations and the associated loads of the plurality of loads are associated with the other sink locations of the plurality of sink locations; and

for each of the clusters of loads,

determining a center sink location that is at least approximately at a center of the cluster of loads; and

indicating a final sink location based on the center sink location, wherein the final sink location is a connection for an output terminal point of a sector buffer that drives a clock signal to the loads of the cluster of loads.

2. The method of claim 1 further comprising:

using the center sink locations of each of the clusters of loads as initial sink locations;

balancing the plurality of loads across the center sink locations based, at least in part, on magnitude of the loads and delays of paths between the loads and the center sink locations, wherein said balancing the plurality of loads across the center sink locations yields second clusters of loads from the plurality of loads;

for each cluster of the second clusters of loads,

determining a second center sink location that is at least approximately at a center of the cluster of the second cluster of loads;

wherein said indicating the final sink location based on the center sink location comprises selecting the second center sink location as the final sink location for the cluster of the second clusters of loads.

3. The method of claim 1 , wherein said determining the center sink location that is at least approximately at the center of the cluster of loads for each of the clusters of loads comprises selecting the center sink location from a plurality of candidate sink locations within the cluster of loads.

4. The method of claim 3 , wherein said selecting the center sink location from a plurality of candidate sink locations within the cluster of loads comprises determining a minimum of one of a summation, maximum, or standard deviation of delays on the paths to the loads from each of the plurality of candidate sink locations.

5. The method of claim 1 , wherein said determining the center sink location that is at least approximately at the center of the cluster of loads for each of the clusters of loads comprises determining a geometric center of the cluster.

6. A computer program product for clock network design, the computer program product comprising:

a non-transitory computer readable storage medium having computer usable program code embodied therewith, the computer usable program code comprising a computer usable program code configured to:

determine, within a sector in a clock network design, a plurality of initial sink locations for connection of output terminal points of sector buffers, wherein the sector comprises a plurality of loads;

balance the plurality of loads across the plurality of initial sink locations based, at least in part, on magnitude of the loads and delays of paths between the loads and the plurality of initial sink locations, wherein the computer usable program code configured to balance the plurality of loads across the plurality of initial sink locations yields clusters of loads from the plurality of loads;

wherein said balancing the plurality of loads across the plurality of initial sink locations based, at least in part, on magnitude of the loads and delays of paths between the loads and the plurality of initial sink locations comprises:

for each of the initial sink locations,

selecting an unassociated load of the plurality of loads based on a magnitude of the unassociated load of the plurality of loads and a sum of magnitudes of associated loads of the plurality of loads for each of the other sink locations, and based on delays of paths from unassociated loads of the plurality of loads to the initial sink location, wherein the unassociated load of the plurality of loads are loads not associated with the plurality of initial sink locations and the associated loads of the plurality of loads are associated with the other sink locations of the plurality of sink locations; and

for each of the clusters of loads,

determine a center sink location that is at least approximately at a center of the cluster of loads; and

indicate a final sink location based on the center sink location, wherein the final sink location is a connection for an output terminal point of a sector buffer that drives a clock signal to the loads of the cluster of loads.

7. The computer program product of claim 6 further comprising computer usable program code configured to:

use the center sink locations of each of the clusters of loads as initial sink locations;

balance the plurality of loads across the center sink locations based, at least in part, on magnitude of the loads and delays of paths between the loads and the center sink locations, wherein the computer usable program code configured to balance the plurality of loads across the center sink locations yields second clusters of loads from the plurality of loads;

for each cluster of the second clusters of loads,

determine a second center sink location that is at least approximately at a center of the cluster of the second cluster of loads;

wherein the computer usable program code configured to indicate the final sink location based on the center sink location comprises the computer usable program code configured to select the second center sink location as the final sink location for the cluster of the second clusters of loads.

8. The computer program product of claim 6 , wherein the computer usable program code configured to determine the center sink location that is at least approximately at the center of the cluster of loads for each of the clusters of loads comprises the computer usable program code configured to select the center sink location from a plurality of candidate sink locations within the cluster of loads.

9. The computer program product of claim 8 , wherein the computer usable program code configured to select the center sink location from a plurality of candidate sink locations within the cluster of loads comprises the computer usable program code configured to determine a minimum of one of a summation, maximum, or standard deviation of delays on the paths to the loads from each of the plurality of candidate sink locations.

10. The computer program product of claim 6 , wherein the computer usable program code configured to determine the center sink location that is at least approximately at the center of the cluster of loads for each of the clusters of loads comprises the computer usable program code configured to determine a geometric center of the cluster.

Assignments (4)
RELEASE OF SECURITY INTEREST Recorded May 12, 2021
From: WILMINGTON TRUST, NATIONAL ASSOCIATION
To: GLOBALFOUNDRIES U.S. INC.
Reel/Frame 056987/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2015
From: GLOBALFOUNDRIES U.S. 2 LLC; GLOBALFOUNDRIES U.S. INC.
To: GLOBALFOUNDRIES INC.
Reel/Frame 036779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2015
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: GLOBALFOUNDRIES U.S. 2 LLC
Reel/Frame 036550/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 5, 2012
From: ALPERT, CHARLES J.; KOZHAYA, JOSEPH N.; LI, ZHUO; PALUMBO, JOSEPH J.; QIAN, HAIFENG; RESTLE, PHILIP J.; SZE, CHIN N.; ZHOU, YING
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 028318/0018 →
Continuity (1)
Related Publication 20130326456A1 · Dec 5, 2013