Method for hierarchical time drive circuit layout by rebudgeting timing constraints of plurality of logical blocks after placement
First Claim
1. In a computer system including a memory, a method for performing a hierarchial timing driven layout of a circuit based upon gate-level design data and circuit timing constraints, the circuit including a plurality of cells, the method comprising the steps of:
- partitioning the plurality of cells into a plurality of logical blocks, a first logical block including a first plurality of cells;
budgeting a block timing constraint for each of the plurality of logical blocks in response to the gate-level design data, to the circuit timing constraints, and to the partitioning of the plurality of cells into the plurality of logical blocks;
placing the plurality of logical blocks within a circuit floorplan, each logical block associated with a block location within the circuit floorplan;
rebudgeting the block timing constraint for at least one of the plurality of logical blocks in response to the placement of the plurality of logical blocks within the circuit floorplan;
placing the first plurality of cells within a block location associated with the first logical block; and
rebudgeting the timing constraint for at least one of the plurality of logical blocks in response to the placement of the first plurality of cells within the first logical block.
1 Assignment
0 Petitions
Accused Products
Abstract
A method for performing a hierarchial timing driven layout of a circuit based upon gate-level design data and circuit timing constraints, the circuit including a plurality of cells, includes: partitioning the plurality of cells into a plurality of logical blocks, a first logical block including a first plurality of cells; budgeting a block timing constraint for each of the plurality of logical blocks in response to the gate-level design data, to the circuit timing constraints, and to the partitioning of the plurality of cells into the plurality of logical blocks; placing the plurality of logical blocks within a circuit floorplan, each logical block associated with a block location within the circuit floorplan; rebudgeting the block timing constraint for at least one of the plurality of logical blocks in response to the placement of the plurality of logical blocks within the circuit floorplan; placing the first plurality of cells within a block location associated with the first logical block; and rebudgeting the timing constraint for at least one of the plurality of logical blocks in response to the placement of the first plurality of cells within the first logical block.
-
Citations
37 Claims
-
1. In a computer system including a memory, a method for performing a hierarchial timing driven layout of a circuit based upon gate-level design data and circuit timing constraints, the circuit including a plurality of cells, the method comprising the steps of:
-
partitioning the plurality of cells into a plurality of logical blocks, a first logical block including a first plurality of cells; budgeting a block timing constraint for each of the plurality of logical blocks in response to the gate-level design data, to the circuit timing constraints, and to the partitioning of the plurality of cells into the plurality of logical blocks; placing the plurality of logical blocks within a circuit floorplan, each logical block associated with a block location within the circuit floorplan; rebudgeting the block timing constraint for at least one of the plurality of logical blocks in response to the placement of the plurality of logical blocks within the circuit floorplan; placing the first plurality of cells within a block location associated with the first logical block; and rebudgeting the timing constraint for at least one of the plurality of logical blocks in response to the placement of the first plurality of cells within the first logical block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 24, 25)
-
-
8. A computer system for performing hierarchial timing driven layout of a circuit based upon gate-level design data and circuit timing constraints, the circuit including a plurality of cells, the computer system comprising:
-
a memory for storing the gate-level design data and the circuit timing constraints; partitioning means, coupled to the memory for partitioning the plurality of cells into a plurality of logical blocks, a first logical block including a first plurality of cells; budgeting means coupled to the memory and to the partitioning means, for budgeting a block timing constraint for each of the plurality of logical blocks in response to the gate-level design data, to the circuit timing constraints, and to the partitioning of the plurality of cells into the plurality of logical blocks; first placing means coupled to the memory and to the partitioning means for placing the plurality of logical blocks within a circuit floorplan, each logical block associated with a block location within the circuit floorplan; first rebudgeting means coupled to the memory, to the budgeting means, and to the first placing means, for rebudgeting the block timing constraint for at least one of the plurality of logical blocks in response to placement of the plurality of logical blocks within the circuit floorplan; second placing means coupled to the memory and to the partitioning means for placing the first plurality of cells within a block location associated with the first logical block; and second rebudgeting means coupled to the memory, to the second placing means and the first rebudgeting means, for rebudgeting the timing constraint for at least one of the plurality of logical blocks in response to placement of the first plurality of cells within the first logical block. - View Dependent Claims (9)
-
-
10. In a computer system including a memory, a method of determining a timing model for a logical block within a circuit, the memory having gate-level design data, including a plurality of cells and a plurality of nets for the logical block, and timing models for each of the plurality of cells, and circuit timing constraints, the method comprising the steps of:
-
determining a slack budget factor for each of the plurality of nets, in response to the gate-level design data and the circuit timing constraints; determining a net constraint for each of the plurality of nets, in response to the slack budget factor for each of the plurality of nets, to the gate-level design data and to the circuit timing constraints; and determining the timing model for the logical block, in response to the net constraint for each of the plurality of nets, to the timing models for the plurality of cells and to the circuit timing constraints, wherein the timing model for the logical block includes a load-sensitive component. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. In a computer system including a memory, a method of determining a timing constraint for a logical block within a circuit, the memory having gate-level design data, including a plurality of cells and a plurality of nets for the logical block, and timing models for each of the plurality of cells, and circuit timing constraints, the method comprising the steps of:
-
determining a slack budget factor for each of the plurality of nets, in response to the gate-level design data and to the circuit timing constraints; determining a net constraint for each of the plurality of nets, in response to the slack budget factor for each of the plurality of nets, to the gate-level design data and to the circuit timing constraints; and determining the timing constraint for the logical block, in response to the net constraint for each of the plurality of nets, to the timing models for the plurality of cells and to the circuit timing constraints. - View Dependent Claims (18, 19, 20)
-
-
21. A computer system for determining a timing model for a logical block within a circuit, the computer system comprising:
-
a memory for storing gate-level design data including a plurality of cells and plurality of nets for the logical block, and timing models for each of the plurality of cells, and circuit timing constraints; a slack budget factor module, coupled to the memory, for determining a slack budget factor for each of the plurality of nets, in response to the gate-level design data and to the circuit timing constraints; a zero slack algorithm module, coupled to the memory and the slack budget factor module, for determining a net constraint for each of the plurality of nets, in response to the slack budget factor for each of the plurality of nets, to the gate-level design data and to the circuit timing constraints; and a block budgeter, coupled to the memory and to the zero slack algorithm module, for determining the timing model for the logical block, in response to the timing models for the plurality of cells, to the net constraint for each of the plurality of nets and to the circuit timing constraints. - View Dependent Claims (22)
-
-
23. A computer system for determining a timing constraint for a logical block within a circuit, the computer system comprising:
-
a memory for storing gate-level design data including a plurality of cells and plurality of nets for the logical block, and timing models for each of the plurality of cells, and circuit timing constraints; a slack budget factor module, coupled to the memory, for determining a slack budget factor for each of the plurality of nets, in response to the gate-level design data and to the circuit timing constraints; a zero slack algorithm module, coupled to the memory and the slack budget factor module, for determining a net constraint for each of the plurality of nets, in response to the slack budget factor for each of the plurality of nets, to the gate-level design data and to the circuit timing constraints; and a block budgeter, coupled to the memory and to the zero slack algorithm module, for determining the timing constraint for the logical block, in response to the timing models for the plurality of cells, to the net constraint for each of the plurality of nets and to the circuit timing constraints.
-
-
26. A computer program product, for a computer system including a processor and a memory, for performing hierarchial timing driven layout of a circuit based upon gate-level design data and circuit timing constraints, the circuit including a plurality of cells, the computer program product comprising:
a computer readable storage medium comprising; (a) code that directs the processor to partition the plurality of cells into a plurality of logical blocks, a first logical block including a first plurality of cells; (b) code that directs the processor to budget a block timing constraint for each of the plurality of logical blocks in response to the gate-level design data, to the circuit timing constraints, and to the partitioning of the plurality of cells into the plurality of logical blocks; (c) code that directs the processor to place the plurality of logical blocks within a circuit floorplan, each logical block associated with a block location within the circuit floorplan; (d) code that directs the processor to rebudget the block timing constraint for at least one of the plurality of logical blocks in response to the placement of the plurality of logical blocks within the circuit floorplan; (e) code that directs the processor to place the first plurality of cells within a block location associated with the first logical block; and (f) code that directs the processor to rebudget the timing constraint for at least one of the plurality of logical blocks in response to the placement of the first plurality of cells within the first logical block. - View Dependent Claims (27, 28, 29, 30, 31)
-
32. A computer system for performing hierarchial timing driven layout of a circuit based upon gate-level design data and circuit timing constraints, the circuit including a plurality of cells, the system including a processor and a memory, the system comprising:
-
an input device, coupled to the memory for inputting the design data and circuit timing constraints; an output device, coupled to the processor and to the memory for outputting circuit layout information; and a computer readable storage medium comprising; (a) code that directs the processor to partition the plurality of cells into a plurality of logical blocks, a first logical block including a first plurality of cells; (b) code that directs the processor to budget a block timing constraint for each of the plurality of logical blocks in response to the gate-level design data, to the circuit timing constraints, and to the partitioning of the plurality of cells into the plurality of logical blocks; (c) code that directs the processor to place the plurality of logical blocks within a circuit floorplan, each logical block associated with a block location within the circuit floorplan; (d) code that directs the processor to rebudget the block timing constraint for at least one of the plurality of logical blocks in response to the placement of the plurality of logical blocks within the circuit floorplan; (e) code that directs the processor to place the first plurality of cells within a block location associated with the first logical block; and (f) code that directs the processor to rebudget the timing constraint for at least one of the plurality of logical blocks in response to the placement of the first plurality of cells within the first logical block. - View Dependent Claims (33)
-
-
34. A computer program product, for a computer system including a processor and a memory, for determining a timing model for a logical block within a circuit, the memory having gate-level design data, including a plurality of cells and a plurality of nets for the logical block, and timing models for each of the plurality of cells, and circuit timing constraints, the computer program product comprising:
a computer readable storage medium comprising; code that directs the processor to determine a slack budget factor for each of the plurality of nets, in response to the gate-level design data and the circuit timing constraints; code that directs the processor to determine a net constraint for each of the plurality of nets, in response to the slack budget factor for each of the plurality of nets, to the gate-level design data and to the circuit timing constraints; and code that directs the processor to determine the timing model for the logical block, in response to the net constraint for each of the plurality of nets, to the timing models for the plurality of cells and to the circuit timing constraints. - View Dependent Claims (35)
-
36. A computer program product, for a computer system including a processor and a memory, for determining a timing constraint for a logical block within a circuit, the memory having gate-level design data, including a plurality of cells and a plurality of nets for the logical block, and timing models for each of the plurality of cells, and circuit timing constraints, the computer program product comprising:
a computer readable storage medium comprising; code that directs the processor to determine a slack budget factor for each of the plurality of nets, in response to the gate-level design data and to the circuit timing constraints; code that directs the processor to determine a net constraint for each of the plurality of nets, in response to the slack budget factor for each of the plurality of nets, to the gate-level design data and to the circuit timing constraints; and code that directs the processor to determine the timing constraint for the logical block, in response to the net constraint for each of the plurality of nets, to the timing models for the plurality of cells and to the circuit timing constraints. - View Dependent Claims (37)
Specification