Element placement method and apparatus
First Claim
1. A method of performing placement of a plurality of elements for electronic circuit design, comprising:
- a) providing a plurality of processing units, each processing unit of the plurality of processing units being able to communicate with one or more neighboring processing units of the plurality of processing units;
b) establishing an initial placement for the elements by forming an initial association between each element and a processing unit;
c) for each processing unit, in parallel, updating or not updating a list of processing units associated with the elements to be connected with the element associated with that processing unit;
d) repeating step c) for a number of times; and
e) for each processing unit, in parallel;
e1) selecting a pairing processing unit to be paired with the processing unit; and
e2) determining whether to exchange, between the processing unit and the pairing processing unit, the elements associated with the processing unit and the pairing processing unit.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and a device for performing placement of a plurality of elements for circuit design. A potential location is assigned to each element and a placement engine is assigned to each potential location. Pairing operations are performed, in parallel, between placement engines to determine whether to perform exchange of the elements associated with the engines. Exchange determination is based both on a cost function and on randomness considerations. Also self-placement is allowed, where the placement engines are implemented on the same hardware system on which the elements are to be placed.
-
Citations
60 Claims
-
1. A method of performing placement of a plurality of elements for electronic circuit design, comprising:
-
a) providing a plurality of processing units, each processing unit of the plurality of processing units being able to communicate with one or more neighboring processing units of the plurality of processing units;
b) establishing an initial placement for the elements by forming an initial association between each element and a processing unit;
c) for each processing unit, in parallel, updating or not updating a list of processing units associated with the elements to be connected with the element associated with that processing unit;
d) repeating step c) for a number of times; and
e) for each processing unit, in parallel;
e1) selecting a pairing processing unit to be paired with the processing unit; and
e2) determining whether to exchange, between the processing unit and the pairing processing unit, the elements associated with the processing unit and the pairing processing unit. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A method for coordinating exchanges among distributed parallel processing units, wherein:
-
each processing unit is locally connected with one or more neighboring processing units;
each processing unit is able to be associated with an element, to be ordered according to a predetermined criterion;
each processing unit is able to be paired with one of the one or more processing unit to reach a determination on whether to exchange associations with the respective elements between the paired processing units, the determination being in part based on randomness and in part based on a cost function.
-
-
31. A placement device for performing placement of a plurality of elements for electronic circuit design, comprising a plurality of processing units, wherein:
-
each processing unit of the plurality of processing units is able to communicate with one or more neighboring processing units of the plurality of processing units;
each processing unit of the plurality of processing units is able to be associated with one element of the plurality of elements to be placed;
each processing unit comprises an exchangeable element connection list of elements to be connected with the element associated with the processing unit and a corresponding updatable processing unit connection list of processing units associated with the elements of the element connection list. - View Dependent Claims (32, 33)
-
-
34. A processing unit for use in a placement device performing placement of a plurality of elements for electronic circuit design, the processing unit being associatable with an element of the plurality of elements and comprising a content addressable memory (CAM), the CAM comprising:
-
a first memory component storing a connection list of elements connected, in the placement, with the element associated with the processing unit; and
a plurality of second memory components connected with the first memory component, each second memory component able to store information about one element of the elements of the connection list, wherein the CAM operates according to either;
a first mode, where the connection list stored in the first memory component is exchanged with a connection list of another processing unit;
ora second mode, where the second memory components are set to store information in accordance with the connection list;
ora third mode, where identification information of an element received by the CAM is compared with the information stored in the second memory components, to provide address information of a location storing position information of a processing unit associated with the element whose identification information is received. - View Dependent Claims (35, 36, 37)
-
-
38. A method of performing placement of a plurality of elements for electronic circuit design, comprising:
-
a) providing a plurality of processing units, each unit being able to be associated with one or more of the elements to be placed;
b) for each processing unit;
b1) selecting a pairing processing unit to be paired with the processing unit; and
b2) determining whether to exchange, between the processing unit and the pairing processing unit, the elements associated with the processing unit and the pairing processing unit; and
c) for each processing unit, updating a list of processing units associated with the elements to be connected with the one or more elements associated with that processing unit. - View Dependent Claims (39, 40, 41, 42, 43, 44, 45, 46)
-
-
47. A method of performing placement of a plurality of elements, comprising:
-
assigning a potential location to each element;
assigning a placement engine to each potential location, whereby each element is assigned to a placement engine; and
performing pairing operations between placement engines, wherein, at the end of each pairing operation, association of the elements to the paired placement engines is either exchanged or remains the same. - View Dependent Claims (48, 49, 50, 51)
-
-
52. A method of performing placement of a plurality of elements by means of processing units built out of a plurality of said elements, comprising:
-
grouping elements and configuring the elements to be processing units;
combining the elements to be placed in clusters of elements;
performing cluster placement on the clusters; and
performing element placement on the elements combined in the placed clusters, wherein cluster placement is performed through;
assignment of a processing unit to each cluster;
pairing operations between processing units, wherein, at the end of each pairing operation, association of the clusters to the paired processing unit is either exchanged or remains the same. - View Dependent Claims (53, 54, 55)
-
-
56. A method of performing placement of elements by means of processing units built out of a plurality of said elements, comprising:
-
performing a first design transformation such that transformed elements to be placed each contain sufficient resources to implement a processing unit;
configuring the device as a set of processing units; and
performing placement on the transformed elements using said set of processing units. - View Dependent Claims (57, 58, 59, 60)
-
Specification