Method and apparatus for assigning nets to metal layers during circuit routing
First Claim
1. A method for routing nets between cells in a circuit layout, comprising:
- receiving a circuit design for circuit routing, wherein the circuit design includes a plurality of circuit blocks that have been placed at specific locations in the circuit layout;
determining estimated lengths for nets coupling the plurality of circuit blocks;
calculating a delay for nets coupling the plurality of circuit blocks using a class one rule, wherein the class one rule assigns the given net to a first through fourth metal layer; and
if the delay in a given net is greater than a specified delay, inserting a virtual repeater in the given net to decrease the delay.
2 Assignments
0 Petitions
Accused Products
Abstract
One embodiment of the present invention provides a system that facilitates routing nets between cells in a circuit layout. During operation, the system receives a circuit design to be routed, wherein the circuit design includes multiple circuit blocks that have been placed at specific locations within the circuit layout. Next, the system determines estimated lengths for nets that couple these circuit blocks together. The system then calculates the delay for the nets that couple the circuit blocks using a class one rule. If the delay in a given net is greater than a specified delay, the system inserts a virtual repeater into the given net to decrease the delay.
8 Citations
35 Claims
-
1. A method for routing nets between cells in a circuit layout, comprising:
-
receiving a circuit design for circuit routing, wherein the circuit design includes a plurality of circuit blocks that have been placed at specific locations in the circuit layout;
determining estimated lengths for nets coupling the plurality of circuit blocks;
calculating a delay for nets coupling the plurality of circuit blocks using a class one rule, wherein the class one rule assigns the given net to a first through fourth metal layer; and
if the delay in a given net is greater than a specified delay, inserting a virtual repeater in the given net to decrease the delay. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
calculating the delay for nets coupling the plurality of circuit blocks using a class two rule; and
if the delay in the given net is greater than the specified delay, inserting the virtual repeater in the given net to decrease the delay.
-
-
6. The method of claim 5, wherein the class two rule assigns the given net to a fifth through sixth metal layer.
-
7. The method of claim 5, wherein if the delay is less than one clock cycle, the method further comprises assigning the given net to a second group.
-
8. The method of claim 7, wherein if the delay is not less than one clock cycle the method further comprises:
-
calculating the delay for nets coupling the plurality of circuit blocks using a class three rule; and
if the delay in the given net is greater than the specified delay, inserting the virtual repeater in the given net to decrease the delay.
-
-
9. The method of claim 8, wherein the class three rule assigns the given net to a seventh through eighth metal layer.
-
10. The method of claim 8, wherein if the delay is less than one clock cycle, the method further comprises assigning the given net to a third group.
-
11. The method of claim 10, further comprising reporting the first group, the second group, and the third group, whereby reporting these groups provides a starting assignment of nets to metal layers for a subsequent routing process.
-
12. The method of claim 8, wherein if the delay is not less than one clock cycle, the method further comprises:
-
inserting a virtual flip-flop in the given net;
changing a delay criterion from greater than one clock cycle to greater than two clock cycles; and
repeating the method from calculating the delay for nets coupling the plurality of circuit blocks using the class one rule.
-
-
13. A computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for routing nets between cells in a circuit layout, comprising:
-
receiving a circuit design for circuit routing, wherein the circuit design includes a plurality of circuit blocks that have been placed at specific locations in the circuit layout;
determining estimated lengths for nets coupling the plurality of circuit blocks;
calculating a delay for nets coupling the plurality of circuit blocks using a class one rule, wherein the class one rule assigns the given net to a first through fourth metal layer; and
if the delay in a given net is greater than a specified delay, inserting a virtual repeater in the given net to decrease the delay. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
calculating the delay for nets coupling the plurality of circuit blocks using a class two rule; and
if the delay in the given net is greater than the specified delay, inserting the virtual repeater in the given net to decrease the delay.
-
-
18. The computer-readable storage medium of claim 17, wherein the class two rule assigns the given net to a fifth through sixth metal layer.
-
19. The computer-readable storage medium of claim 17, wherein if the delay is less than one clock cycle, the method further comprises assigning the given net to a second group.
-
20. The computer-readable storage medium of claim 19, wherein if the delay is not less than one clock cycle the method further comprises:
-
calculating the delay for nets coupling the plurality of circuit blocks using a class three rule; and
if the delay in the given net is greater than the specified delay, inserting the virtual repeater in the given net to decrease the delay.
-
-
21. The computer-readable storage medium of claim 20, wherein the class three rule assigns the given net to a seventh through eighth metal layer.
-
22. The computer-readable storage medium of claim 20, wherein if the delay is less than one clock cycle, the method further comprises assigning the given net to a third group.
-
23. The computer-readable storage medium of claim 22, further comprising reporting the first group, the second group, and the third group, whereby reporting these groups provides a starting assignment of nets to metal layers for a subsequent routing process.
-
24. The computer-readable storage medium of claim 20, wherein if the delay is not less than one clock cycle, the method further comprises:
-
inserting a virtual flip-flop in the given net;
changing a delay criterion from greater than one clock cycle to greater than two clock cycles; and
repeating the method from calculating the delay for nets coupling the plurality of circuit blocks using the class one rule.
-
-
25. An apparatus for routing nets between cells in a circuit layout, comprising:
-
a receiving mechanism that is configured to receive a circuit design for circuit routing, wherein the circuit design includes a plurality of circuit blocks that have been placed at specific locations in the circuit layout;
a determining mechanism that is configured to determine estimated lengths for nets coupling the plurality of circuit blocks;
a calculating mechanism that is configured to calculate a delay for nets coupling the plurality of circuit blocks using a class one rule, wherein the class one rule assigns the given net to a first through fourth metal layer; and
an inserting mechanism that is configured to insert a virtual repeater in a given net to decrease the delay. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
the calculating mechanism is further configured to calculate the delay for nets coupling the plurality of circuit blocks using a class two rule; and
the inserting mechanism is further configured to insert the virtual repeater in the given net to decrease the delay.
-
-
30. The apparatus of claim 29, wherein the class two rule assigns the given net to a fifth through sixth metal layer.
-
31. The apparatus of claim 29, wherein the assigning mechanism is further configured to assign the given net to a second group.
-
32. The apparatus of claim 31, wherein:
-
the calculating mechanism is further configured to calculate the delay for nets coupling the plurality of circuit blocks using a class three rule; and
the inserting mechanism is further configured to insert the virtual repeater in the given net to decrease the delay.
-
-
33. The apparatus of claim 32, wherein the class three rule assigns the given net to a seventh through eighth metal layer.
-
34. The apparatus of claim 32, wherein the assigning mechanism is further configured to assign the given net to a third group.
-
35. The apparatus of claim 34, further comprising a reporting mechanism that is configured to report the first group, the second group, and the third group, whereby reporting these groups provides a starting assignment of nets to metal layers for a subsequent routing process.
Specification