Generalized constraint collection management method
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.
Claims
exact text as granted — not AI-modified1 - 10 . (canceled)
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.
12 . The method of claim 11 , further comprising:
retrieving the template instance validation process from a plug-in file associated with the template type.
13 . The method of claim 11 , wherein the template instance validation process is provided by a user of the design automation tool.
14 . The method of claim 11 , further comprising providing the at least one design object and a template instance parameter to the template instance validation process.
15 . The method of claim 14 , wherein the template instance validation process comprises:
determining if the value of at least one constraint parameter associated with at least one of the constraints is valid; if the constraint parameter is valid, generating a success indicator; and if the constraint parameter is not valid, generating a failure indicator.
16 . The method of claim 11 , wherein the recovery process comprises:
deleting the constraints; identifying a template instance generation process associated with the template type; and invoking the template instance generation process to re-create the constraints.
17 . The method of claim 11 , wherein the change action comprises reading in of a template instance from a storage medium, modification of a template instance parameter, or a combination thereof.
18 . The method of claim 11 , wherein the change action comprises modification of the circuit design.
19 . The method of claim 11 , wherein the change action comprises a change to the at least one constraint, and the recovery process comprises:
rejecting the change action.
20 - 25 . (canceled)
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 - 28 . (canceled)
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 - 31 . (canceled)
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.Join the waitlist — get patent alerts
Track US2010325597A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.