Method of clock buffer partitioning to minimize clock skew...

Computer-aided design and analysis of circuits and semiconductor – Nanotechnology related integrated circuit design

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

C716S030000, C716S030000, C716S030000, C716S030000

Reexamination Certificate

active

06502222

ABSTRACT:

BACKGROUND OF THE INVENTION
The present invention relates generally to design tools for integrated circuits. More specifically, but without limitation thereto, the present invention relates to a method of distributing a clock signal among clock buffers in a balanced clock tree that minimizes clock skew for an integrated circuit design.
Integrated circuits typically include blocks or multiple circuit elements such as flip-flops. The circuit elements are generally synchronized by a common clock signal from clock buffer cells. The clock buffer cells are typically arranged in a balanced clock tree. A balanced clock tree is constructed in a hierarchy of buffer levels, and each buffer level contains one or more partitions of clock buffers. The top buffer level is the clock driver level, which contains a driver (a high power buffer cell) driven by a system clock. The next buffer level is the clock repeater level, which contains clock repeaters (medium power buffer cells) driven by the clock drivers. The remaining lower buffer levels contain clock buffers (standard power buffer cells) down to buffer level L
1
, which contains the clocked circuit elements.
In previous approaches to balanced clock placement, the number of clock buffers driven by repeaters is minimized, while insertion delays of buffers at each lower buffer level “downstream” are ignored. The inability to estimate maximum and minimum delays accurately in buffer groups results in unbalanced partitioning with large clock skew and insertion delays. The unbalanced partitioning typically requires delay balancing by extra wire insertion, resulting in large errors in Elmore delay calculations relative to SPICE delay calculations.
A circuit may be partitioned in a single iteration, called one-pass partitioning, or the circuit may be partitioned by an algorithm that examines all cells in several iterations. A partition of a circuit into two parts is called two-way cutting. Two-way cutting may be repeated to further partition a circuit so that each partition contains a set of cells or buffers having a minimum skew. One-pass partitioning based on two-way cutting does not generally produce good solutions to balanced clock placement in production designs.
Further, heuristic objective functions used to place clock buffers in groups of circuit elements result in a large clock skew. Heuristic objective functions are quality functions that describe an objective or goal indirectly. An example of a heuristic objective function used to place clock buffers in groups of circuit elements is the minimization of the distance between a buffer location and the center of mass of a group of cells driven by the buffer. The real objective of balanced clock buffer placement is the minimization of clock skew between the clock buffer and each cell in the group.
SUMMARY OF THE INVENTION
The present invention advantageously addresses the problems above as well as other problems by providing a method of clock buffer partitioning that minimizes clock skew for a balanced clock tree.
In one embodiment, the present invention may be characterized as a method of clock buffer partitioning to minimize clock skew in an integrated circuit design that includes the steps of receiving as input a description of a number of clock buffers for buffering a system clock to a plurality of clocked circuit elements; constructing a balanced clock tree from the description wherein the balanced clock tree includes a plurality of buffers in a hierarchy of buffer levels; partitioning each of the hierarchy of buffer levels into a plurality of buffer groups wherein clock skew in each of the plurality of buffer groups at each buffer level is substantially minimized; routing a clock input to a plurality of buffers within at least one of the plurality of buffer groups in at least one of the hierarchy of buffer levels to construct a zero clock skew among the plurality of buffers; calculating an estimated group insertion delay for the at least one of the plurality of buffer groups as a sum of an internal insertion delay and a downstream insertion delay of one of the plurality of clocked circuit elements; and generating as output the estimated group insertion delay.
In another embodiment, the present invention may be characterized as a a computer program product for clock buffer partitioning to minimize clock skew in an integrated circuit design that may be implemented by a computer to perform the following functions: receiving as input a description of a number of clock buffers for buffering a system clock to a plurality of clocked circuit elements; constructing a balanced clock tree from the description wherein the balanced clock tree includes a plurality of buffers in a hierarchy of buffer levels; partitioning each of the hierarchy of buffer levels into a plurality of buffer groups wherein clock skew in each of the plurality of buffer groups at each buffer level is substantially minimized; routing a clock input to a plurality of buffers within at least one of the plurality of buffer groups in at least one of the hierarchy of buffer levels to construct a zero clock skew among the plurality of buffers; calculating an estimated group insertion delay for the at least one of the plurality of buffer groups as a sum of an internal insertion delay and a downstream insertion delay of one of the plurality of clocked circuit elements; and generating as output the estimated group insertion delay.


REFERENCES:
patent: 5036230 (1991-07-01), Bazes
patent: 5122978 (1992-06-01), Merrill
patent: 5272390 (1993-12-01), Watson et al.
patent: 5272729 (1993-12-01), Bechade et al.
patent: 5309035 (1994-05-01), Watson et al.
patent: 5347232 (1994-09-01), Nishimichi
patent: 5369640 (1994-11-01), Watson et al.
patent: 5452239 (1995-09-01), Dai et al.
patent: 5564022 (1996-10-01), Debnath et al.
patent: 5663668 (1997-09-01), Hayashi et al.
patent: 5717719 (1998-02-01), Iknaian et al.
patent: 6002282 (1999-12-01), Alfke
patent: 6199183 (2001-03-01), Nadaoka
patent: 6222792 (2001-04-01), Hanzawa et al.
patent: 6271697 (2001-08-01), Hayashi et al.
patent: 6381704 (2002-04-01), Cano et al.
patent: 6381719 (2002-04-01), Schneck
patent: 2001/0050585 (2001-12-01), Carr
patent: 2000266818 (2000-09-01), None

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method of clock buffer partitioning to minimize clock skew... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method of clock buffer partitioning to minimize clock skew..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method of clock buffer partitioning to minimize clock skew... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2957538

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.