US5963728A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Method to partition clock sinks into nets
Assignee: International Business Machines Corp
•
Filing: 1996-08-14
•
Granted: 1999-10-05
•
Expires: 2016-08-14
Abstract
Abstract A method of designing the clocking circuitry of an integrated circuit chip. The load sinks are assigned to clock nets, each clock net having less then a maximum load. The first step is selecting a pair of clock nets for improvement. Next, a subset of the load sinks of the pair of clock nets are assigned to each clock net. Thereafter, the unassigned load sinks are assigned in all possible combinations to each of the pair of clock nets. A penalty function for each load sink assignment, and the assignment having the best penalty function is kept.
Inventors
- 👤 David James Hathaway
- 👤 Roger Sherman Rutter
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-27 11:23
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/39; G06F30/394
Claims Analysis
Total Claims: 21
Claim 1
Independent Claim
156 words
A method of designing the clocking circuitry of an integrated circuit chip having a plurality of separate clock nets and a plurality of sinks, comprising the steps of: making an initial assignment of a sink to one of two or more separate clock nets of said integrated circuit chip; selecting two of said clock nets including all sinks assigned to either of said two clock nets; removing said all assigned sinks from said two selected clock nets, and re-assigning each of less than said all sinks, to one or the other of said two selected clock nets; thereafter, forming all possible combinations of re-assigning each of the remaining sinks of said all sinks, to one or the other of said two selected clock nets; computing the value of a penalty function for each of said all possible combinations of assignment; and keeping that said combination of assignment having the best computed value of said penalty function.
Claim 2
Independent Claim
156 words
A method of designing the clocking circuitry of an integrated circuit chip having a plurality of separate clock nets and a plurality of sinks, comprising the steps of: making an initial assignment of a sink to one of two or more separate clock nets of said integrated circuit chip; selecting two of said clock nets including all sinks assigned to either of said two clock nets; removing said all assigned sinks from said two selected clock nets, and re-assigning each of less than said all sinks, to one or the other of said two selected clock nets; thereafter, forming all possible combinations of re-assigning each of the remaining sinks of said all sinks, to one or the other of said two selected clock nets; computing the value of a penalty function for each of said all possible combinations of assignment; and keeping that said combination of assignment having the best computed value of said penalty function.
Claim 3
Dependent Claim
132 words
The method of claim 1 wherein the step of making an initial assignment further comprises the steps of: assigning a first sink to a first clock net; assigning to said first clock net a subsequent sink which is closest to the sinks already assigned to said first clock net and repeating until the total number of sinks exceeds an upper limit; thereafter, removing the last assigned sink from said first clock net, starting a second clock net, and assigning said last assigned sink to said second clock net; and continuing to assign subsequent sinks which are closest to the set of sinks already assigned to a clock net, starting new clock nets as the total number of sinks in a net exceeds said upper limit, until said each sink has been assigned.
Claim 4
Dependent Claim
181 words
The method of claim 1 wherein the step of making an initial assignment further comprises the steps of: constructing a geometric tree structure having subtrees and tree nodes, said structure containing each sink, and marking each tree node of said geometric tree structure with the estimated load of all sinks in the subtrees rooted at said tree node; inserting subtree nodes rooted at the root of said geometric tree structure into a heap data structure sorted by said estimated loads; removing the highest estimated load subtree node from said heap data structure, dividing said subtree node into further subtree nodes rooted at said highest estimated load subtree node, and inserting said divided subtree nodes in said sorted heap data structure; repeating said removing, dividing, and inserting of the previous step until a desired number of subtree nodes are inserted in said heap; and designating each of said desired number of subtree nodes in said heap as a clock net with the sinks in each of said desired number of subtree nodes taken as said initial assignment of sinks to clock nets.
Claim 5
Dependent Claim
16 words
The method of claim 3 wherein said geometric tree structure is constructed as a k-D tree.
Claim 6
Dependent Claim
15 words
The method of claim 3 wherein said geometric tree structure is constructed as a quad-tree.
Claim 7
Dependent Claim
22 words
The method of claim 1 further comprising selecting two of said clock nets having the shortest distance between said two clock nets.
Claim 8
Dependent Claim
18 words
The method of claim 1 wherein the number of said remaining sinks is less than a pre-specified number.
Claim 9
Dependent Claim
22 words
The method of claim 7 further comprising selecting two of said clock nets having the shortest distance between said two clock nets.
Claim 10
Dependent Claim
240 words
The method of claim 1, further comprising the steps of: after said keeping said combination step, determining a required number of clock nets for said integrated circuit chip to meet a load-per-clock-net target; thereafter, either adding additional clock nets and re-assigning sinks from said two or more clock nets to said additional clock nets until said required number of clock nets is reached or a first stopping criteria is met, or deleting clock nets and re-assigning sinks from said deleted clock nets to remaining clock nets until said required number of clock nets is reached or a second stopping criteria is met; thereafter, dividing said integrated circuit chip into regions of two or more clock nets each so that each clock net lies within a region; determining a required number of clock nets for each said region to meet said load-per-clock-net target; and for each said region, either adding additional clock nets and re-assigning sinks from said two or more clock nets within said each region to said additional clock nets added to said each region until said required number of clock nets for said each region is reached or said first stopping criteria is met, or deleting clock nets from said each region and re-assigning sinks from said deleted clock nets to remaining clock nets in said each region until said required number of clock nets for said each region is reached or said second stopping criteria is met.
Claim 11
Dependent Claim
54 words
The method of claim 9 wherein said required number of clock nets for said integrated circuit chip is determined from the formula: Nr=Ct/Cr where Nr is said required number of clock nets, Ct is a sum of all loads of all clock nets on said integrated circuit chip, and Cr is said load-per-clock-net target.
Claim 12
Dependent Claim
138 words
The method of claim 9 wherein said integrated circuit chip is divided into first and second regions and said required number of clock nets for each of said first and second regions is determined from the formulas: Nr1=Nc1+(Ct1*(Nc2+Nr-Nc)-Ct2*Nc1)/(Ct1+Ct2) and Nr2=Nr-Nr1 where Nr1 and Nr2 are said required number of clock nets for said first and second regions respectively, Nc1 and Nc2 are the number of clock nets in said first and second regions respectively after dividing said integrated circuit chip into regions, Ct1 and Ct2 are the total loads of all clock nets in said first and second regions respectively, Nr is said required number of clock nets for said integrate circuit chip, and Nc is the total number of clock nets on said integrated circuit chip immediately prior to said step of dividing said chip into regions.
Claim 13
Dependent Claim
147 words
The method of claim 9, further comprising the steps of: sub-dividing a region into sub-regions of two or more clock nets each, so that each clock net lies within one of said sub-regions; determining a required number of clock nets for each said sub-region to meet said load-per-clock-net target; and for each said sub-region, either adding additional clock nets and re-assigning sinks from said two or more clock nets within said each sub-region to said additional clock nets added to said each sub-region until said required number of clock nets for said each sub-region is reached or said first stopping criteria is met, or deleting clock nets from said each sub-region and re-assigning sinks from said deleted clock nets to remaining clock nets in said each sub-region until said required number of clock nets for said each subregion is reached or said second stopping criteria is met.
Claim 14
Dependent Claim
171 words
A computer program product containing executable code for execution by a computer for designing the clocking circuitry of an integrated circuit chip having a plurality of separate clock nets and a plurality of sinks, said computer program product comprising: means for making an initial assignment of each sink to one of two or more separate clock nets; means for selecting two of said clock nets including all sinks assigned to either of said two clock nets; means for removing said all assigned sinks from said two selected clock nets, and re-assigning each of less than said all sinks, to one or the other of said two selected clock nets; means for thereafter forming all possible combinations of re-assigning each of the remaining sinks of said all sinks, to one or the other of said two selected clock nets; means for computing the value of a penalty function for each said combination of assignment; and means for keeping that said combination of assignment having the best computed value of said penalty function.
Claim 15
Dependent Claim
171 words
A computer program product containing executable code for execution by a computer for designing the clocking circuitry of an integrated circuit chip having a plurality of separate clock nets and a plurality of sinks, said computer program product comprising: means for making an initial assignment of each sink to one of two or more separate clock nets; means for selecting two of said clock nets including all sinks assigned to either of said two clock nets; means for removing said all assigned sinks from said two selected clock nets, and re-assigning each of less than said all sinks, to one or the other of said two selected clock nets; means for thereafter forming all possible combinations of re-assigning each of the remaining sinks of said all sinks, to one or the other of said two selected clock nets; means for computing the value of a penalty function for each said combination of assignment; and means for keeping that said combination of assignment having the best computed value of said penalty function.
Claim 16
Dependent Claim
146 words
The computer program product as set forth in claim 13 wherein said means for making an initial assignment further comprises: means for assigning a first sink to a first clock net; means for assigning to said first clock net a subsequent sink which is closest to the sinks already assigned to said first clock net and repeating until the total number of sinks exceeds an upper limit; means for removing the last assigned sink from said first clock net, and for starting a second clock net, and for assigning said last assigned sink to said second clock net; and means for continuing to assign subsequent sinks which are closest to the set of sinks already assigned to a clock net, and for starting new clock nets as the total number of sinks in a net exceeds said upper limit, until said each sink has been assigned.
Claim 17
Dependent Claim
196 words
The computer program product as set forth in claim 13 wherein said means for making an initial assignment further comprises: means for constructing a geometric tree structure having subtrees and tree nodes, said structure containing each sink, and for marking each tree node of said geometric tree structure with the estimated load of all sinks in the subtrees rooted at said tree node; means for inserting subtree nodes rooted at the root of said geometric tree structure into a heap data structure sorted by said estimated loads; means for removing the highest estimated load subtree node from said heap data structure, for dividing said subtree node into further subtree nodes rooted at said highest estimated load subtree node, and for inserting said divided subtree nodes in said sorted heap data structure; means for repeating said removing, dividing, and inserting of the previous step until a desired number of subtree nodes are inserted in said heap; and means for designating each of said desired number of subtree nodes in said heap as a clock net with the sinks in each of said desired number of subtree nodes taken as said initial assignment of sinks to clock nets.
Claim 18
Dependent Claim
158 words
A computer system for designing the clocking circuitry of an integrated circuit chip having a plurality of separate clock nets and a plurality of sinks, comprising: means for making an initial assignment of each sink to one of two or more separate clock nets; means for selecting two of said clock nets including all sinks assigned to either of said two clock nets; means for removing said all assigned sinks from said two selected clock nets, and re-assigning each of less than said all sinks, to one or the other of said two selected clock nets; means for thereafter forming all possible combinations of re-assigning each of the remaining sinks of said all sinks, to one or the other of said two selected clock nets; means for computing the value of a penalty function for each said combination of assignment; and means for keeping that said combination of assignment having the best computed value of said penalty function.
Claim 19
Dependent Claim
158 words
A computer system for designing the clocking circuitry of an integrated circuit chip having a plurality of separate clock nets and a plurality of sinks, comprising: means for making an initial assignment of each sink to one of two or more separate clock nets; means for selecting two of said clock nets including all sinks assigned to either of said two clock nets; means for removing said all assigned sinks from said two selected clock nets, and re-assigning each of less than said all sinks, to one or the other of said two selected clock nets; means for thereafter forming all possible combinations of re-assigning each of the remaining sinks of said all sinks, to one or the other of said two selected clock nets; means for computing the value of a penalty function for each said combination of assignment; and means for keeping that said combination of assignment having the best computed value of said penalty function.
Claim 20
Dependent Claim
145 words
The computer system as set forth in claim 16 wherein said means for making an initial assignment further comprises: means for assigning a first sink to a first clock net; means for assigning to said first clock net a subsequent sink which is closest to the sinks already assigned to said first clock net and repeating until the total number of sinks exceeds an upper limit; means for removing the last assigned sink from said first clock net, and for starting a second clock net, and for assigning said last assigned sink to said second clock net; and means for continuing to assign subsequent sinks which are closest to the set of sinks already assigned to a clock net, and for starting new clock nets and the total number of sinks in a net exceeds said upper limit, until said each sink has been assigned.
Claim 21
Dependent Claim
195 words
The computer system as set forth in claim 16 wherein said means for making an initial assignment further comprises: means for constructing a geometric tree structure having subtrees and tree nodes, said structure containing each sink, and for marking each tree node of said geometric tree structure with the estimated load of all sinks in the subtrees rooted at said tree node; means for inserting subtree nodes rooted at the root of said geometric tree structure into a heap data structure sorted by said estimated loads; means for removing the highest estimated load subtree node from said heap data structure, for dividing said subtree node into further subtree nodes rooted at said highest estimated load subtree node, and for inserting said divided subtree nodes in said sorted heap data structure; means for repeating said removing, dividing, and inserting of the previous step until a desired number of subtree nodes are inserted in said heap; and means for designating each of said desired number of subtree nodes in said heap as a clock net with the sinks in each of said desired number of subtree nodes taken as said initial assignment of sinks to clock nets.
References Cited (Backward Citations)
US4495559A
Cited
US4615011A
Cited
US4713773A
Cited
US4860322A
Cited
US5159682A
Cited
US5164907A
Cited
US5210700A
Cited
US5077676A
Cited
US5235521A
Cited
US5218551A
Cited
US5361214A
Cited
US5109168A
Cited
US5410491A
Cited
US5339253A
Cited
US5397749A
Cited
US5349536A
Cited
US5272729A
Cited
US5402356A
Cited
US5428764A
Cited
US5308798A
Cited
US5555188A
Cited
US5469366A
Cited
US5644499A
Cited
US5519351A
Cited
US5636372A
Cited
US5638291A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-10-04 | 2003-04-05 | 2003-10-05 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-10-04 | 2007-04-05 | 2007-10-05 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-10-04 | 2011-04-05 | 2011-10-05 | $7700.00 | Window Closed / Lapsed |