← Back to Patent Explorer
US5912820A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for distributing a clock tree within a hierarchical circuit design

Assignee: Unisys Corp
•
Filing: 1997-01-22
•
Granted: 1999-06-15
•
Expires: 2017-01-22
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A method and apparatus for distributing clock drivers within a hierarchical circuit design, wherein the clock drivers are concentrated in locations where they are actually needed rather than uniformly distributed throughout the circuit design. In an exemplary embodiment, the actual clock loads within a selected hierarchical region are determined, and a sufficient number of clock drivers are added as children objects to the selected hierarchical region. Since many placement tools may place the children objects within an outer boundary of the corresponding parent object, the clock drivers, as children objects of the selected hierarchical region, may be placed within the outer boundary of the selected hierarchical region. Accordingly, the clock drivers may be concentrated in the locations where actually needed.

Inventors

  • 👤 Joseph P. Kerzman
  • 👤 James E. Rezek
  • 👤 John T. Rusterholz

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-08 22:57
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/39; G06F30/394; G06F1/00; G06F1/04; G06F1/10

Claims Analysis

Total Claims: 39
Claim 1
Independent Claim 191 words
A method for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a number of circuit portions each having a hierarchical boundary, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, and wherein each of the circuit portions include a number of lower level hierarchical portions that present a predetermined clock load, the method comprising the steps of: a. calculating a first total clock load for selected lower level hierarchical portions within a selected one of the number of circuit portions; b. calculating the number of clock drivers that are required to drive the total clock load of the selected circuit portion, while maintaining the clock load on each of the clock drivers below the corresponding clock load limit, thereby resulting in a first calculated number of clock drivers; c. adding the first calculated number of clock drivers to the selected circuit portion; d. placing the selected circuit portion at a desired location, including the corresponding boundary; and e. placing the first calculated number of clock drivers within the boundary of the selected circuit portion.
Claim 2
Independent Claim 191 words
A method for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a number of circuit portions each having a hierarchical boundary, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, and wherein each of the circuit portions include a number of lower level hierarchical portions that present a predetermined clock load, the method comprising the steps of: a. calculating a first total clock load for selected lower level hierarchical portions within a selected one of the number of circuit portions; b. calculating the number of clock drivers that are required to drive the total clock load of the selected circuit portion, while maintaining the clock load on each of the clock drivers below the corresponding clock load limit, thereby resulting in a first calculated number of clock drivers; c. adding the first calculated number of clock drivers to the selected circuit portion; d. placing the selected circuit portion at a desired location, including the corresponding boundary; and e. placing the first calculated number of clock drivers within the boundary of the selected circuit portion.
Claim 3
Dependent Claim 22 words
A method according to claim 1 further comprising the step of attaching a property to each of the lower level hierarchical portions.
Claim 4
Dependent Claim 29 words
A method according to claim 2 wherein the property for selected ones of the lower level hierarchical portions indicates a fixed clock load values which is by default zero.
Claim 5
Dependent Claim 61 words
A method according to claim 3 wherein said calculating the number of clock drivers step calculates the number of clock drivers that are required to drive the total clock load of the selected circuit portion by adding the fixed clock load value of the selected ones of the lower level hierarchical portions with remaining clock loads of the selected circuit portion.
Claim 6
Dependent Claim 22 words
A method according to claim 2 wherein the property for selected ones of the lower level hierarchical portions indicates a load value.
Claim 7
Dependent Claim 55 words
A method according to claim 5 wherein said calculating step calculates the number of clock drivers that are required to drive the total clock load of the selected circuit portion by adding a predetermined value for the selected ones of the lower level hierarchical portions with the remaining clock load of the selected circuit portion.
Claim 8
Dependent Claim 22 words
A method according to claim 2 wherein the property for selected ones of the lower level hierarchical portions indicates a generate value.
Claim 9
Dependent Claim 22 words
A method according to claim 7 wherein a generated number of clock drivers are added to the selected lower level hierarchical portions.
Claim 10
Dependent Claim 58 words
A method according to claim 8 wherein said calculating the number of clock drivers step calculates the number of clock drivers that are required to drive the total clock load of the selected circuit portion by adding zero for the selected ones of the lower level hierarchical portions with the remaining clock load of the selected circuit portion.
Claim 11
Dependent Claim 103 words
A method according to claim 8 wherein the number of clock drivers are added to the selected lower level hierarchical portions by: a. calculating a second total clock load for a selected lower level hierarchical portion; b. calculating the number of clock drivers that are required to drive the total clock load of the selected lower level hierarchical portion, while maintaining the clock load on each of the clock drivers below the corresponding clock load limit, thereby resulting in a second calculated number of clock drivers; and c. adding the second calculated number of clock drivers to the selected lower level hierarchical portion.
Claim 12
Dependent Claim 43 words
A method according to claim 10 further comprising the steps of: d. placing the selected lower level hierarchical portion, including a corresponding boundary; and e. placing the second calculated number of clock drivers within the boundary of the selected lower level hierarchical portion.
Claim 13
Dependent Claim 28 words
A method according to claim 1 wherein each of the number of clock drivers is a leaf cell, including each of the first calculated number of clock drivers.
Claim 14
Dependent Claim 39 words
A method according to claim 1 wherein said calculating step calculates the number of clock drivers that are required to drive the total clock load of the selected circuit portion, beginning at the lowest level in the design hierarchy.
Claim 15
Dependent Claim 38 words
A method according to claim 1 wherein said adding step adds the first calculated number of clock drivers to the selected circuit portion, and stores the first calculated number of clock drivers in a corresponding circuit design database.
Claim 16
Dependent Claim 21 words
A method according to claim 1 wherein said placing step (d) is performed by a circuit designer in a placement tool.
Claim 17
Dependent Claim 19 words
A method according to claim 1 wherein said placing step (d) is automatically performed by an automatic placement tool.
Claim 18
Dependent Claim 21 words
A method according to claim 1 wherein said placing step (e) is performed by a circuit designer in a placement tool.
Claim 19
Dependent Claim 19 words
A method according to claim 1 wherein said placing step (e) is automatically performed by an automatic placement tool.
Claim 20
Dependent Claim 34 words
A method according to claim 1 further comprises the step of routing the clock tree by routing a number of clock nets between the number of clock drivers and the number of clock loads.
Claim 21
Dependent Claim 31 words
A method according to claim 19 wherein said routing step routes the number of clock nets such that each of the clock drivers does not exceed the corresponding clock load limit.
Claim 22
Dependent Claim 17 words
A method according to claim 19 wherein said routing step is performed by a automatic routing tool.
Claim 23
Independent Claim 237 words
A method for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the method comprising the steps of: a. selecting a first one of the lower level hierarchical circuit portions, b. identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining a first total clock load for the first one of the lower level hierarchical portions by evaluating the property value associated therewith; d. calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate types otherwise add the first total clock load to a first accumulated total clock load; and f. repeat steps (a)-(e) for each of the lower level hierarchical circuit portions.
Claim 24
Independent Claim 237 words
A method for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the method comprising the steps of: a. selecting a first one of the lower level hierarchical circuit portions, b. identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining a first total clock load for the first one of the lower level hierarchical portions by evaluating the property value associated therewith; d. calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate types otherwise add the first total clock load to a first accumulated total clock load; and f. repeat steps (a)-(e) for each of the lower level hierarchical circuit portions.
Claim 25
Dependent Claim 87 words
A method according to claim 22 further comprising the steps of: g. calculating the number of clock drivers that are required for the hierarchical circuit portion by reading the first accumulated total clock load, thereby resulting in a second calculated number of clock drivers; and h. adding the second calculated number of clock drivers to the hierarchical circuit portion if the property value of the hierarchical circuit portion is of a generate types otherwise add the first total clock load to a second accumulated total clock load.
Claim 26
Independent Claim 377 words
A method for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the method comprising the steps of: a. selecting a first one of the lower level hierarchical circuit portions; b. identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining a first total clock load for the first one of the lower level hierarchical portions by: i. reading a fixed clock load value associated with the property if the property value is of a fixed type, and assigning a value of zero to a first total clock load; ii. assigning a predetermined value as the first total clock load if the property value is of a load type; iii. generating a value for the first total clock load if the property value is of a generate type; d. calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate type, otherwise add the first total clock load to a first accumulated total clock load; f. repeat steps (a)-(e) for each of the lower level hierarchical circuit portions; g. calculating the number of clock drivers that are required for the hierarchical circuit portion by reading the first accumulated total clock load, thereby resulting in a second calculated number of clock drivers; and h. adding the second calculated number of clock drivers to the hierarchical circuit portion if the property value of the hierarchical circuit portion is of a generate type, otherwise add the first total clock load to a second accumulated total clock load.
Claim 27
Independent Claim 377 words
A method for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the method comprising the steps of: a. selecting a first one of the lower level hierarchical circuit portions; b. identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining a first total clock load for the first one of the lower level hierarchical portions by: i. reading a fixed clock load value associated with the property if the property value is of a fixed type, and assigning a value of zero to a first total clock load; ii. assigning a predetermined value as the first total clock load if the property value is of a load type; iii. generating a value for the first total clock load if the property value is of a generate type; d. calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate type, otherwise add the first total clock load to a first accumulated total clock load; f. repeat steps (a)-(e) for each of the lower level hierarchical circuit portions; g. calculating the number of clock drivers that are required for the hierarchical circuit portion by reading the first accumulated total clock load, thereby resulting in a second calculated number of clock drivers; and h. adding the second calculated number of clock drivers to the hierarchical circuit portion if the property value of the hierarchical circuit portion is of a generate type, otherwise add the first total clock load to a second accumulated total clock load.
Claim 28
Dependent Claim 74 words
A method according to claim 24 further comprising the steps of: d. placing each of the lower level hierarchical circuit portions at desired locations, including a corresponding boundary associated with each lower level hierarchical circuit portion; and e. placing the calculated number of clock drivers for each of the lower level hierarchical circuit portion that have a property of a generate type, within the corresponding boundary of the corresponding lower level hierarchical circuit portion.
Claim 29
Dependent Claim 217 words
A data processing system for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a number of circuit portions each having a hierarchical boundary, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, and wherein each of the circuit portions include a number of lower level hierarchical portions that present a predetermined clock load, the data processing system comprising: a. determining means for determining a first total clock load for selected lower level hierarchical portions within a selected one of the number of circuit portions; b. calculating means coupled to said determining means for calculating the number of clock drivers that are required to drive the total clock load of the selected circuit portion, while maintaining the clock load on each of the clock drivers below the corresponding clock load limit, thereby resulting in a first calculated number of clock drivers; c. adding means coupled to said second calculating means for adding the first calculated number of clock drivers to the selected circuit portion, d. placing means for placing the selected circuit portion at a desired location, including the corresponding boundary, said placing means further placing the first calculated number of clock drivers within the boundary of the selected circuit portion.
Claim 30
Dependent Claim 217 words
A data processing system for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a number of circuit portions each having a hierarchical boundary, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, and wherein each of the circuit portions include a number of lower level hierarchical portions that present a predetermined clock load, the data processing system comprising: a. determining means for determining a first total clock load for selected lower level hierarchical portions within a selected one of the number of circuit portions; b. calculating means coupled to said determining means for calculating the number of clock drivers that are required to drive the total clock load of the selected circuit portion, while maintaining the clock load on each of the clock drivers below the corresponding clock load limit, thereby resulting in a first calculated number of clock drivers; c. adding means coupled to said second calculating means for adding the first calculated number of clock drivers to the selected circuit portion, d. placing means for placing the selected circuit portion at a desired location, including the corresponding boundary, said placing means further placing the first calculated number of clock drivers within the boundary of the selected circuit portion.
Claim 31
Dependent Claim 259 words
A data processing system for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the data processing system comprising: a. selecting means for selecting a first one of the lower level hierarchical circuit portions; b. identifying means coupled to said selecting means for identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining means coupled to said identifying means for determining a first total clock load for the first one of the lower level hierarchical portions by evaluating the property value associated therewith; d. calculating means coupled to said determining means for calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding means coupled to said calculating means for adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate type, otherwise adding the first total clock load to a first accumulated total clock load.
Claim 32
Dependent Claim 259 words
A data processing system for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the data processing system comprising: a. selecting means for selecting a first one of the lower level hierarchical circuit portions; b. identifying means coupled to said selecting means for identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining means coupled to said identifying means for determining a first total clock load for the first one of the lower level hierarchical portions by evaluating the property value associated therewith; d. calculating means coupled to said determining means for calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding means coupled to said calculating means for adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate type, otherwise adding the first total clock load to a first accumulated total clock load.
Claim 33
Dependent Claim 45 words
A data processing system according to claim 27 wherein said calculating means further calculates the number of clock drivers that are required for the hierarchical circuit portion by reading the first accumulated total clock load, thereby resulting in a second calculated number of clock drivers.
Claim 34
Dependent Claim 54 words
A data processing system according to claim 28 wherein said adding means further adds the second calculated number of clock drivers to the hierarchical circuit portion if the property value of the hierarchical circuit portion is of a generate type, otherwise adds the first total clock load to a second accumulated total clock load.
Claim 35
Dependent Claim 347 words
A data processing system for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the data processing system comprising: a. selecting means for selecting a first one of the lower level hierarchical circuit portions; b. identifying means coupled to said selecting means for identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining means coupled to said identifying means for determining a first total clock load for the first one of the lower level hierarchical portions, said determining means further including: i. reading means for reading a fixed clock load value associated with the property if the property value is of a fixed type, and assigning a value of zero to a first total clock load; ii. assigning means coupled to said reading means for assigning a predetermined value to the first total clock load if the property value is of a load type; iii. generating means coupled to said reading means for generating a value for the first total clock load if the property value is of a generate type; d. calculating means coupled to said determining means for calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding means coupled to said calculating means for adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate type, otherwise adding the first total clock load to a first accumulated total clock load.
Claim 36
Dependent Claim 347 words
A data processing system for providing a clock tree for a hierarchical circuit design wherein the circuit design includes a hierarchical circuit portion, wherein the hierarchical circuit portion includes a number of lower level hierarchical circuit portions that present a predetermined clock load, selected ones of the number of hierarchical circuit portions, including the lower level hierarchical circuit portions, having a property value associated therewith, the clock tree including a number of clock drivers wherein each of the clock drivers has a clock load limit, the data processing system comprising: a. selecting means for selecting a first one of the lower level hierarchical circuit portions; b. identifying means coupled to said selecting means for identifying the property value associated with the first one of the lower level hierarchical circuit portions; c. determining means coupled to said identifying means for determining a first total clock load for the first one of the lower level hierarchical portions, said determining means further including: i. reading means for reading a fixed clock load value associated with the property if the property value is of a fixed type, and assigning a value of zero to a first total clock load; ii. assigning means coupled to said reading means for assigning a predetermined value to the first total clock load if the property value is of a load type; iii. generating means coupled to said reading means for generating a value for the first total clock load if the property value is of a generate type; d. calculating means coupled to said determining means for calculating the number of clock drivers that are required to drive the first total clock load of the first one of the lower level hierarchical circuit portions, thereby resulting in a first calculated number of clock drivers; e. adding means coupled to said calculating means for adding the first calculated number of clock drivers to the first one of the lower level hierarchical circuit portions if the property value is of a generate type, otherwise adding the first total clock load to a first accumulated total clock load.
Claim 37
Dependent Claim 45 words
A data processing system according to claim 30 wherein said calculating means further calculates the number of clock drivers that are required for the hierarchical circuit portion by reading the first accumulated total clock load, thereby resulting in a second calculated number of clock drivers.
Claim 38
Dependent Claim 54 words
A data processing system according to claim 31 wherein said adding means further adds the second calculated number of clock drivers to the hierarchical circuit portion if the property value of the hierarchical circuit portion is of a generate type, otherwise adds the first total clock load to a second accumulated total clock load.
Claim 39
Dependent Claim 78 words
A data processing system according to claim 32 further comprising: a. placing means for placing each of the lower level hierarchical circuit portions at selected locations, including a corresponding boundary associated with each lower level hierarchical circuit portion, said placing means further placing the calculated number of clock drivers for each of the lower level hierarchical circuit portion that have a property of a generate type, within the corresponding boundary of the corresponding lower level hierarchical circuit portion.

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2002-06-14 2002-12-14 2003-06-15 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2006-06-14 2006-12-14 2007-06-15 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2010-06-14 2010-12-14 2011-06-15 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag