Methods and systems for placement and routing
First Claim
1. A method, comprising:
- evolving over time, by a computing apparatus, a system of equations representative of motion of a first state of first locations of a plurality of nodes and a plurality of nets and approximating a continuous evolution of state variables over time, resulting, at least in part, from a plurality of forces on the nodes and the nets, to determine a second state of second locations of the nodes and the nets, wherein the nodes and the nets are representative of a circuit netlist of elements of an integrated circuit, wherein the plurality of forces include viscous damping, attractive, and spreading forces, and wherein the state variables describe at least a mass of each node;
modifying, by the computing apparatus after said evolving, magnitudes of one or more of the plurality of forces of at least one of the nodes, and the mass of at least one of the nodes based, at least in part, on a resource usage of the nodes and the nets, to adjust the second state to a third state of third locations; and
modifying, by the computing apparatus, the third state to a fourth state of fourth locations based, at least in part, on a timing of the third state by;
replacing a first driver of at least one of the nets with a second driver, wherein the first driver and the second driver have different drive strengths;
orinserting a buffer driving the at least one of the nets;
orboth.
3 Assignments
0 Petitions
Accused Products
Abstract
Techniques for placement of integrated circuit elements include global placement, detailed placement, timing closure, and routing. The integrated circuit is described by a netlist specifying interconnections of morphable devices. The detailed placement uses, for example, Simultaneous Dynamical Integration, wherein the morphable-devices correspond to nodes influenced by forces, including timing forces. The timing forces are derived, for example, from a timing graph; path delay; slack; and drive resistance of the elements. The timing closure uses timing-driven buffering and timing-driven resizing to reduce maximum delay and/or transition time, and/or to fix hold time. Nets having high capacitance and/or fanout, and timing critical nets are preferentially processed. Timing-driven buffering applies buffering solutions to segments of route trees, combines solutions of adjoining segments, and prunes sets of solutions. Timing-driven resizing morphably replaces selected elements with upsized versions thereof.
144 Citations
23 Claims
-
1. A method, comprising:
-
evolving over time, by a computing apparatus, a system of equations representative of motion of a first state of first locations of a plurality of nodes and a plurality of nets and approximating a continuous evolution of state variables over time, resulting, at least in part, from a plurality of forces on the nodes and the nets, to determine a second state of second locations of the nodes and the nets, wherein the nodes and the nets are representative of a circuit netlist of elements of an integrated circuit, wherein the plurality of forces include viscous damping, attractive, and spreading forces, and wherein the state variables describe at least a mass of each node; modifying, by the computing apparatus after said evolving, magnitudes of one or more of the plurality of forces of at least one of the nodes, and the mass of at least one of the nodes based, at least in part, on a resource usage of the nodes and the nets, to adjust the second state to a third state of third locations; and modifying, by the computing apparatus, the third state to a fourth state of fourth locations based, at least in part, on a timing of the third state by; replacing a first driver of at least one of the nets with a second driver, wherein the first driver and the second driver have different drive strengths;
orinserting a buffer driving the at least one of the nets;
orboth. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory computer-readable medium having stored thereon, computer-executable instructions configured to cause the computing apparatus, in response to execution of the instructions by the computing apparatus, to perform operations comprising:
-
evolving over time, by the computing apparatus, a system of equations representative of motion of a first state of first locations of a plurality of nodes and a plurality of nets and approximating a continuous evolution of state variables over time, resulting, at least in part, from a plurality of forces on the nodes and the nets, to determine a second state of second locations of the nodes and the nets, wherein the nodes and the nets are representative of a circuit netlist of elements of an integrated circuit, wherein the plurality of forces include viscous damping, attractive, and spreading forces, and wherein the state variables describe at least a mass of each node; modifying, by the computing apparatus after said evolving, magnitudes of one or more of the plurality of forces of at least one of the nodes, and the mass of at least one of the nodes based, at least in part, on a resource usage of the nodes and the nets, to adjust the second state to a third state of third locations; and modifying, by the computing apparatus, the third state to a fourth state of fourth locations based, at least in part, on a timing of the third state by; replacing a first driver of at least one of the nets with a second driver, wherein the first driver and the second driver have different drive strengths;
orinserting a buffer driving the at least one of the nets;
orboth. - View Dependent Claims (16, 17, 18)
-
-
19. A system, comprising:
-
a processor; and a non-transitory computer-readable medium coupled to the processor by way of a bus, the non-transitory computer-readable medium having stored thereon, computer-executable instructions that enable the system, in response to execution of the instructions, to; evolve over time a system of equations representative of motion of a first state of first locations of a plurality of nodes and a plurality of nets and approximating a continuous evolution of state variables over time, resulting, at least in part, from a plurality of forces on the nodes and the nets, to determine a second state of second locations of the nodes and the nets, wherein the nodes and the nets are representative of a circuit netlist of elements of an integrated circuit, wherein the plurality of forces include viscous damping, attractive, and spreading forces, and wherein the state variables describe at least a mass of each node; and modifying, by the computing apparatus after said evolving, magnitudes of one or more of the plurality of forces of at least one of the nodes, and the mass of at least one of the nodes based, at least in part, on a resource usage of the nodes and the nets, to adjust the second state to a third state of third locations; and modify the third state to a fourth state of fourth locations based, at least in part, on a timing of the third state by; replacing a first driver of at least one of the nets with a second driver, wherein the first driver and the second driver have different drive strengths;
orinserting a buffer driving the at least one of the nets;
orboth. - View Dependent Claims (20, 21, 22, 23)
-
Specification