Timing driven force directed placement flow
First Claim
1. A method comprising:
- generating, by a computing apparatus, a first state of a system of nodes and nets representative of an integrated circuit, wherein the first state includes first locations of one or more nodes;
applying, by the computing apparatus, a timing force on the one or more nodes;
applying, by the computing apparatus, a spreading force on the one or more nodes;
adjusting, by the computing apparatus, the first state in accordance with the timing force and the spreading force to determine second locations of the one or more nodes; and
generating, by a computing apparatus, a second placement of nodes of an integrated circuit in accordance with the determined second locations.
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.
83 Citations
31 Claims
-
1. A method comprising:
-
generating, by a computing apparatus, a first state of a system of nodes and nets representative of an integrated circuit, wherein the first state includes first locations of one or more nodes; applying, by the computing apparatus, a timing force on the one or more nodes; applying, by the computing apparatus, a spreading force on the one or more nodes; adjusting, by the computing apparatus, the first state in accordance with the timing force and the spreading force to determine second locations of the one or more nodes; and generating, by a computing apparatus, a second placement of nodes of an integrated circuit in accordance with the determined second locations. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer readable medium having stored thereon, computer-executable instructions that, if executed by a computing apparatus, cause the computing apparatus to perform a method comprising:
-
generating a first state of a system of nodes and nets representative of an integrated circuit, wherein the first state includes first locations of one or more nodes; applying a timing force on the one or more nodes; applying a spreading force on the one or more nodes; adjusting the first state in accordance with the timing force and the spreading force to determine second locations of the one or more nodes; and generating a second placement of nodes of an integrated circuit in accordance with the determined second locations. - View Dependent Claims (21, 22, 23, 24, 25)
-
-
26. A system comprising:
-
a processor; and a computer-readable medium coupled to the processor by way of a bus, the computer-readable medium having stored thereon, computer-executable instructions that, if executed by the processor, cause the system to perform a method comprising; generating a first state of a system of nodes and nets representative of an integrated circuit, wherein the first state includes first locations of one or more nodes; applying a timing force on the one or more nodes; applying a spreading force on the one or more nodes; adjusting the first state in accordance with the timing force and the spreading force to determine second locations of the one or more nodes; and generating a second placement of nodes of an integrated circuit in accordance with the determined second locations. - View Dependent Claims (27, 28, 29, 30, 31)
-
Specification