Generalized constraint collection management method
First Claim
1. A method of automating the application of constraints to design objects in a circuit design created using an electronic design automation tool, comprising:
- receiving selection of a circuit design object that represents a physical circuit object in a circuit being designed in the electronic design automation tool;
receiving selection of a template type that produces a constraint that represents a physical limitation upon implementation of the circuit design object in the circuit,wherein the template type is represented in the electronic design automation tool by a selectable user interface feature; and
producing a template instance based upon the template type, wherein the template instance associates the constraint with the circuit design object to represent in the electronic design automation tool that the physical limitation of the constraint applies to the circuit design object.
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.
52 Citations
32 Claims
-
1. A method of automating the application of constraints to design objects in a circuit design created using an electronic design automation tool, comprising:
-
receiving selection of a circuit design object that represents a physical circuit object in a circuit being designed in the electronic design automation tool; receiving selection of a template type that produces a constraint that represents a physical limitation upon implementation of the circuit design object in the circuit, wherein the template type is represented in the electronic design automation tool by a selectable user interface feature; and producing a template instance based upon the template type, wherein the template instance associates the constraint with the circuit design object to represent in the electronic design automation tool that the physical limitation of the constraint applies to the circuit design object. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 20, 21, 22)
-
-
11. A method of automating the validation of constraints associated with circuit design objects in a circuit design created using an electronic design automation tool, comprising:
-
receiving notification of a change action that affects the design; identifying a template instance validation process associated with the template type; invoking the validation process to validate the constraints; receiving a validity indicator from the validation process; and if the validity indicator indicates that the constraints are not valid, invoking a recovery process. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19)
-
-
23. A system for automating the application of constraints to design objects in a circuit design created using an electronic design automation tool, comprising:
-
a design object selector to receive selection of a circuit design object that represents a physical circuit object in a circuit being designed in the electronic design automation tool; a template type selector to receive selection of a template type that produces a constraint that represents a physical limitation upon implementation of the circuit design object in the circuit, wherein the template type is represented in the electronic design automation tool by a selectable user interface feature; and a template instance producer to produce a template instance based upon the template type, wherein the template instance associates the constraint with the circuit design object to represent in the electronic design automation tool that the physical limitation of the constraint applies to the circuit design object. - View Dependent Claims (24, 25)
-
-
26. A system for retrieving a circuit design annotated with a constraint from a circuit design file on a persistent storage medium, comprising:
-
a template instance reader to retrieve a representation of a template instance from the circuit design file, wherein the representation includes an instance name, a template type identifier, and at least one design object identifier; a template type selector to identify a template type specified by the template type identifier; a generator plug-in locator to identify a template instance generator associated with the template type if the template type is accessible; and a generator plug-in invoker to invoke the template instance generator to create a restored template instance if the instance generator is accessible, wherein the restored template instance includes a constraint that references at least one design object, wherein the at least one design object is specified by the at least one design object identifier.
-
-
27. A system for providing a constraint manager user interface in an electronic design automation tool, comprising:
-
a template instance generator to create a template instance in response to selection of a template type button, wherein the template instance is an instance of a template type associated with the button; a design object selector to receive selection of a design object; a design object mapping component to associate the design object with the template instance; and a template instance display component to display a template instance tree comprising a template instance node, wherein template instance node represents the template instance.
-
-
28. A system for automating the application of constraints to design objects in a circuit design created using an electronic design automation tool, comprising:
-
a design object selector means for receiving selection of a circuit design object that represents a physical circuit object in a circuit being designed in the electronic design automation tool; a template type selector means for receiving selection of a template type that produces a constraint that represents a physical limitation upon implementation of the circuit design object in the circuit, wherein the template type is represented in the electronic design automation tool by a selectable user interface feature; and a template instance producer means for producing a template instance based upon the template type, wherein the template instance associates the constraint with the circuit design object to represent in the electronic design automation tool that the physical limitation of the constraint applies to the circuit design object.
-
-
29. A system for retrieving a circuit design annotated with a constraint from a circuit design file on a persistent storage medium, comprising:
-
a template instance reader means for retrieving a representation of a template instance from the circuit design file, wherein the representation includes an instance name, a template type identifier, and at least one design object identifier; a template type selector means for identifying a template type specified by the template type identifier; a generator plug-in locator means for identifying a template instance generator associated with the template type if the template type is accessible; and a generator plug-in invoker means for invoking the template instance generator to create a restored template instance if the instance generator is accessible, wherein the restored template instance includes a constraint that references at least one design object, wherein the at least one design object is specified by the at least one design object identifier.
-
-
30. A system for providing a constraint manager user interface in an electronic design automation tool, comprising:
-
a template instance generator means for creating a template instance in response to selection of a template type button, wherein the template instance is an instance of a template type associated with the button; a design object selector means for receiving selection of a design object; a design object mapping means for associating the design object with the template instance; and a template instance display means for displaying a template instance tree comprising a template instance node, wherein template instance node represents the template instance.
-
-
31. A computer program product comprising program code for automating the application of constraints to design objects in a circuit design created using an electronic design automation tool, the computer program product comprising:
-
program code operable to receive selection of a circuit design object that represents a physical circuit object in a circuit being designed in the electronic design automation tool; program code operable to receive selection of a template type that produces a constraint that represents a physical limitation upon implementation of the circuit design object in the circuit, wherein the template type is represented in the electronic design automation tool by a selectable user interface feature; and program code operable to produce a template instance based upon the template type, wherein the template instance associates the constraint with the circuit design object to represent in the electronic design automation tool that the physical limitation of the constraint applies to the circuit design object.
-
-
32. A computer program product comprising program code for automating the validation of constraints associated with design objects in a design created using an electronic design automation tool, the computer program product comprising:
-
program code operable to receive notification of an change action that affects the design; program code operable to receive identify a template instance validation process associated with the template type; program code operable to receive invoke the validation process to validate the constraints; program code operable to receiving a validity indicator from the validation process; and program code operable to invoke a recovery process if the validity indicator indicates that the constraints are not valid.
-
Specification