Method and apparatus for parallel routing locking mechanism
First Claim
1. A method for implementing net routing for an integrated circuit design with parallel processors, said method comprising the following steps:
- a. creating a character array that includes plural positions, each position capable of holding a character;
b. filling said character array with a first character;
c. dividing a plurality of nets into groups;
d. supplying a plurality of locks and assigning each said group its own individual lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock;
e. assigning to each net in said plurality of nets a position in the character array; and
f. placing a second character in the position of a particular net in said character array when the net is operated on by a processor and replacing said second character with the first character after said operation is completed.
10 Assignments
0 Petitions
Accused Products
Abstract
A method for implementing net routing for an integrated circuit design with parallel processors, said method comprising the steps of creating a character array, filling said character array with a first character, dividing a plurality of nets into groups, supplying a plurality of locks and assigning each said group its own individual lock, assigning for each net in said plurality of nets a position in the character array; and placing a second character in the position of a particular net in said character array when the net is operated on by a processor and replacing said second character with the first character after said operation is completed.
27 Citations
22 Claims
-
1. A method for implementing net routing for an integrated circuit design with parallel processors, said method comprising the following steps:
-
a. creating a character array that includes plural positions, each position capable of holding a character;
b. filling said character array with a first character;
c. dividing a plurality of nets into groups;
d. supplying a plurality of locks and assigning each said group its own individual lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock;
e. assigning to each net in said plurality of nets a position in the character array; and
f. placing a second character in the position of a particular net in said character array when the net is operated on by a processor and replacing said second character with the first character after said operation is completed. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus for implementing net routing for an integrated circuit design with parallel processors, said apparatus comprising:
-
a. means for creating a character array that includes plural positions, each position capable of holding a character;
b. means for filling said character array with a first character;
c. means for dividing a plurality of nets into groups;
d. means for supplying a plurality of locks and assigning each said group its own individual lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock;
e. means for assigning to each net in said plurality of nets a position in the character array; and
f. means for placing a second character in the position of a particular net in said character array when the net is operated on by a processor and replacing said second character with the first character after said operation is completed. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer storage device with computer encoded instructions thereon for implementing net routing for an integrated circuit design with parallel processors, said method comprising the following steps:
-
a. a computer encoded instruction for creating a character array that includes plural positions, each position capable of holding a character;
b. a computer encoded instruction for filling said character array with a first character;
c. a computer encoded instruction for dividing a plurality of nets into groups;
d. a computer encoded instruction for supplying a plurality of locks and assigning each said group its own individual lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock;
e. a computer encoded instruction for assigning to each net in said plurality of nets a position in the character array; and
f. a computer encoded instruction for placing a second character in the position of a particular net in said character array when the net is operated on by a processor and replacing said second character with the first character after said operation is completed.
-
-
16. A method for routing nets in a circuit, said method comprising:
-
defining a character array that includes plural positions, including a position for each of plural nets in the circuit, wherein each position is capable of holding a character;
dividing the plural nets into groups of nets;
supplying a plurality of locks and assigning each said group its own lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock; and
routing said plural nets using parallel processors, wherein in order for one of the parallel processors to route a portion of a net selected from said plural nets, said one of the parallel processors must first;
(a) obtain the lock corresponding to the group to which the net belongs, and (b) alter a character at the position in the character array that corresponds to the net from a first character to a second character. - View Dependent Claims (17, 18, 19, 20)
-
-
21. An apparatus for routing nets in a circuit, said apparatus comprising:
-
defining a character array that includes plural positions, including a position for each of plural nets in the circuit, wherein each position is capable of holding a character;
means for dividing the plural nets into groups of nets;
means for supplying a plurality of locks and assigning each said group its own lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock; and
means for routing said plural nets using parallel processors, wherein in order for one of the parallel processors to route a portion of a net selected from said plural nets, said one of the parallel processors must first;
(a) obtain the lock corresponding to the group to which the net belongs, and (b) alter a character at the position in the character array that corresponds to the net from a first character to a second character.
-
-
22. A computer-readable medium storing computer-executable process steps for routing nets in a circuit, process steps comprising steps to:
-
define a character array that includes plural positions, including a position for each of plural nets in the circuit, wherein each position is capable of holding a character;
divide the plural nets into groups of nets;
supply a plurality of locks and assigning each said group its own lock, wherein each lock allows multiple processors to synchronize their operations with respect to the nets in the group assigned to the lock; and
route said plural nets using parallel processors, wherein in order for one of the parallel processors to route a portion of a net selected from said plural nets, said one of the parallel processors must first;
(a) obtain the lock corresponding to the group to which the net belongs, and (b) alter a character at the position in the character array that corresponds to the net from a first character to a second character.
-
Specification