Claims
- 1. A method in a data processing system for generating an optimum circuit design from an input circuit design, comprising:
receiving the input circuit design; performing buffer insertion optimization on the input circuit design to generate a first set of solutions having a plurality of solutions; performing driver sizing optimization on the first set of solutions to generate a second set of solutions; and outputting, as the optimum circuit design, a solution from the second set of solutions.
- 2. The method of claim 1, further comprising:
forming a circuit based on the optimum circuit design.
- 3. The method of claim 1, wherein performing buffer insertion optimization includes using a van Ginneken algorithm to perform buffer insertion in at least one net of the input circuit design.
- 4. The method of claim 1, wherein performing driver sizing optimization on the first set of solutions includes:
identifying at least one driver in a driver library having a same driver type as an original driver in the input circuit design; virtually inserting the at least one driver into each solution in the first set of solutions; and determining a second set of solutions based on the first set of solutions having the at least one driver virtually inserted.
- 5. The method of claim 4, wherein determining a second set of solutions based on the first set of solutions having the at least one driver virtually inserted includes:
calculating, for each solution in the set of second solutions, a slack based on a slack of a corresponding solution in the first set of solutions and a delay through the at least one driver.
- 6. The method of claim 5, wherein calculating the slack for each solution in the set of second solutions includes compensating for upstream effects of the at least one driver by including a delay penalty function in the calculation of the slack.
- 7. The method of claim 6, wherein the delay penalty function is the minimum delay to drive a predetermined capacitance load by a cascaded buffer chain starting with a buffer having a smallest input capacitance.
- 8. The method of claim 6, wherein including the delay penalty function in the calculation of the slack includes retrieving a delay penalty value for the at least one driver from a lookup table.
- 9. The method of claim 1, wherein the input circuit design includes at least one original driver, and wherein performing driver sizing optimization on the first set of solutions to generate a second set of solutions includes:
for a driver in a driver library having a same driver type as the original driver, calculating a slack for each solution in the second set of solutions based on a slack of the solution in the first set of solutions and at least one characteristic of the driver.
- 10. The method of claim 9, wherein the at least one characteristic includes a delay penalty associated with the driver.
- 11. The method of claim 1, wherein the solution from the second set of solutions output as the optimum circuit design is a solution in the second set of solutions having a maximum slack.
- 12. A computer program product in a computer readable medium for generating an optimum circuit design from an input circuit design, comprising:
first instructions for receiving the input circuit design; second instructions for performing buffer insertion optimization on the input circuit design to generate a first set of solutions having a plurality of solutions; third instructions for performing driver sizing optimization on the first set of solutions to generate a second set of solutions; and fourth instructions for outputting, as the optimum circuit design, a solution from the second set of solutions.
- 13. The computer program product of claim 12, further comprising:
fifth instructions for forming a circuit based on the optimum circuit design.
- 14. The computer program product of claim 12, wherein the second instructions for performing buffer insertion optimization include instructions for using a van Ginneken algorithm to perform buffer insertion in at least one net of the input circuit design.
- 15. The computer program product of claim 12, wherein the third instructions for performing driver sizing optimization on the first set of solutions include:
instructions for identifying at least one driver in a driver library having a same driver type as an original driver in the input circuit design; instructions for virtually inserting the at least one driver into each solution in the first set of solutions; and instructions for determining a second set of solutions based on the first set of solutions having the at least one driver virtually inserted.
- 16. The computer program product of claim 15, wherein the instructions for determining a second set of solutions based on the first set of solutions having the at least one driver virtually inserted include:
instructions for calculating, for each solution in the set of second solutions, a slack based on a slack of a corresponding solution in the first set of solutions and a delay through the at least one driver.
- 17. The computer program product of claim 16, wherein the instructions for calculating the slack for each solution in the set of second solutions include instructions for compensating for upstream effects of the at least one driver by including a delay penalty function in the calculation of the slack.
- 18. The computer program product of claim 17, wherein the delay penalty function is the minimum delay to drive a predetermined capacitance load by a cascaded buffer chain starting with a buffer having a smallest input capacitance.
- 19. The computer program product of claim 17, wherein the instructions for including the delay penalty function in the calculation of the slack include instructions for retrieving a delay penalty value for the at least one driver from a lookup table.
- 20. The computer program product of claim 12, wherein the input circuit design includes at least one original driver, and wherein the third instructions for performing driver sizing optimization on the first set of solutions to generate a second set of solutions include:
instructions for calculating, for a driver in a driver library having a same driver type as the original driver, a slack for each solution in the second set of solutions based on a slack of the solution in the first set of solutions and at least one characteristic of the driver.
- 21. The computer program product of claim 20, wherein the at least one characteristic includes a delay penalty associated with the driver.
- 22. The computer program product of claim 12, wherein the solution from the second set of solutions output as the optimum circuit design is a solution in the second set of solutions having a maximum slack.
- 23. An apparatus, in a data processing system, for generating an optimum circuit design from an input circuit design, comprising:
means for receiving the input circuit design; means for performing buffer insertion optimization on the input circuit design to generate a first set of solutions having a plurality of solutions; means for performing driver sizing optimization on the first set of solutions to generate a second set of solutions; and means for outputting, as the optimum circuit design, a solution from the second set of solutions.
RELATED APPLICATIONS
[0001] The present invention is related to the invention disclosed in copending and commonly assigned U.S. patent application Ser. No. 09/810,075 entitled “APPARATUS AND METHOD FOR DETERMINING BUFFERED STEINER TREES FOR COMPLEX CIRCUITS,” filed on Mar. 15, 2001, which is hereby incorporated by reference.