US 6560505 B1 Abstract An automatic parts placement system is provided which is capable of placing parts in proper positions, in a short time, on a printed wiring board to realize the shortest total wiring length. Parts are each added to a parts group which is generated based on a position designated part and parts specific gravity of the part is determined. The heavier parts specific gravity of part is placed in the closer position relative to the position designated part, by applying actual specific gravity in physical phenomenon.
Claims(34) 1. An automatic parts placement system comprising:
a storage device which stores net data of a net connecting between terminals of parts, parts data, and position data of position designated parts;
a deriving unit which derives parts group from a plurality of parts;
a partition producing unit which divides a parts placement zone into a plurality of partitions according to the total area of all the parts in the parts group, each partition having a predetermined shape and being related to the parts group;
a parts specific gravity calculating unit which calculates, for each partition, a parts specific gravity of a undefined part by subtracting, from the number of nets connecting between placed parts and the undefined part in the partition, the number of other nets connected to the undefined part, and by dividing the result of subtracting by the area of the undefined part;
a one-dimensional placing unit which places the undefined parts nearby the placed part in descending order of the parts specific gravity on a first one-dimensional axis to produces a first one-dimensional parts placement, and which places the undefined parts adjacent to the placed part in the descending order of the parts specific gravity on a second one-dimensional axis perpendicular to the first one-dimensional axis to produces a second one-dimensional parts placement; and
a two-dimensional placing unit which places, for each partition, the undefined parts on a two-dimensional plane by using the first one-dimensional parts placement and the second one-dimensional parts placement.
2. The system of
3. The system of
a part adding unit which calculates parts specific gravities of parts being not included in the parts group derived by the deriving unit, and adds the parts to the parts group in descending order of its parts specific gravity.
4. The system of
a part adding unit which calculates parts specific gravities of parts being not included in the parts group derived by the deriving unit, and adds the parts to the parts group in descending order of its parts specific gravity.
5. The system of
a quadrilateral deriving unit which derives any shape of quadrilateral including a set of parts placed by the two-dimensional placing unit; and
a mapping unit which maps the quadrilateral to a rectangular shape in the partition and maps the positions of the parts and the quadrilateral in the partition.
6. The system of
a dividing unit which divides the parts group in the partition into a plurality of parts or parts groups and subdivides the partition into a plurality of divided zones by the use of vertical and horizontal division lines according to an area of the divided part or parts group;
a parts group dividing unit which divides the parts group until all the parts are each included in a single divided zone; and
a center placing unit which places the part in the center of the divided zone.
7. The system of
a divided zone deriving unit which produces divided zones by equally dividing the partition in the direction of two-dimensional coordinate axes which are perpendicular to each other;
an attractive force calculating unit which determines attractive force directed to a part zone by calculating adjacent force which is the number of nets connecting the part to other parts in the zones next to the part, by calculating, for each net connecting the part to other parts in the zones not next to the part, unit vector directed to the direction of the connected part, by calculating divergence vector which is the sum of the unit vector, and by calculating the part's attractive force to the part zone which is determined by subtracting an absolute value of the divergence vector from the adjacent force; and
a first part moving unit which moves the part to the other zone in ascending order of the attractive force when a plurality of parts resides in a single divided zone.
8. The system of
9. The system of
a part data producing unit which determines a cluster including a set of parts which connect to the designated bus wiring, and produces part data storing relative positions of the parts in the first one-dimensional parts placement as relative positions of parts in the cluster; and
a part placement calculating unit which calculates parts placement with keeping the relative position of the parts in the cluster.
10. An automatic parts placement device which automatically places parts on two-dimensional parts placement zone, the device comprising:
a part data input device which inputs shapes and areas of the parts and net data of nets connecting between the parts, and stores them to a storage device;
an operational instruction input device which designates placement position of a position designated part in response to an operational instruction;
a cluster producing unit which produces a cluster including parts each of which has strong net connectivity;
a first parts specific gravity calculating unit which derives a parts specific gravity for each combination of a part and a parts group;
a parts group producing unit which adds a part to a parts group having a plurality of parts around the position designated part;
a re-distributing unit which moves a part from a current parts group to another parts group which has stronger connectivity to the part;
a partition producing unit which produces a rectangular shape of partition by dividing a parts placement zone according to a ratio of an area of the parts group;
a one-dimensional parts specific gravity calculating unit which calculates a parts specific gravity based on the number of nets connecting in the direction of a one-dimensional coordinate axis of the part;
a one-dimensional lining unit which lines the parts on a first one-dimensional coordinate axis in order of the parts specific gravity to store the parts placement as first one-dimensional parts placement, and lines the parts on a second one-dimensional coordinate axis perpendicular to the first one-dimensional coordinate axis in order of the parts specific gravity to store the parts placement as second one-dimensional parts placement;
a two-dimensional part placing unit which schematically places the part using the first one-dimensional parts placement and the second one-dimensional parts placement;
a layout mapping unit which maps, for each partition, parts placement to the partition by determining a quadrilateral including all the parts schematically placed by the two-dimensional part placing unit, and by transforming the quadrilateral to the partition; and
a partition dividing unit further divides the parts placement mapped by the layout mapping unit into a plurality of zones for each part, and places the parts in said plurality of zones.
11. The device of
12. An automatic parts placement device which automatically places parts on two-dimensional parts placement zone, the device comprising:
a part data input device which inputs shapes and areas of the parts and net data of nets connecting between the parts, and stores them to a storage device;
an operational instruction input device which designates placement position of a position designated part in response to an operational instruction;
a cluster producing unit which produces a cluster including parts each of which has strong net connectivity;
a first parts specific gravity calculating unit which derives a parts specific gravity for each combination of a part and a parts group;
a parts group producing unit which adds a part to a parts group having a plurality of parts around the position designated part;
a re-distributing unit which moves a part from a current parts group to another parts group which has stronger connectivity to the part;
a partition producing unit which produces a rectangular shape of partition by dividing a parts placement zone according to a ratio of an area of the parts group;
a second one-dimensional parts specific gravity calculating unit which calculates a parts specific gravity based on the number of nets connecting in the X-axis direction of the XY coordinate two-dimensional plane or in the Y-axis direction of the XY coordinate two-dimensional plane;
a second one-dimensional lining unit which lines the parts along the X-axis in order of the parts specific gravity to store the parts placement as first one-dimensional parts placement, and lines the parts along the Y-axis perpendicular to the X-axis in order of the parts specific gravity to store the parts placement as second one-dimensional parts placement;
a second two-dimensional part placing unit which schematically places the part on the XY coordinate two-dimensional plane using the first one-dimensional parts placement and the second one-dimensional parts placement;
a second partition dividing unit which further divides the parts placement zone into a plurality of an individual part zones using a first lines parallel to the X-axis and a second lines parallel to the Y-axis, the lines being defined with the interval of the minimum area of the part; and
a parts replacing unit which replaces the part by moving the part to another individual part zone so that there is one or no part in every individual part zone.
13. The device of
14. A method of automatically placing parts comprising the steps of:
(a) inputting net data of a net connecting between terminals of parts, parts data, and position data of position designated parts;
(b) deriving parts group from a plurality of parts;
(c) producing a partition by dividing a parts placement zone into a plurality of partitions according to the total area of all the parts in the parts group, each partition having rectangular shape and being related to a parts group;
(d) calculating a parts specific gravity of a undefined part, for each partition, by subtracting from the number of nets connecting between placed parts and the undefined part in the partition, the number of other nets connected to the undefined part, and by dividing the result of subtracting by the area of the undefined part;
(d′) determining a first one-dimensional parts placement by placing un-placement parts nearby the placed part on a first one-dimensional axis in a descending order of the parts specific gravity;
(e) determining a second one-dimensional parts placement by placing the undefined parts nearby the placed part on a second one-dimensional axis perpendicular to the first one-dimensional axis in the descending order of the parts specific gravity; and
(f) determining parts placement on a two-dimensional plane by placing, for each partition, the undefined parts on a two-dimensional plane using the first one-dimensional parts placement and the second one-dimensional parts placement.
15. The method of
and the step of determining parts placement comprises the steps of:
subdividing the parts included in the cluster, after the cluster is placed similarly to the parts;
deriving divided zones by dividing each partition; and
placing the part to be stored in the divided zone near the center of the divided zone.
16. The method of
calculating parts specific gravities of parts being not included in the parts group derived by the deriving step; and
adding the parts to the parts group in descending order of its parts specific gravity.
17. The method of
deriving any shape of quadrilateral including a set of parts placed on an XY coordinate two-dimensional plane; and
mapping the quadrilateral to a rectangular shape in the partition and mapping the positions of the parts and the quadrilateral in the partition.
18. The method of
dividing the parts group in the partition into a plurality of parts or parts groups in horizontal and vertical direction;
dividing the partition into a plurality of divided zones with vertical and horizontal division lines according to the area of the divided part or parts group;
dividing the parts group until all the parts are each included in a single divided zone; and
placing the part in the center of the divided zone.
19. The method of
producing divided zones by equally dividing the partition in the direction of two-dimensional coordinate axes which are perpendicular to each other;
determining attractive force directed to a part zone by calculating adjacent force which is the number of nets connecting the part to other parts in the zones next to the part, by calculating, for each net connecting the part to other parts in the zones not next to the part, unit vector directed to the direction of the connected part, by calculating divergence vector which is the sum of the unit vector, and by calculating the part's attractive force to the part zone which is determined by subtracting an absolute value of the divergence vector from the adjacent force; and
moving the part to other zone in ascending order of the attractive force when a plurality of parts resides in a single divided zone.
20. The method of
determining the divided zone which has stronger attractive force when the part is moved to a next divided zone; and
moving the part to the determined zone.
21. The method of
determining a cluster including a set of parts which connect to the designated bus wiring, and producing part data storing relative positions of the parts in the first one-dimensional parts placement as relative positions of parts in the cluster; and
calculating parts placement with keeping the relative position of the parts in the cluster.
22. A recording medium readable by a computer, tangibly embodying a program of instructions executable by the computer to perform a method of automatically placing parts, the method comprises the steps of:
(a) inputting net data of a net connecting between terminals of parts, parts data, and position data of position designated parts;
(b) deriving parts group from a plurality of parts;
(c) producing a partition by dividing a parts placement zone into a plurality of partitions according to the total area of all the parts in the parts group, each partition having rectangular shape and being related to a parts group;
(d) calculating a parts specific gravity of a undefined part, for each partition, by subtracting from the number of nets connecting between placed parts and the undefined part in the partition, the number of other nets connected to the undefined part, and by dividing the result of subtracting by the area of the undefined part;
(d′) determining a first one-dimensional parts placement by placing un-placement parts nearby the placed part on a first one-dimensional axis in descending order of the parts specific gravity;
(e) determining a second one-dimensional parts placement by placing the undefined parts nearby the placed part on a second one-dimensional axis perpendicular to the first one-dimensional axis in the descending order of the parts specific gravity; and
(f) determining parts placement on a two-dimensional plane by placing, for each partition, the undefined parts on a two-dimensional plane using the first one-dimensional parts placement and the second one-dimensional parts placement.
23. The recording medium of
(a-1) when the number of nets connecting one of the undefined parts to other parts is larger than the number of the other nets connecting between other parts, produces a cluster, producing a cluster including a set of the undefined part and the other parts connected to the undefined part,
and the step of determining parts placement comprises the steps of:
(a-2) subdividing the parts included in the cluster, after the cluster is placed similarly to the parts;
(a-3) deriving divided zones by dividing each partition; and
(a-4) placing the part to be stored in the divided zone near the center of the divided zone.
24. The recording medium of
(b-1) calculating parts specific gravities of parts being not included in the parts group; and
(b-2) adding the parts to the parts group in descending order of its parts specific gravity.
25. The recording medium of
(f-1) deriving any shape of quadrilateral including a set of parts placed on the XY coordinate two-dimensional plane; and
(f-2) mapping the quadrilateral to a rectangular shape in the partition and mapping the positions of the parts and the quadrilateral in the partition.
26. The recording medium of
(g-1) dividing the parts group in the partition into a plurality of parts or parts groups in horizontal and vertical direction;
(g-2) dividing the partition into a plurality of divided zones with vertical and horizontal division lines according to the area of the divided part or parts group;
(g-3) dividing the parts group until all the parts are each included in a single divided zone; and
(g-4) placing the part in the center of the divided zone.
27. The recording medium of
(c-1) producing divided zones by equally dividing the partition in the direction of two-dimensional coordinate axes which are perpendicular to each other;
(c-2) determining attractive force directed to a part zone by calculating adjacent force which is the number of nets connecting the part to other parts in the zones next to the part, by calculating, for each net connecting the part to other parts in the zones not next to the part, unit vector directed to the direction of the connected part, by calculating divergence vector which is the sum of the unit vector, and by calculating the part's attractive force to the part zone which is determined by subtracting an absolute value of the divergence vector from the adjacent force; and
(c-3) moving the part to an other zone in ascending order of the attractive force when a plurality of parts resides in a single divided zone.
28. The method of
(g-5) determining the divided zone which has stronger attractive force when the part is moved to the next divided zone; and
(g-6) moving the part to the determined zone.
29. The recording medium of
(a-5) inputting net name data of designated bus wiring; and the method further comprises the steps of:
(h) determining a cluster including a set of parts which connected to the designated bus wiring, and producing part data storing relative positions of the parts in the first one-dimensional parts placement as relative positions of parts in the cluster; and
(i) calculating parts placement with keeping the relative position of the parts in the cluster.
30. The method of
(j-1) defining a line which passes through an upper left point in the partition and a lower right point in the partition as a first one-dimensional coordinate axis;
(j-2) calculating a Y-axis intercept of a first division line so that a first divided zone surrounded by a part of a top side of the partition and a part of a left side of the partition each of which includes an upper left point and the first division line which descends leftwards at a determined angle relative to the top side of the partition is equal to an occupied area of a first part;
(j-3) storing the Y-axis intercept as a division line position coordinate;
(j-4) calculating a gravity point of the first divided zone;
(j-5) determining a straight line which extends parallel to the first division line from the gravity point intersects;
(j-6) calculating y coordinate value (Y-axis intercept) of the straight line;
(j-7) storing the y coordinate value of the straight line as a one-dimensional parts placement position;
(j-8) calculating, for each part, a parts specific gravity on the first one-dimensional coordinate axis;
(j-9) selecting heaviest parts specific gravity among the calculated parts specific gravities of undefined parts and storing the part corresponding to the selected parts specific gravity to the first divided zone;
(j-10) calculating a Y-axis intercept of a second division line so that a second divided zone which is in the partition and between the first division line and the second division line which descends leftwards at a determined angle relative to the top side of the partition which is parallel to the first division line is equal to an occupied area of a second part;
(j-11) calculating, for each part, a parts specific gravity by dividing attracting force which attracts each part in the direction of the upper left on the first one-dimensional coordinate axis by an area of the second part;
(j-12) selecting the heaviest parts specific gravity among the calculated parts specific gravities of undefined parts and storing the part corresponding to the selected parts specific gravity to a second divided zone;
(j-13) repeating the steps j-10 through j-12 for the remaining parts; and
(j-14) storing a placement order of the parts on the first one-dimensional parts placement and the positions of the parts on the first one-dimensional parts placement.
31. The method of
(k-1) defining a line which passes through an upper right point in the partition and a lower left point in the partition as a second one-dimensional coordinate axis;
(k-2) calculating a Y-axis intercept of a first division line so that a first divided zone surrounded by a part of a top side of the partition and a part of a right side of the partition each of which includes the upper right point and the first division line which descends rightwards at a determined angle relative to the top side of the partition is equal to an occupied area of a first part;
(k-3) storing the Y-axis intercept as a division line position coordinate;
(k-4) calculating a gravity point of the first divided zone;
(k-5) determining a straight line which extends parallel to the first division line from the gravity point intersects;
(k-6) calculating a y coordinate value (Y-axis intercept) of the straight line;
(k-7) storing the y coordinate value of the straight line as a one-dimensional parts placement position;
(k-8) calculating, for each part, a parts specific gravity on the second one-dimensional coordinate axis;
(k-9) selecting heaviest parts specific gravity among the calculated parts specific gravities of undefined parts and storing the part corresponding to the selected parts specific gravity to the first divided zone;
(k-10) calculating a Y-axis intercept of a second division line so that a second divided zone which is in the partition and between the first division line and the second division line which descends rightwards at a determined angle relative to the top side of the partition and which is parallel to the first division line is equal to an occupied area of a second part;
(k-11) calculating, for each part, a parts specific gravity by dividing attracting force which attracts each part in the direction of the upper right on the second one-dimensional coordinate axis by an area of the second part;
(k-12) selecting the heaviest parts specific gravity among the calculated parts specific gravities of undefined parts and storing the part corresponding to the selected parts specific gravity to the second divided zone;
(k-13) repeating the steps k-10 through k-12 for the remaining parts; and
(k-14) storing a placement order of the parts on the second one-dimensional parts placement and the positions of the parts on the second one-dimensional parts placement.
32. The method of
33. The system of
34. The method of
Description 1. Field of the Invention The invention relates to an automatic placement system and method for parts and, in particular, to an automatic parts placement system and method each of which is suitable to be used in, for example, a CAD (computer aided design) system automatically placing parts, figures, or the like on a plane. 2. Description of the Related Art Some of parts placement methods applied to a previous printed wiring board or a previous semiconductor integrated circuit are disclosed in documents. For example, a parts placement optimizing method is disclosed in Japanese Laid Open Publication No. H06-332983 (namely, 332983/1994, U.S. Pat. No. 5,600,555). With this method, it is possible to determine, in a short time, parts placement which provides a comparatively low valuation standard, such as a total wiring length. Hereinafter, the document will be referred to as “document 1”. Specifically, the parts placement optimizing method virtually converts parts into uniform size of blocks or a set of blocks (initial placement), and replaces blocks in the blocks or in the set of blocks. As a result, the method improves the parts placement so that the valuation reference such as a total wiring length may become small as possible, and finally returns the virtually converted blocks to real parts. The method may be implemented through a program in a computer system which includes an input device, such as a keyboard, a display device such as a CRT display, and a data processing device having a CPU, a memory, and a hard disk. Further, disclosure is made in Japanese Laid Open Publication No. H03-108739 (namely, 108739/1991, U.S. Pat. No. 5,309,371) about an integrated circuit blocks placement method of placing variant size of blocks and determining a wiring between the blocks. The document will be, hereinafter, referred to as “document 2”. The method initially places the blocks using a mass system spring model in which each of circuit blocks is assumed to be connected to the other circuit blocks by a spring with the block size neglected. It may be said that energy of the dynamic model corresponds to sums of squares of net lengths. Under the above-assumption, the initial placement is made such that the energy may become minimum by using a method of placing the parts in a gravity point (barycenter). Then, the parts or circuit blocks are approximated by circles which have block sizes to calculate placement of each circle. Thereafter, the circles are transformed to the real configurations of the blocks to replace the blocks so that there are no overlaps among the blocks. In other words, the method compacts the blocks along with a frame of a circuit board and modifies the shape of each block from the circular figure to the actual shape. Finally, the method assigns a zone for wiring by swelling the blocks and adjusts an aspect ratio of each block in a tolerance level. Similarly, a method disclosed in Japanese Laid Open Publication No. H03-124046 (namely, 124046/1991, U.S. Pat. No. 5,309,371) utilizes the mass system spring model and performs the similar initial placement as described above. Herein, the document is referred to as “document 3”. Furthermore, disclosure is made in Japanese Laid Open Publication No. H06-332984 (namely, 332984/1994) about an element placement method which is capable of determining an optimum solution in a short time without exchanging two elements. The document is, hereinafter, referred to as “document 4”. The method comprises the steps of (1) determining a gravity point of each net, (2-1) determining an average vector by determining vectors from each terminal position and by averaging the vectors, (2-2) determining a position to which the element is moved based on the average vector, (3) determining a permutation of the elements according to coordinate values of the position, and (4) determining a matrix structured placement of the elements so that there are no overlaps between elements in consideration of the shapes of the elements and a matrix structured initial placement placing the elements according to the determined permutation. As described above, the method of the document 1 determines an optimum parts placement so that the total wiring length becomes minimum. The total wiring length is defined as a sum of Manhattan distances between parts elements connected by the net. On the other hand, the method of the document 2 and the method of the document 4 use the sums of squares of distances between the parts elements connected through the net to determine an optimum parts placement. However, there is no analytical solution against a problem of finding the above optimum parts placement. Therefore, to find an optimum solution, a method has been adopted which selects a combination which has a minimum value among total wiring lengths obtained by calculating all combinations of possible parts placements. But, the number of combinations becomes equal to N! (N is the number of the parts). In consequence, an amount of computations required to find the optimum solution increases explosively as the number N increases. Therefore, parts placement algorithm of finding a solution close to an optimum solution in a short time has been developed. As described above, the prior method of repeatedly selecting parts placement by exchanging parts so as to shorten its own total wiring length causes critical placements to occur such that no reduction is possible. There are often a plurality of critical parts placements. Once a solution is found which corresponds to such a critical parts placement, any other optimum solutions can not be found, although there is another optimum solution which leads to less total wiring length. This problem is known as local stabilization. Here, to avoid the local stabilization and to determine an optimum solution, a simulated annealing method may be simultaneously used. The method applies a principle of leaving from a state of local stabilization using state transition of disturbance in heating a molecule, to search of parts placement. That is, some solutions are generated by random modification, and then, the most improved solution (for example, a solution which leads to less total wiring length) is selected among these solutions. Also, a method has been known which improves a solution by repeating steps of generating “descendant” solutions resulting from random disturbance of a part of initially obtained solutions based on genetic algorithm, and selecting the most improved solution among the “descendant” solutions. However, the parts placement system using the simulated annealing method or the genetic algorithm still has a problem that an operation time is incomparably larger than a time needed for determining a solution by the pair exchange method. This is because the system using the simulated annealing method or the genetic algorithm has many and complex procedures. Specifically, the system generates a large number of solutions which are slightly different from each other using the random disturbance, determines improved solutions using the pair exchange method based on each of the generated solutions, generates a large number of solutions again by disturbing the improved solutions, and estimates the finally generated solutions. There are two substantial points in the system. A first point is that the disturbance process should be performed appropriately and in a fully broad range not to miss a path to an optimum solution. A second point is that convergence process should be completely performed so as to converge the randomly disturbed solutions. Consequently, to obtain a solution closer to an optimum solution, it is required to perform as much fully disturbance process as possible and perform complete convergence process to convergence the disturbance. Thus, if one would obtain more proper solution, a longer operation time is required. On the other hand, in the methods disclosed in the document 2 through the document 4, since each of the methods uses the mass system spring model, a shorter operation time is realized. However, in the mass system spring model, it is not possible to distinguish a large size of block from a small size of block. In this case, there is a problem that a given solution does not reflect an influence from the size of the block. Next, description is made about a second problem. The method of the document 4 (hereinafter, the method is referred to as “gravity point method”), which places the parts in a gravity point of the net, does not always reach the shortest total wiring length. For example, assuming that a first part is connected to the leftmost of a substrate via two nets and connected to the rightmost of the substrate via a single net, a gravity point of the first part is placed in a position far from the leftmost of the substrate by the distance of ⅓ of the width of the substrate toward the rightmost of the substrate. Also, assuming that a second part is connected to the leftmost of a substrate via six nets and connected to the rightmost of the substrate via four nets, a gravity point of the second part is placed in a position far from the leftmost of the substrate by the distance of ⅖ of the width of the substrate toward the rightmost of the substrate. Therefore, the position of the gravity point of the second part is placed between the leftmost of the substrate and the gravity point of the first part. Here, to obtain the shortest total wiring length, the second part should be located in the left side of the first part, since the difference between the number of the nets connected to the leftmost of the substrate and the number of the nets connected to the rightmost of the substrate is equal to two and therefore the difference is larger than that of the first part by 1. However, the gravity point method can not provide a proper conclusion. Further, in the gravity point method, since a contribution from a far side of terminal of a part is considered as proportionate to square of the distance, a weight from a far part is greater than a weight from a near part. Therefore, the method is not suitable to directly obtain parts placement which realizes a short total wiring length. To overcome the first problem and the second problem, a method disclosed in Japanese Laid Open Publication No. H06-149939 (namely, 149939/1994, and referred to as “document 5”) has been proposed by the applicant of the invention. The method considers the number of wiring from a part as attractive force and determines a (pseudo) parts specific gravity or relative weight by dividing the attractive force by an area of the part. Next, the method places parts on a single dimension in ascending order of the corresponding parts specific gravity. Thus, the method determines two one-dimensional parts placements and generates a two-dimensional parts placement (schematic parts placement) in which one of the one-dimensional parts placement is projected to the X-axis and the other is projected to the Y-axis. In other words, the method produces the optimum schematic parts placement (initial parts placement) by freely modifying placement of parts or a set of parts. However, in the method, since the schematic parts placement is incomplete, it is not possible to design placement using only the schematic parts placement. Therefore, it is an object of the invention to provide an automatic parts placement device and its method which are capable of placing parts in proper positions based on the schematic parts placement according to actual shapes of the parts, and completing parts placement which is possible to be directly used for subsequent design. Further, it is another object of the invention to provide an automatic parts placement device and its method which are capable of performing calculation of parts placement which realizes the shortest total wiring length without repeating trial and error for exchanging of parts positions. Therefore, according to the automatic parts placement device and its method of the invention, calculation for placement of all the parts is performed once, and parts placement which is approximate to the shortest total wiring length is obtained in a short time. Also, other objects, features, and merits will become clear from the following description. Hereinafter, principles of the system according to the invention will be described. At first, position data of a plurality of position designated parts are supplied to the system. Then, parts are each added to one of parts groups each of which is generated based on one of the position designated parts using the supplied position data. This process is performed by the following steps (1) to (3). (1) Determining Parts specific gravity or relative weight by dividing the number of nets which connect a part to a parts group, by the area of the part. The determined parts specific gravity is considered as actual specific gravity in physical phenomenon. (2) Extracting a combination of a part and a parts group which provide the maximum parts specific gravity and adding the part to the parts group. Thus, parts groups are formed by adding parts around the position designated part. (3) Repeating the addition process until all the parts are added to any one of the parts groups. Also, in the above steps (1) to (3), each parts group is formed by grouping parts on the basis of a position designated part. But, in the other embodiment of the invention, each parts group may be determined by instructions from an input unit (such as a later described input unit Next, partitioned zones (hereinafter, referred to as “partitions”) each of which corresponds to a parts group are generated. Partitions are formed based on an area of the corresponding parts group. Each partition has a rectangular shape. As mentioned before, the term “partition” means a partitioned section or zone on a two-dimensional plane of parts placement zone rather than a room in a three-dimensional space. Then, parts specific gravity is calculated on two-dimensional plane of the X-Y coordinate for each partition. The parts specific gravity is calculated for an inclined line which descends rightwards at an angle of 45 degrees relative to the X axis (a first one-dimensional axis). That is, a sum of lengths of nets connecting between the parts is calculated by projecting the nets towards the inclined line and may be considered as potential. energy in physical phenomenon. Placement which makes the total wiring length minimum is determined by calculating a first one-dimensional parts placement position which places the parts along the first one-dimensional coordinate in the descending order of the parts specific gravity. This means that a real physical phenomenon is simulated wherein placement for minimizing potential energy of materials is determined by placing materials in an order from heavier specific gravity to lighter one from downside position. Then, like in the above process, parts specific gravity is calculated for another inclined line which ascends rightwards at an angle of 45 degrees relative to the X axis (a second one-dimensional axis, which is perpendicular to the first one-dimensional axis). And a second one-dimensional parts placement position is determined by placing the parts along the second one-dimensional coordinate in the descending order of the parts specific gravity. Thereafter, from the first one-dimensional parts placement position and the second one-dimensional parts placement position for the parts, parts placement position on the two-dimensional plane is produced. One of the coordinate axes of the two-dimensional parts plane descends rightwards at an angle of 45 degrees relative to the X axis of the partition and is related to the first one-dimensional parts placement position. The other axis ascends rightwards at an angle of 45 degrees relative to the X axis of the partition and is related to the second one-dimensional parts placement position. Then, parts groups each of which is placed on the two-dimensional plane are included in the corresponding partition. In the partition, the parts in the parts group are further placed. A first method of placing the parts in the parts group includes the step of placing the parts in the partition by using compaction process. A second method includes the steps of determining a quadrilateral shape which includes all the parts in the parts group (the shape of the quadrilateral is not limited to rectangular shape), transforming coordinate values to map the quadrilateral to the rectangular shape of partition, and determining parts placement position from the result of mapping. Then, vertical division lines which divide the parts in the partition into left side parts and right side parts on the two-dimensional plane are produced. Further, horizontal division lines are produced to divide the parts in the partition into upside parts and downside parts on the two-dimensional plane. Next, the vertical and horizontal division lines are helpful to define zones each of which corresponds to a part in the partition according to the area of the part. Then, the part is assumed to be placed in the center of the corresponding zone. According to a first aspect of the invention, an automatic parts placement system is provided. The system comprises (1) a storage device which stores net data of a net connecting between terminals of parts, parts data, and position data of position designated parts, (2) a deriving unit which derives parts group from a plurality of parts, (3) a partition producing unit which divides a parts placement zone into a plurality of partitions according to the total area of all the parts in the parts group, each partition having a predetermined shape and being related to the parts group, (4) a parts specific gravity calculating unit which calculates, for each partition, a parts specific gravity of a undefined part by subtracting, from the number of nets connecting between placed parts and the undefined part in the partition, the number of the other nets connected to the undefined part, and by dividing the result of subtracting by the area of the undefined part, (5) a one-dimensional placing unit which places the undefined parts nearby the placed part in the descending order of the parts specific gravity on a first one-dimensional axis to produces a first one-dimensional parts placement, and which places the undefined parts adjacent to the placed part in the descending order of the parts specific gravity on a second one-dimensional axis perpendicular to the first one-dimensional axis to produces a second one-dimensional parts placement, and (6) a two-dimensional placing unit which places, for each partition, the undefined parts on a two-dimensional plane by using the first one-dimensional parts placement and the second one-dimensional parts placement. Further, according to a second aspect of the invention, an automatic parts placement device which automatically places parts on two-dimensional parts placement zone is provided. The device comprises (1) a part data input device which inputs shapes and areas of the parts and net data of nets connecting between the parts, and stores them to a storage device, (2) an operational instruction input device which designates placement position of a position designated part in response to an operational instruction, (3) a cluster producing unit which produces a cluster including parts each of which has strong net connectivity, (4) a first parts specific gravity calculating unit which derives a parts specific gravity for each combination of a part and a parts group, (5) a parts group producing unit which adds a part to a parts group having a plurality of parts around the position designated part, (6) a re-distributing unit which moves a part from a current parts group to another parts group which has stronger connectivity to the part, (7) a partition producing unit which produces a rectangular shape of partition by dividing a parts placement zone according to a ratio of an area of the parts group, (8) a one-dimensional parts specific gravity calculating unit which calculates a parts specific gravity based on the number of nets connecting in the direction of a one-dimensional coordinate axis of the part, (9) a one-dimensional lining unit which lines the parts on a first one-dimensional coordinate axis in order of the parts specific gravity to store the parts placement as first one-dimensional parts placement, and lines the parts on a second one-dimensional coordinate axis perpendicular to the first one-dimensional coordinate axis in order of the parts specific gravity to store the parts placement as second one-dimensional parts placement, (10) a two-dimensional part placing unit which schematically places the part using the first one-dimensional parts placement and the second one-dimensional parts placement, (11) a layout mapping unit which maps, for each partition, parts placement to the partition by determining a quadrilateral including all the parts schematically placed by the two-dimensional part placing unit, and by transforming the quadrilateral to the partition, and (12) a partition dividing unit further divides the parts placement mapped by the layout mapping unit into a plurality of zones for each part, and places the parts in the divided zones. Further, according to a third aspect of the invention, an automatic parts placement device which automatically places parts on two-dimensional parts placement zone is provided. The device comprises (1) a part data input device which inputs shapes and areas of the parts and net data of nets connecting between the parts, and stores them to a storage device, (2) an operational instruction input device which designates placement position of a position designated part in response to an operational instruction, (3) a cluster producing unit which produces a cluster including parts each of which has strong net connectivity, (4) a first parts specific gravity calculating unit which derives a parts specific gravity for each combination of a part and a parts group, (5) a parts group producing unit which adds a part to a parts group having a plurality of parts around the position designated part, (6) a re-distributing unit which moves a part from a current parts group to another parts group which has stronger connectivity to the part, (7) a partition producing unit which produces a rectangular shape of partition by dividing a parts placement zone according to a ratio of an area of the parts group, (8) a second one-dimensional parts specific gravity calculating unit calculates a parts specific gravity based on the number of nets connecting in the X-axis direction of the XY coordinate two-dimensional plane or in the Y-axis direction of the XY coordinate two-dimensional plane, (9) a second one-dimensional lining unit which lines the parts along the X-axis in order of the parts specific gravity to store the parts placement as first one-dimensional parts placement, and lines the parts along the Y-axis perpendicular to the X-axis in order of the parts specific gravity to store the parts placement as second one-dimensional parts placement, (10) a second two-dimensional part placing unit which schematically places the part on the XY coordinate two-dimensional plane using the first one-dimensional parts placement and the second one-dimensional parts placement, (11) a second partition dividing unit further divides the parts placement zone into a plurality of an individual part zones using a first lines parallel to the X-axis and a second lines parallel to the Y-axis, the lines being defined with the interval of the minimum area of the part, and (12) a parts replacing unit which replaces the part by moving the part to another individual part zone so that there is one or no part in every individual part are. Further, according to a fourth aspect of the invention, a method of automatically placing parts is provided. The method comprises the steps of (a) inputting net data of a net connecting between terminals of parts, parts data, and position data of position designated parts, (b) deriving parts group from a plurality of parts, (c) producing a partition by dividing a parts placement zone into a plurality of partitions according to the total area of all the parts in the parts group, each partition having rectangular shape and being related to a parts group, (d) calculating a parts specific gravity of a undefined part, for each partition, by subtracting from the number of nets connecting between placed parts and the undefined part in the partition, the number of the other nets connected to the undefined part, and by dividing the result of subtracting by the area of the undefined part, (d′) determining a first one-dimensional parts placement by placing the un-placement parts nearby the placed part on a first one-dimensional axis in the descending order of the parts specific gravity, (e) determining a second one-dimensional parts placement by placing the undefined parts nearby the placed part on a second one-dimensional axis perpendicular to the first one-dimensional axis in the descending order of the parts specific gravity, and (f) determining parts placement on a two-dimensional plane by placing, for each partition, the undefined parts on a two-dimensional plane using the first one-dimensional parts placement and the second one-dimensional parts placement. Further, according to a fifth aspect of the invention, a recording medium tangibly embodying a program of instructions executable by the computer to perform a method of automatically placing parts is provided. The method comprises the steps of (a) inputting net data of a net connecting between terminals of parts, parts data, and position data of position designated parts, (b) deriving parts group from a plurality of parts, (c) producing a partition by dividing a parts placement zone into a plurality of partitions according to the total area of all the parts in the parts group, each partition having rectangular shape and being related to a parts group, (d) calculating a parts specific gravity of a undefined part, for each partition, by subtracting from the number of nets connecting between placed parts and the undefined part in the partition, the number of the other nets connected to the undefined part, and by dividing the result of subtracting by the area of the undefined part, (d′) determining a first one-dimensional parts placement by placing the un-placement parts nearby the placed part on a first one-dimensional axis in the descending order of the parts specific gravity, (e) determining a second one-dimensional parts placement by placing the undefined parts nearby the placed part on a second one-dimensional axis perpendicular to the first one-dimensional axis in the descending order of the parts specific gravity, and (f) determining parts placement on a two-dimensional plane by placing, for each partition, the undefined parts on a two-dimensional plane using the first one-dimensional parts placement and the second one-dimensional parts placement. The above described functions or processes are realized by programs executed on a computer. The programs may be supplied to the computer via an input device from a computer readable medium storing the programs. The programs are loaded to a main memory of the computer before execution. FIG. 1 shows a configuration of a first embodiment of the invention; FIGS. 2A-2C show layouts of data used in the first embodiment of the invention; FIGS. 3A-3D show layouts of other data used in the first embodiment of the invention; FIG. 4 shows a flowchart of the first embodiment of the invention; FIGS. 5 through 17 show specific operations of the first embodiment of the invention; FIG. 18 shows a configuration of a second embodiment of the invention; FIG. 19 shows layouts of data used in the second embodiment of the invention; FIG. 20 shows layouts of other data used in the second embodiment of the invention; FIG. 21 shows a flowchart of the second embodiment of the invention; FIGS. 22 through 26 show specific operations of the second embodiment of the invention; FIG. 27 shows a configuration of a third embodiment of the invention; FIG. 28 shows a flowchart of the third embodiment of the invention; and FIGS. 29 through 33 show specific operations of the third embodiment of the invention. In FIG. 1, an automatic parts placement device of a first embodiment of the invention includes a data processing device The data processing device Hereinafter, each unit is described schematically. The parts data input unit The input unit The cluster producing unit The first parts specific gravity calculating unit The parts group producing unit The re-distributing unit The partition producing unit The one-dimensional placing unit The one-dimensional parts specific gravity calculating unit The two-dimensional parts placing unit The layout mapping unit The partition dividing unit Next, overall operation of the first embodiment of the invention will be described with reference to FIG. 1 to FIG. At first, description is made about a flowchart of the first embodiment shown in FIG. In step S Further, the parts data input unit The input unit In FIG. 5, position designated parts are denoted by rectangles. On the other hand, the other parts (undefined parts) are denoted by circular shapes. Further, terminals of parts which belong to a net (net name Referring back to FIG. 4, it is assumed in step S Data related to a shape of a part included in the cluster (parts data An upper class name Next, in step S The parts specific gravity
Herein, when net aggregation data The parts group producing unit Then, the undefined part is added to the gravity source parts group and the parts group name Next, the parts group producing unit Then, the above process is repeated again to extract a combination which includes the independent part and the gravity source parts group and which has a maximum parts specific gravity Next, in step S Then, the re-distributing unit When the re-distributing unit Further, the parts groups are changed as shown in FIG. 8 by repeating change process that changes parts which are connected between the parts groups. In consequence, each of the parts is assigned with either one of the parts groups (step S Next, in step S The partitioning line is drawn in the direction of the X-axis on two-dimensional plane defined by the X-Y coordinates to divide a parts placement zone into an upside and a downside. The partitioning line may be drawn in the direction of the Y-axis on the two-dimensional plane defined by the X-Y coordinates to divide a parts placement zone into a left side and a right side. The zones divided by the partitioning lines may be referred to as “partitions” in this specification. Furthermore, a new partitioning line which is perpendicular to the former produced partitioning line is produced to divide the partition into a upside and downside, or a left side and right side, until each partition is assigned to each parts group. Thus, the parts placement zone is divided into a plurality of partitions for the respective parts groups. Further, for each partition a partition name Here, as coordinate values Next, for each partitions, it is determined in step S If the partition is square or rectangular in shape, step S In step S On the other hand, let the partition have a shape longer in the Y-direction than in the X-direction. That is, when it is determined that the partition has a rectangle longer lengthwise than widthwise, parts placement positions are calculated in step S In step S In step S Then, the one-dimensional placing unit Herein, it is to be noted that the total wiring length can be made to correspond to potential energy which is defined in connection with the physical phenomenon in the physics. In such a physical phenomenon, consideration may be made about placement of physical objects which brings about minimum potential energy and which may be called placement of minimum potential energy. In this situation, the placement of the minimum potential energy can be made to correspond to minimize the total wiring length on the printed wiring board. As known in the art, the placement of the minimum potential energy is given by successively placing the physical objects from a heaviest one to a lightest one. This teaches that a minimized total wiring length can be accomplished by successively placing the parts from a heaviest one to a lightest one with respect to each of the position designated parts. In other words, the parts may be successively placed within each partition with respect to each position designated part from a part of the heaviest specific gravity to a part of the lightest specific gravity. Taking the above into account, the unit The one-dimensional placing unit Further, the unit At first, it is surmised that the parts are considered as a liquid filled in each partition and that gravity acts along the first one-dimensional coordinate of each partition. Under the circumstances, the liquid which corresponds to the parts has a liquid surface inclined at an angle of 45 degrees at maximum. The liquid surface may be simulated by a division line which ascends rightwards with respect to the X-axis. The unit Herein, Y A value of the Y Further, a position of the gravity point of a zone surrounded by the division line is calculated, to store, as a first parts placement position Next, the one-dimensional parts specific gravity calculating unit (1) Mapping the direction of nets for connection of the parts onto the first one-dimensional coordinate axis. (2) Determining force of all connecting nets assuming that the force is proportional to the number of the nets and is directed to the one-dimensional coordinate axis. (3) Dividing the force of all connecting nets by the areas of the parts to obtain the parts specific gravity After performing the steps, the parts specific gravity Each parts specific gravity
In the calculation of the above equation (2), when there is a net connecting the part (the first part) to the other part (the second part), the direction of the net connected to the first part can be approximately calculated on the assumption that a position of the second part is placed at the center of a partition including the second part. Further, the net aggregation data The one-dimensional placing unit The one-dimensional parts specific gravity calculating unit By repeating the above procedure, it is possible to obtain a parts placement of a minimum total wiring length on mapping onto the first one-dimensional coordinate axis. Next, in step S Next, in step S Then, in step S A first method includes the following steps. (1) Creating a restriction graph which records a limit of moving of parts or boundary lines of the partition in the direction of Y-axis by performing one-dimensional compaction process in the direction of Y-axis. (2) Calculating the Y-axis lower limit of a position of parts moving to the bottom end of the partition by calculating the shortest path of the restriction graph. (3) Calculating the Y-axis lower limit of positions of parts moving to the downside as far as collision between the parts does not occur. (4) Calculating the Y-axis upper limit of a position of parts moving to the upside until the parts arrive at the upper end of the partition. (5) Positioning the parts in between the Y-axis lower limit and the Y-axis upper limit of the partition. (6) Steps similar to steps (1) to (5) are performed about X-axis, that is, calculating the leftmost limit of the part and the rightmost limit of the part by the X-axis one-dimensional compaction process, and positioning the parts between the X-axis leftmost limit and the X-axis rightmost limit of the position. The first method may place a parts group in a partition by using two-dimensional compaction process rather than the above one-dimensional compaction process. On the other hand, the second method of positioning a parts group in a partition calculates any shapes of quadrilateral including a set of parts (parts group) two-dimensional placed in step S The layout mapping unit The coordinate transform process is given by equations (3) and (4). That is, when the quadrilateral has the left lower vertex (X
Herein, the above parameters A, B, C, D, K, and L are each represented by the following equations 4a through 4g.
When steps S Next, in step S The one-dimensional parts specific gravity calculating unit Lastly, the unit Referring to FIGS. 5 through 17, description will be made about the method according to one embodiment of the invention in more detail. In FIG. 5, parts and nets are placed on the printed wiring board to which the invention is applied. Like in the step S In response to instructions of an operator, the input unit Further, supplied with net data In FIG. 5, the net data Next, in step S The parts data Then, as described in conjunction with the step S The first parts specific gravity calculating unit Parts specific gravities Part A: −2 Part E: −2 Further, parts specific gravities Part G′: −1 Part L: −1 Further, parts specific gravities Part G′: −1 Part M: −1 Further, parts specific gravities Part B: −3 Part K: −1 Next, the parts group producing unit In this example, the set of parts having the maximum parts specific gravity There is a degree of freedom about selection among a set of parts each of which has the same maximum parts specific gravity As a result, it is determined that independent parts (which is not yet added to a parts group) which cause the parts specific gravity Part F: −2 Part J: −1 Next, the part M attracted by a parts group having a nuclear part P As a result, it is determined that independent parts which cause the parts specific gravity Part G′: 0 Part H: −1 In this case, the part G′ is added to the P Next, the part K attracted by a P As a result, it is determined that independent part which causes the parts specific gravity In this case, the part C is added to the P Next, the part D is added to the P As a result, it is determined that independent part which causes the parts specific gravity Next, the part A attracted by the P As a result, it is determined that independent parts which cause the parts specific gravity Part E: 0 Part H: −1 In this case, the part E is added to the P Next, the part J attracted by the P As a result, it is determined that independent part which causes the parts specific gravity Next, the part B attracted by the P As a result, it is determined that independent part which causes the parts specific gravity Next, the part H attracted by the P As a result, it is determined that independent part which causes the parts specific gravity Finally, the part F attracted by the P Next, in the step S The re-distributing unit Consequently, it is found that the parts specific gravities of the part F are all −3 for each connection (to the part A in the P Then, the part L is selected from the move candidate stack. Since the part L currently belongs to the P Similarly, the parts E, J and A are also kept unchanged in the parts groups. Next, the part H illustrated in FIG. 5 is selected which is connected to the parts A, F, and M. Then, it is determined that the part H is connected to the parts A and F which both belong to the P Therefore, the part H is moved from the P The parts B, G′, K, and M are not moved to configure elements in the parts groups as shown in FIG. Next, in the step S Further, vertical partitioning line Next, in the step S Then, for each partition including parts groups, the following steps S As shown in FIG. 10A, a shape of partition of P Next, in step S At first, the one-dimensional parts specific gravity calculating unit Further, the gravity point of the surrounded zone is determined together with y coordinate value (Y-axis intercept) from the gravity point. The y coordinate value can be calculated from the Y-axis and a straight line (a first straight line) which extends parallel to the division line m After that, parts specific gravities Positions of parts in the other partitions are calculated assuming that each of the parts resides in the center of the corresponding partition. Calculating parts specific gravities Part A: −2 Part E: −2 Part H: −3 Part F: −4 As a result, parts having the maximum parts specific gravity The one-dimensional placing unit Next, the one-dimensional placing unit Then, the one-dimensional parts specific gravity calculating unit Part E: 0 Part H: −1 Part F: −2 Therefore, the part E has the maximum parts specific gravity Similarly, parts specific gravities Part H: −1 Part F: −2 Therefore, the part H has the maximum parts specific gravity Lastly, the part F is added to a zone between the third division line m Thus, the parts are placed on the first one-dimensional coordinate axis from the upper left in the order of A, E, H, and F. The order of parts names Next, in step S The one-dimensional placing unit Further, the gravity point of the surrounded zone is determined together with y coordinate value (Y-axis intercept) from the gravity point. The y coordinate value can be calculated from the Y-axis and a straight line (a second straight line) which extends parallel to the division line n After that, the one-dimensional parts specific gravity calculating unit When the one-dimensional parts specific gravity calculating unit Part A: −2 Part E: 0 Part H: −3 Part F: −2 As a result, part having the maximum parts specific gravity Next, the next part is positioned in a zone between the first division line n Part A: 0 Part H: −1 Part F: −2 Therefore, the part A has the maximum parts specific gravity Similarly, parts specific gravities Part H: −1 Part F: 0 Therefore, the part F has the maximum parts specific gravity Lastly, the part H is added to a zone between the third division line n Thus, the parts are placed on the second one-dimensional coordinate axis from the lower left in the order of E, A, F, and H. The order of parts names Next, in step S Then, in step S The mapping is realized using the above equations (3) and (4). That is, assuming that sets of coordinate values of vertexes of the quadrilateral are (−1.5, −1 (the lower left corner)), (1.5, −1 (the lower right corner)), (1.5, 1 (the upper right corner)), and (−1.5, 1 (the upper left corner)), a set of coordinate values of the lower left corner SQ
By using the equation (5), sets of coordinate values (X, Y) of the parts A, E, F, and H shown in FIG. 11A are each transformed to a set of coordinate values (Xn, Yn) shown in FIG. Next, returning back to the step S That is, calculations about the first one-dimensional parts placement and the second one-dimensional parts placement are both performed in the order from the upside to the downside. Process is performed in a manner similar to the P Next, returning step S When the process about P Then, in step S That is, a parts specific gravity When sets of coordinates of the vertexes of the quadrilateral are (−1.5, −1 (the lower left corner)), (0.5, −0.5 (the lower right corner)), (2, 1 (the upper right corner)), and (−1.5, 1 (the upper left corner)) and sets of coordinates of the vertexes of the partition are (−1, −1 (the lower left corner)) and (1, 1 (the upper right corner)), the following mapping equation (6) is determined using the equations (3) and (4).
Then, the quadrilateral is mapped to the partition of the P Next, returning to step S Thus, after processing is finished about all the partitions, the process proceeds to step S Specifically, for the P For P For P For P Further, the unit Next, parts specific gravities Part G: −1 Part N: −3 Then, the part G is placed in the left side zone of the above divided two zones and the part N is placed in the right side zone. The unit Now, description is made about a second embodiment of the invention with reference to FIG. Also, parts shown in FIG. 18 which correspond to those shown in FIG. 1 are depicted by the same numerals. An automatic parts placement design device according to the second embodiment of the invention includes the data processing device The data processing device The second one-dimensional parts specific gravity calculating unit The second one-dimensional placing unit The second two-dimensional parts placing unit The second partition dividing unit The parts re-place unit Next, overall operations of the second embodiment of the invention is described with reference to FIGS. 19 through 26. In step S Then, in steps S In step S In step S Namely, in step S Hereinafter, steps In step S Next, as shown in FIG. 24, a partition is divided into a plurality of zones by vertical division lines. Division is made so that each zone becomes close to a zone of the smallest part. In dividing the partition, X coordinate values of the division lines are determined, and stored into the one-dimensional parts specific gravity data Next, a parts specific gravity A parts specific gravity
For example, it is assumed that a parts specific gravity Firstly, the number of nets which connect the part to the other parts is subtracted from the number of nets which connect the part to parts which reside on the left side of the X zone to calculate a difference between both the numbers. The difference is divided by an area of the part. Further, the quotient is defined as a parts specific gravity Then, the second one-dimensional placing unit After that, the unit The unit Next, the second one-dimensional parts specific gravity calculating unit Then, the unit Also, in step S In step S Next, in step S In step S Then, in step S
Here, by moving a part having less attractive force to adjacent individual part zone, it is possible to avoid placing a plurality of parts in the same individual part zone. Also, a part having larger attractive force and a part having many terminals are placed in a plurality of individual part zones according to an area of the part or the number of the independent terminal. Next, current attractive force of each part at the individual part zone including the part and attractive force which will occur when the part is moved to the adjacent empty individual part zone are calculated using the equations (8) through (10) to determine and store a change of attractive force caused by the moving of the part. The calculation is executed for each part. Here, the moving of the part which gives a positive and maximum change of attractive force is extracted, the part is moved to the adjacent individual part zone. Next, for the resulting parts placement, the following processes are repeated. (1) Calculation is made about a change of attractive force resulting from moving the part again as described above. (2) Movements are selected such that they give a positive and maximum change of attractive force. (3) The part is moved to the adjacent individual part zone according to the above extracted result. The above processes (1) through (3) are repeated until a change of attractive force caused by the moving of the part exceeds zero even if any moving is performed. Hereinafter, the second embodiment of the invention is described with reference to FIG. 21 though In step S Next, in step S Then, in step S Next, in step S Next, in step S Step S Hereinafter, steps Then, the second one-dimensional parts specific gravity calculating unit Here, the unit Part D: −1 Cluster ABCE: −2/4 Next, for a parts specific gravity Part D: −1 Cluster ABCE: 0 Then, the second one-dimensional placing unit Thus, contents of the one-dimensional parts specific gravity data X zone 1 (part D) X zone 2-5 (cluster ABCE) In step S Next, the unit Here, the unit Part D: 1 Cluster ABCE: 2/4 Next, for a parts specific gravity Part D: −1 Cluster ABCE: 0 Then, the second one-dimensional placing unit The remaining part D is placed in the first Y zone and the part D is stored into the one-dimensional parts specific gravity data Thus, contents of the one-dimensional parts specific gravity data Y zone 1 (part D) Y zone 2-5 (cluster ABCE) In step S As a result, the part D is placed in the upper left of the partition and the cluster ABCE is placed in the lower right of the partition. Next, in step S In step S Then, the second one-dimensional parts specific gravity calculating unit Here, the unit Part A: −1 Part B: −5 Part C: −3 Part E: −3 The calculation includes subtracting, from the number of nets in which the objective part connects to the part D in the first X zone or the position designated part P Also, the unit Part A: −3 Part B: −7 Part C: −1 Part E: −1 Then, the second one-dimensional placing unit When the part C attracted to the fifth X zone is selected among the above combinations, the part C is placed into the fifth X zone and information of the part D is stored into the one-dimensional parts specific gravity Therefore, a part which changes the parts specific gravity Next, there are two combinations which give the maximum parts specific gravity As a result, a part which changes the parts specific gravity Further, there are two combinations which give the maximum parts specific gravity As a result, a part which changes the parts specific gravity Lastly, the remaining part E is added to the fourth X zone. As described above, the order of addition of parts to X zones (D, A, B, E, and C) is obtained and the order is stored in the one-dimensional parts placement data Moreover, in step S After performing the processes similarly to step S In step S Next, in step S Then, the parts re-placing unit Next, attractive force attracted to an individual part zone currently including the part C is determined using the equations (8) through (10) as follows. In calculating the equation (8), nets connecting to the part E in an individual part zone which also includes the part C are out of consideration. Thus, nets in which the part C is attracted to the part P The value of divergence vector calculated by the equation (9) is 2 with considering the number of nets connecting to the part B. The value of attractive force calculated by the equation (9) is −1. Also, attractive force about the part E is calculated and the resulting value is −1. In this case, attractive force of the part E is optionally selected, since there is no difference between these attractive forces. Then, searching is performed about an empty individual part zone next to the individual part zone currently including the part E. Resulting from the search, an empty individual part zone is found above the individual part zone currently including the part E as shown in FIG. Next, each of the parts in the individual part zones is moved to the center position of the corresponding individual part zone. Thus, a parts placement is realized as shown in FIG. Then, attractive force of each part in the individual part zone currently including the part and attractive force when the part is moved to an empty individual part zone next to the individual part zone currently including the part are calculated via the equations (8) through (10). Therefore, change of attractive force which is caused from the movement of the part is determined. As a result, attractive force of the part D at current position is −1 and attractive force when the part D is moved to an empty individual part zone which is next to and is the right side of the zone currently including the part D is +0.2. Therefore, change amount of attractive force is +1.2. Results of calculating about each part are shown as follows. Part D: −1, when moved to a right zone: +0.2, change amount: +1.2 Part A: +1, when moved to a downside zone: −2.5, change amount: −3.5 Part B: +3, when moved to a upside zone: −3.7, change amount: −6.7 Part B: +3, when moved to a downside zone: −1.7, change amount: −4.7 Part E: +1, when moved to a upside zone: −2.5, change amount: −3.5 Part C: −1, when moved to a left side zone: +1, change amount: +2 From the results, it is found that the change amount about the part C is positive value and the largest. Therefore, the part C is moved to the left side zone. Further, the part D, whose change amount is positive and the second largest, is moved to the right side zone, consequently, a placement shown in FIG. 26 is given. Now, description is made about a third embodiment of the invention. As shown in FIG. 27, the third embodiment of the invention includes the data processing device In the third embodiment of the invention, the data processing device The bus connected parts placement unit Next, overall operations of the third embodiment of the invention is described with reference to FIG. 28 in more detail. In step S Then, in steps S In step S Namely, in step S In step S In step S In step S In response to designation of a placement zone and a placement direction (a first placement direction) of apart connected to a designated bus from the operator, the unit For example, designation of placing parts group connected to a designated bus wiring in the X-axis direction or Y-axis direction in a line, or designation of placing parts group in the X-axis direction or Y-axis direction in two or more lines. Here, when the unit In step S Then, the bus connected parts placement unit In step S In step S In step S Then, it is ensured that a single part is placed in a single individual part zone by moving parts with less attractive force to another individual part zone. Next, the process returns to step S Hereinafter, overall operations of the third embodiment of the invention is described in more detail. In step S Then, in steps S In steps S In step S In step S In step S In step S Next, the input unit In step S Next, a parts specific gravity The result of calculating is as follows. Part A: −1 Part B: −2 Part C: −1 Part D: −2 Part E: −2 Part F: −2 Part G: −2 In this calculation, four nets connecting the part P Next, the second one-dimensional placing unit As a result, it is found that a part which changes a parts specific gravity Parts specific gravities of parts other than the part E when attracted to the second X zone take over the parts specific gravities when attracted to the first X zone. Next, the part E attracted to the second X zone (the parts specific gravity=0) is selected as a combination provides with the maximum parts specific gravity Then, the part B attracted to the third X zone (the parts specific gravity=0) is selected as a combination provides with the maximum parts specific gravity Next, the part F attracted to the fourth X zone (the parts specific gravity=0) is selected as a combination provides with the maximum parts specific gravity Next, the part D attracted to the fifth X zone (the parts specific gravity=0) is selected as a combination provides with the maximum parts specific gravity Next, the part G attracted to the sixth X zone (the parts specific gravity=0) is selected as a combination provides with the maximum parts specific gravity Herein, since the remaining part connected via nets connecting to the parts P Next, a combination which provides with the maximum parts specific gravity As described above, the order of parts placement in the X direction is determined as the following order and stored in one-dimensional parts placement data A,E,B,F,D,G,C Next, as shown in FIG. 30, the bus connected parts placement unit In step S E, F, cluster ABDC, G In step S In step S Then, the parts re-placing unit Next, attractive force by which the part G is attracted to the individual part zone currently including the part G is calculated using the equations (8) through (10) as follows. Using the equation (8), the number of nets which the part G is attracted to an adjacent zone including the part C and another adjacent zone including the part D is added to adjacent force. Then the value of the adjacent force become two. Using the equation (9), it is found the divergence vector is zero. Also, a value of the attractive force is two through the equation (10). Next, attractive force attracting the cluster ABDC to the individual part zone currently including the cluster is calculated as follows. At first, using the equation (6), the number of nets of designated bus wiring which connect the cluster ABDC to the adjacent position designated part P Then, the number of nets which the part A is attracted to the part E in the adjacent part zone (=1), is added to the adjacent force. Next, the number of nets which the part B is connected to the adjacent part F (=1), is added to the adjacent force. On the other hand, unit vector with the direction that the part B is attracted to the part E by a net (−0.7, 0.7) is added to divergence vector calculated via the equation (7). After that, unit vector with the direction that the part D is attracted to the part F by a net (−0.7, 0.7) is added to divergence vector. Further, the number of nets which connect the part D to the part G in the same individual part zone of the part D (=1), is added to the adjacent force. Next, the number of nets which connect the part C to the adjacent part G (=1), is added to the adjacent force. Resulting from the above calculation, the adjacent force is determined to eight, and the divergence vector (X, Y) is (−1.4, 1.4). Using the equation (10), attractive force is determined to six by subtracting absolute value of the divergence vector (=6), from the adjacent force of the cluster ABDC (=8). The part G which has the smaller attractive force is selected after comparing the attractive force of the part G (=2) with the attractive force between the cluster ABDC and the part G (=6). Then, an empty individual part zone next to the part G is searched. In fact, the upper side of individual part zone is found, and the problem of duplicate placement is solved by moving the part G to the upper side individual part are. Also, the cluster ABDC is placed so that the gravity point of a set of the parts A, B, D, and C is coincident with the gravity point of a set of individual part zones corresponding to the parts. As described above, parts placement is given in which a configuration of designated bus wiring which connects to the parts is not changed since uniform relative positions among the parts in the cluster ABDC are maintained as shown in FIG. According to the third embodiment of the invention, design of parts placement can be performed without changing a configuration of bus wiring since the bus connected parts placement unit Further, in the above example, the part placement system about the printed wiring board is illustrated. The invention, however, is not limited to automatic parts placement on the printed wiring board. The system according to the invention may be applied to various systems which automatically places a plurality of parts connected each other. As described above, according to the invention, parts placement positions in which the shortest total wiring length is realized can be obtained by determining placement positions of all the parts via a single calculation process without changing positions of the part trial and error. Thereby, parts placement in which total wiring length is close to the shortest length can be determined in a short time. Also, according to the invention, it is possible to shorten the total wiring length of parts placement as compared with the conventional method which is determined by the “gravity point method”. This is because that, in the present invention, the shortest wiring length of parts is determined using relationship about total potential energy of material on physical phenomenon. That is, when parts specific gravity of a part is large, the part is placed in downside to have the smallest potential energy. Thus, parts specific gravities of all the parts are calculated in one-dimensional coordinate direction and lastly one-dimensional parts placement having the smallest parts specific gravity is determined. Thereby, the number of operations can be reduced. In the invention, the number of calculating for parts placement is at most about N Patent Citations
Non-Patent Citations
Referenced by
Classifications
Legal Events
Rotate |