Method and apparatus for automatically inserting clock buffers into a logic block to reduce clock skew
First Claim
1. A method for automatically reducing clock skew in a logic block having a plurality of cells, the method comprising the steps of:
- (a) determining a placement of said plurality of cells within said logic block;
(b) determining a placement of a plurality of clock buffers within said logic block such that each clock buffer of said plurality of clock buffers is located in close proximity to a clock line; and
(c) determining a routing between said plurality of clock buffers, said plurality of cells and said clock line.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for inserting clock buffers to reduce clock skew in a logic block in which the proper placement of the cells within the logic block is first determined. Given this cell placement and the location of the local clock lines, the placement of clock buffers within the logic block is determined such that the clock buffers are in close proximity to the local clock lines. Routing is then performed to connect the clock buffers to their corresponding clock trunks and the cells requiring clock signals to their corresponding clock buffers. The performance of the logic block is then evaluated. If the performance does not satisfy a predetermined minimum threshold then the cells are modified to satisfy the minimum threshold, or come closer to attaining it. The clock buffers are removed, and the proper placement of the new cells within the logic block is determined. Given this new cell placement a new set of clock buffers is placed and a new routing is created. The performance is then re-evaluated and, if the minimum threshold still has not been attained, the above process is repeated.
57 Citations
24 Claims
-
1. A method for automatically reducing clock skew in a logic block having a plurality of cells, the method comprising the steps of:
-
(a) determining a placement of said plurality of cells within said logic block; (b) determining a placement of a plurality of clock buffers within said logic block such that each clock buffer of said plurality of clock buffers is located in close proximity to a clock line; and (c) determining a routing between said plurality of clock buffers, said plurality of cells and said clock line. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for automatically inserting buffers into a logic block having a plurality of cells, the method comprising the steps of:
-
(a) determining a placement of a plurality of cells within said logic block; (b) determining a placement of a plurality of buffers within said logic block; (c) determining a routing between said plurality of buffers, said plurality of cells and said clock line; (d) determining the performance of said logic block; (e) removing said plurality of buffers from said logic block if said performance is below a predetermined minimum threshold; (f) modifying a cell of said plurality of cells if said performance is below said minimum threshold; and (g) repeating steps (a) through (g) if said performance is below said minimum threshold. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. An apparatus for inserting clock buffers into a logic block having a plurality of cells to reduce clock skew, the apparatus comprising:
-
a bus; a memory device which stores a set of available clock buffers, wherein the memory device is coupled to the bus; and a processor, coupled to the bus, for determining a placement of a plurality of cells within said logic block, determining a placement of a plurality of clock buffers selected from the set of available clock buffers within said logic block such that each clock buffer of said plurality of clock buffers is located in close proximity to a clock line, determining the routing between said plurality of clock buffers, said plurality of cells and said clock line, determining the performance of said logic block, removing said plurality of clock buffers from said logic block if said performance is below a predetermined minimum threshold, and modifying a cell of said plurality of cells if said performance is below said minimum threshold. - View Dependent Claims (20, 21, 22, 23, 24)
-
Specification