Claims
- 1. A method comprising:
generating an initial Steiner tree connecting a source node to at least one sink node in an integrated circuit layout, wherein the initial Steiner tree is generated according to heuristics that do not take into account density of regions in the integrated circuit layout; and adjusting a topology of the initial Steiner tree so as to avoid dense regions in the integrated circuit layout, thus obtaining a porosity-aware Steiner tree.
- 2. The method of claim 1, further comprising further adjusting the adjusted Steiner tree topology to avoid buffer blockages in the integrated circuit layout, thus obtaining a blockage-aware Steiner tree.
- 3. The method of claim 2, further comprising:
inserting buffers into the blockage-aware Steiner tree.
- 4. The method of claim 1, wherein the initial Steiner tree is a buffered Steiner tree.
- 5. The method of claim 1, further comprising:
inserting buffers into the porosity-aware Steiner tree.
- 6. The method of claim 1, wherein adjusting the initial Steiner tree includes:
determining a first plate, wherein the first plate includes a plurality of tiles in a neighborhood of a first node in the initial Steiner tree; determining a second plate, wherein the second plate includes a plurality of tiles in a neighborhood of a second node in the initial Steiner tree, wherein the second node is connected to the first node via a wiring path in the initial Steiner tree; generating node candidate solutions for adjustment of the first node by enumerating locations within the first plate; generating wiring path candidate solutions for adjustment of the wiring path by forming alternative paths from the candidate solutions for adjustment of the first node; calculating a cost function associated with each of the wiring path candidate solutions; and choosing a new location for the first node and a new wiring path by choosing a minimum-cost candidate solution from the wiring path candidate solutions.
- 7. The method of claim 6, further comprising:
determining a bounding shape, wherein the bounding shape is a minimum bounding shape of the first plate and the second plate, wherein the alternative paths are confined to the bounding shape.
- 8. The method of claim 7, wherein the bounding shape is a bounding box.
- 9. A computer program product in at least one computer-readable medium, comprising functional descriptive material that, when executed by a computer, enables the computer to perform acts including:
generating an initial Steiner tree connecting a source node to at least one sink node in an integrated circuit layout, wherein the initial Steiner tree is generated according to heuristics that do not take into account density of regions in the integrated circuit layout; and adjusting a topology of the initial Steiner tree so as to avoid dense regions in the integrated circuit layout, thus obtaining a porosity-aware Steiner tree.
- 10. The computer program product of claim 9, further comprising further adjusting the adjusted Steiner tree topology to avoid buffer blockages in the integrated circuit layout, thus obtaining a blockage-aware Steiner tree.
- 11. The computer program product of claim 10, comprising additional functional descriptive material that, when executed by the computer, causes the computer to perform additional acts including:
inserting buffers into the blockage-aware Steiner tree.
- 12. The computer program product of claim 9, wherein the initial Steiner tree is a buffered Steiner tree.
- 13. The computer program product of claim 9, comprising additional functional descriptive material that, when executed by the computer, causes the computer to perform additional acts including:
inserting buffers into the porosity-aware Steiner tree.
- 14. The computer program product of claim 9, wherein adjusting the initial Steiner tree includes:
determining a first plate, wherein the first plate includes a plurality of tiles in a neighborhood of a first node in the initial Steiner tree; determining a second plate, wherein the second plate includes a plurality of tiles in a neighborhood of a second node in the initial Steiner tree, wherein the second node is connected to the first node via a wiring path in the initial Steiner tree; generating node candidate solutions for adjustment of the first node by enumerating locations within the first plate; generating wiring path candidate solutions for adjustment of the wiring path by forming alternative paths from the candidate solutions for adjustment of the first node; calculating a cost function associated with each of the wiring path candidate solutions; and choosing a new location for the first node and a new wiring path by choosing a minimum-cost candidate solution from the wiring path candidate solutions.
- 15. The computer program product of claim 14, comprising additional functional descriptive material that, when executed by the computer, causes the computer to perform additional acts including:
determining a bounding shape, wherein the bounding shape is a minimum bounding shape of the first plate and the second plate, wherein the alternative paths are confined to the bounding shape
- 16. The computer program product of claim 15, wherein the bounding shape is a bounding box.
- 17. A data processing system comprising:
means for generating an initial Steiner tree connecting a source node to at least one sink node in an integrated circuit layout, wherein the initial Steiner tree is generated according to heuristics that do not take into account density of regions in the integrated circuit layout; and means for adjusting a topology of the initial Steiner tree so as to avoid dense regions in the integrated circuit layout, thus obtaining a porosity-aware Steiner tree.
- 18. The data processing system of claim 17, further comprising:
means for inserting buffers into the porosity-aware Steiner tree.
- 19. The data processing system of claim 17, wherein adjusting the initial Steiner tree includes:
means for determining a first plate, wherein the first plate includes a plurality of tiles in a neighborhood of a first node in the initial Steiner tree; means for determining a second plate, wherein the second plate includes a plurality of tiles in a neighborhood of a second node in the initial Steiner tree, wherein the second node is connected to the first node via a wiring path in the initial Steiner tree; means for generating node candidate solutions for adjustment of the first node by enumerating locations within the first plate; means for generating wiring path candidate solutions for adjustment of the wiring path by forming alternative paths from the candidate solutions for adjustment of the first node; means for calculating a cost function associated with each of the wiring path candidate solutions; and means for choosing a new location for the first node and a new wiring path by choosing a minimum-cost candidate solution from the wiring path candidate solutions.
- 20. The data processing system of claim 19, further comprising:
means for determining a bounding shape, wherein the bounding shape is a minimum bounding shape of the first plate and the second plate, wherein the alternative paths are confined to the bounding shape.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] The present application is related to a commonly assigned, co-pending U.S. patent application entitled “BUFFER INSERTION WITH ADAPTIVE BLOCKAGE AVOIDANCE,” Ser. No. 10/324,732, filed Dec. 18, 2002, which is hereby incorporated by reference. The present invention is related to another commonly assigned, co-pending U.S. patent application entitled “OPTIMAL BUFFERED ROUTING PATH CONSTRUCTIONS FOR SINGLE AND MULTIPLE CLOCK DOMAIN SYSTEMS,” Ser. No. 10/264,165, filed Oct. 3, 2002, which is hereby also incorporated by reference.