Generalized constraint collection management method
First Claim
1. A method of automating the application of constraints to one or more design objects in a circuit design created using an electronic design automation tool, wherein the one or more design objects represent physical circuit objects in a circuit being designed using the electronic design automation tool, comprising:
- providing a template type in a computer system;
wherein the template type includes a selectable template type identifier in produced in a computer user interface display of the computer system to identify the template type,wherein template type includes template instance generation code stored in a computer readable storage device of the computer system to run a template instance generation process,wherein template type further includes template instance validation code stored in the computer readable storage to run a template instance validation process;
receiving by the computer system, a user selection of the template type identifier;
in response to the received user selection of the template type identifier, invoking the template instance generation code to run the template instance generation process on the computer system,to produce a template instance, wherein the produced template instance identifies a constraint set that includes multiple constraints and that identifies associations between the multiple constraints in the constraint set and the one or more design objectsto store the produced template instance in the memory device, andto create an association in the memory device between the produced template instance and the template type.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are provided to allow users of Electronic Design Automation (EDA) tools to define constraint template types for efficiently associating constraints with design objects to specify design intent. Processes for creating and validating the constraints are provided by user-defined plug-ins, thereby allowing users to annotate circuit designs with constraints for proprietary layout and fabrication processes without exposing the constraints to tool vendors or competitors. The constraints are re-created from the template types whenever the circuit design is loaded into the EDA tool, so that the constraints are based upon the latest version of the template type. The constraints are also re-created when validation fails. Constraint groups are reusable in different designs, technology nodes, and processes because they automatically expand to provide the specific constraints to achieve a goal. The specific constraints in a template type can be modified as technology changes, and the modification will automatically be applied to the design objects.
43 Citations
21 Claims
-
1. A method of automating the application of constraints to one or more design objects in a circuit design created using an electronic design automation tool, wherein the one or more design objects represent physical circuit objects in a circuit being designed using the electronic design automation tool, comprising:
-
providing a template type in a computer system; wherein the template type includes a selectable template type identifier in produced in a computer user interface display of the computer system to identify the template type, wherein template type includes template instance generation code stored in a computer readable storage device of the computer system to run a template instance generation process, wherein template type further includes template instance validation code stored in the computer readable storage to run a template instance validation process; receiving by the computer system, a user selection of the template type identifier; in response to the received user selection of the template type identifier, invoking the template instance generation code to run the template instance generation process on the computer system, to produce a template instance, wherein the produced template instance identifies a constraint set that includes multiple constraints and that identifies associations between the multiple constraints in the constraint set and the one or more design objects to store the produced template instance in the memory device, and to create an association in the memory device between the produced template instance and the template type. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for automating the application of constraints to one or more design objects in a circuit design created using an electronic design automation tool, wherein the one or more design objects physical circuit objects in a circuit being designed in the electronic design automation tool, comprising:
-
a template type that includes instructions stored in a storage device to register associated template instance generation program code stored in the storage device with, means for managing and to register associated template instance validation program code stored in the storage device with, managing means; a template instance that is stored in the storage device and that identifies a constraint set that includes multiple constraints and that identifies associations between the multiple constraints in the constraint set and the one or more design objects;
wherein the template instance includes an association with the template type;
managing means for,using the association between the template instance and the template type to invoke the template instance violation program code to run a template validation process to a change in a constraint identified by the template instance or to a change in an object associated by the template instance with an identified constraint, and invoking the template generation program code to run a template instance recovery process in response to the invoked validation process returning a failure. - View Dependent Claims (18, 19)
-
-
20. A computer program storage medium product comprising program code for running on a computer system to perform a process for automating the application of constraints to one or more design objects in a circuit design created using an electronic design automation tool, the process comprising:
-
providing a template type in a computer system; wherein the template type includes a selectable template type identifier in produced in a computer user interface display of the computer system to identify the template type, wherein template type includes template instance generation code stored in a computer readable storage device of the computer system to run a template instance generation process, wherein template type further includes template instance validation code stored in the computer readable storage to run a template instance validation process; receiving by the computer system, a user selection of the template type identifier; in response to the received user selection of the template type identifier, invoking the template instance generation code to run the template instance generation process on the computer system, to produce a template instance, wherein the produced template instance identifies a constraint set that includes multiple constraints and that identifies associations between the multiple constraints in the constraint set and the one or more design objects, to store the produced template instance in the memory device, and to create an association in the memory device between the produced template instance and the template type.
-
-
21. A method of automating the application of constraints to one or more design objects in a circuit design created using an electronic design automation tool, wherein the one or more design objects represent physical circuit objects in a circuit being designed using the electronic design automation tool, comprising:
-
providing on a computer system screen display a user interface representation of a first template type and a user interface representation of a second template type; wherein the first template type is stored in a computer readable device that is associated in the computer system with a first template instance generation process and that is associated in the computer system with a second template validation process; wherein the first template type is stored in a computer readable device that is associated in the computer system with a first template instance generation process and that is associated in the computer system with a second template validation process; receiving by the computer system, a user selection of at least one or the other of the first or the second template type representation; in response to receiving a user selection of the first template type, producing by running the first template instance generation process on the computer system, a first template instance based upon the selected first template type, wherein the produced first template instance identifies a first constraint set that includes multiple constraints and that identifies associations between the constraints in the first constraint set and the one or more design objects and wherein the first template instance includes a first association to the first template type; storing the first template instance in the memory device; in response to receiving a user selection of the second template type, producing by running the second template instance generation process on the computer system, the second template instance based upon the selected second template type, wherein the produced second template instance identifies a second constraint set that includes multiple constraints and that identifies associations between the constraints in the second constraint set and the one or more design objects and wherein the second template instance includes a second association to the second template type storing the second template instance in the memory device; in response to a change in a constraint identified by the first template instance or to a change in an object associated by the first template instance with an identified constraint, running the first instance validation process associated with the first template type associated by the first association with the first template instance; and in response to a change in a constraint identified by the second template instance or to a change in an object associated by the second template instance with an identified constraint, running the second instance validation process associated with the second template type associated by the second association with by the second template instance.
-
Specification