Methods for partitioning circuits in order to allocate elements among multiple circuit groups
First Claim
1. A method for partitioning a plurality of circuit elements within a plurality of circuit groups, the method of partitioning comprising the steps of:
- (a) initially placing the plurality of circuit elements in accordance with a greedy initial placement method subject to at least one partitioning constraint associated with each circuit group of the plurality of circuit groups, and also subject to at least one physical constraint also associated with each circuit group of the plurality of circuit groups;
(b) performing a standard partitioning operation in which a partition cost variable is computed which indicates the number of connections required between each circuit group of the plurality of circuit groups with the objective of reducing the number by moving circuit elements from at least one of the plurality of circuit groups to another of the circuit groups in order to obtain a partition result indicative of the position of each of the plurality of circuit elements, wherein the partition result is associated with the partition cost variable;
(c) comparing the partition cost variable obtained at step (b) with a previously obtained partition cost variable, and storing the partition result obtained at step (b) if its associated partition cost variable is less than the previously obtained partition cost variable;
(d) identifying one or more circuit groups of the plurality of circuit groups that violate one or more of said at least one partitioning constraint, and proceeding to step (g) if no such circuit groups exist;
(e) changing one or more of said at least one partitioning constraint for all circuit groups identified at step (d);
(f) repeating step (a) using one or more of said at least one partitioning constraint changed at step (e); and
(g) returning the partition result stored at step (c).
2 Assignments
0 Petitions
Accused Products
Abstract
Improved circuit partitioning methods are provided which combine the advantage of multiple starting positions of the random initial placement approach with the advantage of optimal starting positions of the greedy initial placement approach, by starting with greedy initial placement and modifying partitioning constraints on subsequent passes so that each pass begins in a new position, In addition, the partitioning goals of interconnection minimization and resource utilization efficiency may be prioritized according to a design goal by manipulating the manner in which partitioning constraints are changed during each partitioning pass. Furthermore a user may adjust the weight of the benefits for eliminating existing interconnections and the weight of the penalties for adding new interconnections in accordance with a design goal.
64 Citations
12 Claims
-
1. A method for partitioning a plurality of circuit elements within a plurality of circuit groups, the method of partitioning comprising the steps of:
-
(a) initially placing the plurality of circuit elements in accordance with a greedy initial placement method subject to at least one partitioning constraint associated with each circuit group of the plurality of circuit groups, and also subject to at least one physical constraint also associated with each circuit group of the plurality of circuit groups; (b) performing a standard partitioning operation in which a partition cost variable is computed which indicates the number of connections required between each circuit group of the plurality of circuit groups with the objective of reducing the number by moving circuit elements from at least one of the plurality of circuit groups to another of the circuit groups in order to obtain a partition result indicative of the position of each of the plurality of circuit elements, wherein the partition result is associated with the partition cost variable; (c) comparing the partition cost variable obtained at step (b) with a previously obtained partition cost variable, and storing the partition result obtained at step (b) if its associated partition cost variable is less than the previously obtained partition cost variable; (d) identifying one or more circuit groups of the plurality of circuit groups that violate one or more of said at least one partitioning constraint, and proceeding to step (g) if no such circuit groups exist; (e) changing one or more of said at least one partitioning constraint for all circuit groups identified at step (d); (f) repeating step (a) using one or more of said at least one partitioning constraint changed at step (e); and (g) returning the partition result stored at step (c). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for partitioning a plurality of circuit elements between two circuit groups in accordance with the objective of maximizing a gain cost variable, wherein each circuit element comprises a first plurality of pins, wherein a first constraint limits the plurality of pins to its value, wherein the two circuit groups comprise a first plurality of interconnections between one another, wherein a second constraint limits the plurality of interconnections to its value, and wherein when a circuit element is moved from one of the circuit groups to the other of the circuit groups, a gain variable is increased by a first gain modifier for each pin from the plurality of pins which is eliminated during the move, decreased by the first gain modifier for each new pin added to the plurality of pins during the move, increased by a second gain modifier for each interconnection from the plurality of interconnections which is eliminated during the move, and decreased by a second gain modifier for each new interconnection added to the plurality of interconnections during the move, the method for partitioning comprising the steps of:
-
(a) selecting the second gain modifier; (b) performing a standard partitioning operation in which an interconnections variable is computed which indicates the number of connections required between the two circuit groups with the objective of reducing the number by moving circuit elements from one of the circuit groups to the other of the circuit groups in order to obtain a partition result; (c) determining a gain cost variable using the first and the second gain cost modifiers; (d) determining if the partition result violates both the first and the second constraints, proceeding to step (j) if the partition result violates both the first and the second constraints, and proceeding to step (e) otherwise; (e) determining if the partition result violates the second constraint, proceeding to step (f) if the partition result violates the second constraint, and proceeding to step (g) otherwise; (f) discarding the partition result, decreasing the second gain cost modifier via a decreasing function, and returning to step (b); (g) determining if the partition result violates the first constraint, proceeding to step (h) if the partition result violates the first constraint, and otherwise proceeding to step (i); (h) discarding the partition result, increasing the second gain cost modifier via an increasing function, and returning to step (b); (i) returning the partition result obtained at step (b); (j) notifying a user that a partition is impossible to obtain.
-
Specification