Claims
- 1. A computer implemented process for developing a circuit design layout comprising:
receiving a netlist that includes cells interconnected by circuit paths, wherein a plurality of the cells are scan cells connected in at least one scan chain; ordering the scan cells according to a prescribed scan cell ordering rule so as to produce a plurality of ordering relationships among scan cells; assigning respective weights from a first category of one or more weights to respective prescribed scan cell order relationships among scan cells of the netlist; assigning respective weights from a second category of one or more weights to prescribed circuit path relationships among cells of the netlist; and determining a physical placement of the cells of the netlist, including the scan cells, using a cost function that places the cells according to the assigned weights.
- 2. The process of claim 1 further including:
breaking scan connections between scan cells before the step of ordering; and stitching together scan cells in the design after the step of determining a physical placement of the cells.
- 3. The process of claim 1,
wherein the received netlist includes at least one first scan cell triggered by a first clock triggering edge and includes at least one second scan cell triggered by a second clock triggering edge; and further including:
receiving from a timing database clock timing information that indicates a source clock trigger time (CTT) of the first clock triggering edge and that indicates a source CTTs of the second clock triggering edge; and wherein the prescribed scan cell ordering rule orders each at least one first scan cell and each at least one second scan cell relative to each other in a design in descending order of the respective source CTT of the respective first and second triggering clock edges.
- 4. The process of claim 3,
wherein the received netlist includes at least one third scan cell triggered by a third clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that also indicates a source CTT of the third clock triggering edge; and wherein the prescribed scan cell ordering rule orders each at least one first scan cell and each at least one second scan cell and each at least one third scan cell relative to each other in a design in descending order of the respective source CTTs of the respective first, second and third triggering clock edges.
- 5. The process of claim 3,
wherein the received netlist includes at least one third scan cell triggered by a third clock triggering edge and includes at least one fourth scan cell triggered by a fourth clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that also indicates a source CTT of the third clock triggering edge and indicates a source CTT of the fourth clock triggering edge; and wherein the prescribed scan cell ordering rule orders each at least one first scan cell and each at least one second scan cell and each at least one third scan cell and each at least one fourth scan cell relative to each other in a design in descending order of the respective source CTTs of the respective first, second, third and fourth triggering clock edges.
- 6. The process of claim 1,
wherein the received netlist includes at least one first scan cell triggered by a first clock triggering edge and at least one second scan cells triggered by a second clock triggering edge; and further including:
receiving from a timing database clock timing information that indicates instance clock trigger time (CTT) of the first clock triggering edge at each of the at least one first scan cell and that indicates instance CTT of the second clock triggering edge at each of the at least one second scan cell; and wherein the prescribed scan cell ordering rule orders each at least one first scan cell and each at least one second scan cell relative to each other in a design in descending order of their instance CTTs.
- 7. The process of claim 6,
wherein the received netlist includes at least one third scan cell triggered by a third clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that indicates instance CTT of the third clock triggering edge at each of the at least one third scan cell; and wherein the prescribed scan cell ordering rule orders each at least one first scan cell and each at least one second scan cell and each at least one third scan cell relative to each other in a design in descending order of their instance CTTs.
- 8. The process of claim 6,
wherein the received netlist includes at least one third scan cell triggered by a third clock triggering edge and includes at least one fourth scan cell triggered by a fourth clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that indicates instance CTT of the third clock triggering edge at each of the at least one third scan cell and receiving clock timing information that indicates instance CTT of the fourth clock triggering edge at each of the at least one fourth scan cell; and wherein the prescribed scan cell ordering rule orders each at least one first scan cell and each at least one second scan cell and each at least one third scan cell and each at least one fourth scan cell relative to each other in a design in descending order of their instance CTTs.
- 9. The process of claim 1,
wherein the received netlist includes multiple scan cells in which a first set of the multiple scan cells is triggered by a first triggering clock edge and a second set of the multiple scan cells is triggered by a second triggering clock edge; and further including:
receiving from a timing database clock timing information that indicates a source clock trigger time (CTT) of the first clock triggering edge and that indicates a source CTT of the second clock triggering edge; and receiving from the timing database clock timing information that respectively indicates instance CTTs of the first triggering clock edge at individual scan cells of the first set and that respectively indicates instance CTTs of the second triggering clock edge at individual scan cells of the second set; and wherein the prescribed scan cell ordering rule orders the multiple scan cells in a design so that the scan cells are ordered relative to each other in descending order of their source CTTs and so that scan cells are further ordered relative to each other in descending order of their instance CTTs.
- 10. The process of claim 9,
wherein the multiple scan cells includes a third set of the multiple scan cells triggered by a third triggering clock edge; wherein receiving from the timing database includes receiving clock timing information that indicates a source CTT of the third clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that respectively indicates instance CTTs of the third triggering clock edge at individual scan cells of the third set; and wherein the prescribed scan cell ordering rule orders the multiple scan cells in a design so that the scan cells are ordered relative to each other in descending order of their source CTTs and so that scan cells are further ordered relative to each other in descending order of their instance CTTs.
- 11. The process of claim 9,
wherein the multiple scan cells includes a third set of the multiple scan cells triggered by a third triggering clock edge and that includes a fourth set of the multiple scan cells triggered by a fourth triggering clock edge; wherein receiving from the timing database includes receiving clock timing information that indicates a source CTT of the third clock triggering edge and that indicates a source CTT of the fourth clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that respectively indicates instance CTTs of the third triggering clock edge at individual scan cells of the third set and includes receiving clock timing information that respectively indicates instance CTTs of the fourth triggering clock edge at individual scan cells of the fourth set; and wherein the prescribed scan cell ordering rule orders the multiple scan cells in a design so that the scan cells are ordered relative to each other in descending order of their source CTTs and so that scan cells are further ordered relative to each other in descending order of their instance CTTs.
- 12. For use with a timing database, a computer implemented process for electronic design automation comprising:
receiving a netlist including at least one first scan cell triggered by a first clock triggering edge and at least one second scan cells triggered by a second clock triggering edge; receiving from the timing database clock timing information that indicates a source clock trigger time (CTT) of the first clock triggering edge and that indicates a source CTT of the second clock triggering edge; and ordering each at least one first scan cell and each at least one second scan cell relative to each other in a design in descending order of the respective source CTTs of the respective first and second triggering clock edges.
- 13. The process of claim 12,
wherein the first clock triggering edge is a triggering edge of a first periodic clock signal; and wherein the second clock triggering edge is a triggering edge of a second periodic clock signal.
- 14. The process of claim 12,
wherein the first clock triggering edge and the second clock triggering edge are parts of one periodic clock signal.
- 15. The process of claim 12 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell in a scan chain in the design.
- 16. The computer implemented process of claim 12 further including:
receiving an HDL description of an integrated circuit design; and generating the netlist based upon the HDL description.
- 17. The computer implemented process of claim 16,
wherein generating the netlist includes insertion of scan cells.
- 18. The process of claim 12,
wherein receiving the netlist includes receiving a netlist that also includes at least one third scan cell triggered by a third clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that indicates a source CTT of the third clock triggering edge; and wherein ordering includes ordering each at least one first scan cell and each at least one second scan cell and each at least one third scan cell relative to each other in a design in descending order of the respective source CTTs of the respective first, second and third triggering clock edges.
- 19. The process of claim 18,
wherein the first clock triggering edge is a first triggering edge of a first periodic clock signal; wherein the second clock triggering edge is a second triggering edge of the first periodic clock signal; wherein the third clock triggering edge is a triggering edge of a second periodic clock signal.
- 20. The process of claim 18 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell and each of the at least one third scan cell in a scan chain in the design.
- 21. The process of claim 12,
wherein receiving the netlist includes receiving a netlist that also includes at least one third scan cell triggered by a third clock triggering edge and includes at least one fourth scan cell triggered by a fourth clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that indicates a source CTT of the third clock triggering edge and indicates a source CTT of the fourth clock triggering edge; and wherein ordering includes ordering each at least one first scan cell and each at least one second scan cell and each at least one third scan cell and each at least one fourth scan cell relative to each other in a design in descending order of the respective source CTTs of the respective first, second, third and fourth triggering clock edges.
- 22. The process of claim 21,
wherein the first clock triggering edge is a first triggering edge of a first periodic clock signal; wherein the second clock triggering edge is a second triggering edge of the first periodic clock signal; wherein the third clock triggering edge is a first triggering edge of a second periodic clock signal; and wherein the fourth clock triggering edge is a second triggering edge of the second periodic clock signal.
- 23. The process of claim 12 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell and each of the at least one third scan cell and each of the at least one fourth scan cell in a scan chain in the design.
- 24. For use with a timing database, a computer implemented process for electronic design automation comprising:
receiving a netlist including at least one first scan cell triggered by a first clock triggering edge and at least one second scan cells triggered by a second clock triggering edge; receiving from the timing database clock timing information that indicates instance clock trigger time (CTT) of the first clock triggering edge at each of the at least one first scan cell and that indicates instance CTT of the second clock triggering edge at each of the at least one second scan cell; and ordering each at least one first scan cell and each at least one second scan cell relative to each other in a design in descending order of instance CTTs.
- 25. The process of claim 24,
wherein the first clock triggering edge is a triggering edge of a first periodic clock signal; and wherein the second clock triggering edge is a triggering edge of a second periodic clock signal.
- 26. The process of claim 24,
wherein the first clock triggering edge and the second clock triggering edge are parts of one periodic clock signal.
- 27. The process of claim 24 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell in a scan chain in the design.
- 28. The computer implemented process of claim 24 further including:
receiving an HDL description of an integrated circuit design; and generating the netlist based upon the HDL description.
- 29. The computer implemented process of claim 28,
wherein generating the netlist includes insertion of scan cells.
- 30. The process of claim 24,
wherein receiving the netlist includes receiving a netlist that also includes at least one third scan cell triggered by a third clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that indicates instance CTT of the third clock triggering edge at each of the at least one third scan cell; and wherein ordering includes ordering each at least one first scan cell and each at least one second scan cell and each at least one third scan cell relative to each other in a design in descending order of instance CTTs.
- 31. The process of claim 30,
wherein the first clock triggering edge is a first triggering edge of a first periodic clock signal; wherein the second clock triggering edge is a second triggering edge of the first periodic clock signal; wherein the third clock triggering edge is a triggering edge of a second periodic clock signal.
- 32. The process of claim 30 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell and each of the at least one third scan cell in a scan chain in the design.
- 33. The process of claim 24,
wherein receiving the netlist includes receiving a netlist that also includes at least one third scan cell triggered by a third clock triggering edge and includes at least one fourth scan cell triggered by a fourth clock triggering edge; wherein receiving from the timing database includes receiving clock timing information that indicates instance CTT of the third clock triggering edge at each of the at least one third scan cell and receiving clock timing information that indicates instance CTT of the fourth clock triggering edge at each of the at least one fourth scan cell; and wherein ordering includes ordering each at least one first scan cell and each at least one second scan cell and each at least one third scan cell and each at least one fourth scan cell relative to each other in a design in descending order of instance CTTs.
- 34. The process of claim 33,
wherein the first clock triggering edge is a first triggering edge of a first periodic clock signal; wherein the second clock triggering edge is a second triggering edge of the first periodic clock signal; wherein the third clock triggering edge is a first triggering edge of a second periodic clock signal; and wherein the fourth clock triggering edge is a second triggering edge of the second periodic clock signal.
- 35. The process of claim 24 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell and each of the at least one third scan cell and each of the at least one fourth scan cell in a scan chain in the design.
- 36. For use with a timing database, a computer implemented process for electronic design automation comprising:
receiving a netlist including multiple scan cells in which a first set of the multiple scan cells is triggered by a first triggering clock edge and a second set of the multiple scan cells is triggered by a second triggering clock edge; receiving from the timing database clock timing information that indicates a source clock trigger time (CTT) of the first clock triggering edge and that indicates a source CTT of the second clock triggering edge; receiving from the timing database clock timing information that respectively indicates instance CTTs of the first triggering clock edge at respective scan cells of the first set and that respectively indicates instance CTTs of the second triggering clock edge at respective scan cells of the second set; and ordering the multiple scan cells in a design so that the scan cells are ordered relative to each other in descending order of source CTTs and so that scan cells are further ordered relative to each other in descending order of arrival time of their instance CTTs.
- 37. The process of claim 36,
wherein the first clock triggering edge is a triggering edge of a first periodic clock signal; and wherein the second clock triggering edge is a triggering edge of a second periodic clock signal.
- 38. The process of claim 36,
wherein the first clock triggering edge second clock triggering edge are parts of one periodic clock signal.
- 39. The process of claim 36 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell in a scan chain in the design.
- 40. The computer implemented process of claim 36 further including:
receiving an HDL description of an integrated circuit design; and generating the netlist based upon the HDL description.
- 41. The computer implemented process of claim 40, wherein generating the netlist includes insertion of scan cells.
- 42. The process of claim 36,
wherein receiving the netlist includes receiving a netlist that also includes a third set of the multiple scan cells triggered by a third triggering clock edge; and wherein receiving from the timing database includes receiving clock timing information that indicates a source clock trigger time of the third clock triggering edge.
- 43. The process of claim 42,
wherein the first clock triggering edge is a first triggering edge of a first periodic clock signal; wherein the second clock triggering edge is a second triggering edge of the first periodic clock signal; wherein the third clock triggering edge is a triggering edge of a second periodic clock signal.
- 44. The process of claim 42 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell and each of the at least one third scan cell in a scan chain in the design.
- 45. The process of claim 36,
wherein receiving the netlist includes receiving a netlist that also includes a third set of the multiple scan cells triggered by a third triggering clock edge and that includes a fourth set of the multiple scan cells triggered by a fourth triggering clock edge; and wherein receiving from the timing database includes receiving clock timing information that indicates a source CTT of the third clock triggering edge and that indicates a source CTT of the fourth clock triggering edge; and wherein receiving from the timing database further includes receiving clock timing information that indicates instance CTTs of the third triggering clock edge at respective scan cells of the third set and that indicates instance CTTs of the fourth triggering clock edge at respective scan cells of the fourth set.
- 46. The process of claim 45,
wherein the first clock triggering edge is a first triggering edge of a first periodic clock signal; wherein the second clock triggering edge is a second triggering edge of the first periodic clock signal; wherein the third clock triggering edge is a first triggering edge of a second periodic clock signal; and wherein the fourth clock triggering edge is a second triggering edge of the second periodic clock signal.
- 47. The process of claim 36 further including:
stitching directly each of the at least one first scan cell and each of the at least one second scan cell and each of the at least one third scan cell and each of the at least one fourth scan cell in a scan chain in the design.
- 48. For use with a timing database, a computer-implemented process for electronic design automation comprising:
receiving a netlist including multiple scan cells in which a first set of the multiple scan cells is triggered by a first triggering clock edge and a second set of the multiple scan cells is triggered by a second triggering clock edge; receiving from the timing database clock timing information that indicates at least one respective first triggering clock edge clock trigger time (CTT) associated with respective scan cells of the first set and that indicates at least one respective second triggering clock edge CCT associated with respective scan cells of the second set; receiving from the timing database clock tree information that identifies respective source clock roots of each of the respective triggering clock edges; partitioning the multiple respective scan cells into respective subgroups based upon respective source clock roots of their respective triggering clock edges, such that each respective subgroup contains only scan cells triggered by a clock edge from the same source clock root and such that scan cells of different respective subgroups are triggered by clock edges from different source clock roots; for each respective subgroup, designating a respective time value indicative of the CTTs associated with the scan cells of the respective subgroup; ordering the respective subgroups of scan cells relative to each other in a subgroup order in which the respective subgroups of scan cells are ordered relative to each other in descending order of their respective designated time values; ordering respective scan cells within the respective subgroups so that respective scan cells within a respective given subgroup are ordered relative to other scan cells within the same given subgroup so as to optimize at least one placement criterion.
- 49. The process of claim 48,
wherein the at least one placement criterion includes wire length minimization.
- 50. The process of claim 48,
wherein the at least one placement criterion includes wire congestion minimization.
- 51. The process of claim 48,
wherein ordering scan cells within respective subgroups involves computation of a cost function to determine respective subgroup scan cell ordering that optimizes the at least one placement criterion.
- 52. The computer implemented process of claim 48,
wherein receiving from the timing database clock timing information that indicates at least one respective first triggering clock edge CTT includes, receiving a respective instance CTT for each respective scan cell of the first set; and wherein receiving from the timing database clock timing information that indicates at least one respective second triggering clock edge CTT includes, receiving a respective instance CTT for each respective scan cell of the second set.
- 53. The computer implemented process of claim 48,
wherein receiving from the timing database clock timing information that indicates at least one respective first triggering clock edge CTT includes, receiving a respective instance CTT for each respective scan cell of the first set; and wherein receiving from the timing database clock timing information that indicates at least one respective second triggering clock edge CTT includes, receiving a respective instance CTT for each respective scan cell of the second set; and wherein for each respective subgroup, the respective designated time value is a respective earliest instance CTT of respective scan cells of the respective subgroup.
- 54. The computer implemented process of claim 48,
wherein receiving from the timing database clock timing information that indicates at least one respective first triggering clock edge CTT includes, receiving a respective instance CTT for each respective scan cell of the first set; wherein receiving from the timing database clock timing information that indicates at least one respective second triggering clock edge CTT includes, receiving a respective instance CTT for each respective scan cell of the second set; and wherein ordering respective scan cells within the respective subgroups involves ordering two respective scan cells within a respective given subgroup in descending instance CTT order in spite of the at least one placement optimization criterion if a difference between instance CTTs for such two respective scan cells exceeds a prescribed threshold.
- 55. The computer implemented process of claim 48,
wherein receiving from the timing database clock timing information that indicates at least one respective first triggering clock edge CTT includes, receiving a respective source CTT associated with the scan cells of the first set; and wherein receiving from the timing database clock timing information that indicates at least one respective second triggering clock edge CTT includes, receiving a respective source CTT associated with the scan cells of the second set.
- 56. The computer implemented process of claim 48,
wherein receiving from the timing database clock timing information that indicates at least one respective first triggering clock edge CTT includes, receiving a respective source CTT associated with the scan cells of the first set; wherein receiving from the timing database clock timing information that indicates at least one respective second triggering clock edge CTT includes, receiving a respective source CTT associated with the scan cells of the second set; and wherein for each respective subgroup, the respective designated time value is the respective source CTT associated with the respective set of scan cells of the respective subgroup.
- 57. The process of claim 48,
wherein the first clock triggering edge is a triggering edge of a first periodic clock signal; and wherein the second clock triggering edge is a triggering edge of a second periodic clock signal.
- 58. The process of claim 48,
wherein the first clock triggering edge and the second clock triggering edge are parts of one periodic clock signal.
- 59. The process of claim 48 further including:
stitching each of the at least one first scan cell and each of the at least one second scan cell in a scan chain in the design.
- 60. The computer implemented process of claim 48 further including:
receiving an HDL description of an integrated circuit design; and generating the netlist based upon the HDL description.
- 61. The computer implemented process of claim 57,
wherein generating the netlist includes insertion of scan cells.
- 62. The process of claim 48,
wherein receiving the netlist includes receiving a netlist that also includes a third set of the multiple scan cells triggered by a third triggering clock edge; and wherein receiving from the timing database includes receiving clock timing information that indicates respective third clock triggering edge CTTs associated with respective scan cells of the third set.
- 63. The process of claim 48,
wherein receiving the netlist includes receiving a netlist that also includes a third set of the multiple scan cells triggered by a third triggering clock edge and that includes a fourth set of the multiple scan cells triggered by a fourth triggering clock edge; and wherein receiving from the timing database includes receiving clock timing information that indicates third clock triggering edge CTTs associated with respective scan cells of the third set and that indicates fourth clock triggering edge CTTs associated with respective scan cells of the fourth set.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] This application claims priority to and benefit of the filing date of provisional patent application Serial No. 60/397,094, filed Jul. 18, 2002, which is incorporated herein by this reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60397094 |
Jul 2002 |
US |