Object placement aid
First Claim
1. A method for modifying a layout of a plurality of objects to be in compliance with a plurality of predetermined rules, said method comprising:
- identifying within said layout at least one violation of said plurality of predetermined rules, wherein each of said plurality of objects is bounded by a plurality of edges;
identifying a first group of edges as all transitive edges beyond said at least one violation closest to a predetermined reference in a direction away from said predetermined reference;
identifying a second group of edges as all transitive edges beyond said at least one violation furthest away from said predetermined reference in a direction toward said predetermined reference; and
modifying said layout to remove said at least one violation such that perturbation, resulting from said modifying, of said plurality of objects is minimized, wherein said perturbation is a function of the sum of the distances of the edges in said first group of edges from the predetermined reference and the sum of the distances of the edges in said second group of edges from said predetermined reference.
1 Assignment
0 Petitions
Accused Products
Abstract
An existing layout is modified to ensure compliance with design rules and any user-defined rules by deriving a horizontal constraint model and a vertical constraint model. For each of the vertical and horizontal orientations in turn, violations of the rules are identified. For each orientation in turn, the violations are removed in such a way that objects in the layout are moved the least amount necessary. A given object may also be inserted into an existing layout in such a way that perturbation of objects in the existing layout is minimized by exploring solutions allowing for object merger and non-merger solutions and choosing the best one based on predetermined criteria. Given a group of objects, a layout may also be created in such a way that successive objects are placed to minimize movement of objects already placed. Placement of an object in an existing layout may also be improved by removing the object and inserting it as if it were a new object a number of times until no further improvement is noted in its placement.
145 Citations
16 Claims
-
1. A method for modifying a layout of a plurality of objects to be in compliance with a plurality of predetermined rules, said method comprising:
-
identifying within said layout at least one violation of said plurality of predetermined rules, wherein each of said plurality of objects is bounded by a plurality of edges; identifying a first group of edges as all transitive edges beyond said at least one violation closest to a predetermined reference in a direction away from said predetermined reference; identifying a second group of edges as all transitive edges beyond said at least one violation furthest away from said predetermined reference in a direction toward said predetermined reference; and modifying said layout to remove said at least one violation such that perturbation, resulting from said modifying, of said plurality of objects is minimized, wherein said perturbation is a function of the sum of the distances of the edges in said first group of edges from the predetermined reference and the sum of the distances of the edges in said second group of edges from said predetermined reference. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method for automatically modifying a layout of a plurality of objects to ensure compliance with a plurality of predetermined rules, said method comprising:
-
modifying said layout without regard to said plurality of predetermined rules; automatically identifying within said layout any violations of said plurality of predetermined rules, wherein each of said plurality of objects is bounded by a plurality of edges; automatically identifying a first group of edges as all transitive edges beyond said at least one violation closest to a predetermined reference in a direction away from said predetermined reference; automatically identifying a second group of edges as all transitive edges beyond said at least one violation furthest away from said predetermined reference in a direction toward said predetermined reference; and automatically modifying said layout to remove said any violations such that perturbation, resulting from said modifying, of said plurality of objects is minimized, wherein said perturbation is a function of the sum of the distances of the edges in said first group of edges from the predetermined reference and the sum of the distances of the edges in said second group of edges from said predetermined reference. - View Dependent Claims (12)
-
-
13. A system for modifying a layout of a plurality of objects to be in compliance with a plurality of predetermined rules, said system comprising:
-
means for identifying within said layout at least one violation of said plurality of predetermined rules, wherein each of said plurality of objects is bounded by a plurality of edges; means for identifying a first group of edges as all transitive edges beyond said at least one violation closest to a predetermined reference in a direction away from said predetermined reference; means for identifying a second group of edges as all transitive edges beyond said at least one violation furthest away from said predetermined reference in a direction toward said predetermined reference; and means for modifying said layout to remove said at least one violation such that perturbation, resulting from said modifying, of said plurality of objects is minimized, wherein said perturbation is a function of the sum of the distances of the edges in said first group of edges from the predetermined reference and the sum of the distances of the edges in said second group of edges from said predetermined reference. - View Dependent Claims (14, 15)
-
-
16. A system for automatically modifying a layout of a plurality of objects to ensure compliance with a plurality of predetermined rules, said system comprising:
-
means for modifying said layout without regard to said plurality of predetermined rules, wherein each of said plurality of objects is bounded by a plurality of edges; means for automatically identifying within said layout any violations of said plurality of predetermined rules; means for identifying a first group of edges as all transitive edges beyond said at least one violation closest to a predetermined reference in a direction away from said predetermined reference; means for identifying a second group of edges as all transitive edges beyond said at least one violation furthest away from said predetermined reference in a direction toward said predetermined reference; and means for automatically modifying said layout to remove said any violations such that perturbation, resulting from said modifying, of said plurality of objects is minimized, wherein said perturbation is a function of the sum of the distances of the edges in said first group of edges from the predetermined reference and the sum of the distances of the edges in said second group of edges from said predetermined reference.
-
Specification