US9679092B1ActiveUtility

Constraint handling for parameterizable hardware description language

85
Assignee: XILINX INCPriority: Nov 3, 2015Filed: Nov 3, 2015Granted: Jun 13, 2017
Est. expiryNov 3, 2035(~9.3 yrs left)· nominal 20-yr term from priority
G06F 30/3312G06F 2119/12G06F 30/33G06F 17/5031G06F 17/505G06F 17/5045G06F 17/5022G06F 30/3323G06F 30/327G06F 30/30G06F 2111/04G06F 30/3315
85
PatentIndex Score
5
Cited by
18
References
20
Claims

Abstract

Constraint handling for a circuit design may include determining, using a processor, instances of parameterizable modules of a circuit design associated with constraints based upon a predefined hardware description language attribute within the instances, extracting, using the processor, parameter values from the instances of the parameterizable modules, and generating, using the processor, static constraint files for the instances of the parameterizable modules using the extracted parameter values.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of constraint handling for a circuit design, comprising:
 determining, using a processor, instances of parameterizable modules of a circuit design associated with constraints based upon a predefined hardware description language attribute within the instances; 
 extracting, using the processor, parameter values from the instances of the parameterizable modules; and 
 generating, using the processor, static constraint files for the instances of the parameterizable modules using the extracted parameter values. 
 
     
     
       2. The method of  claim 1 , further comprising:
 grouping the instances of the parameterizable modules into bins wherein each bin includes instances of a same parameterizable module having same parameter values. 
 
     
     
       3. The method of  claim 2 , wherein generating static constraint files for the instances of the parameterizable modules is performed by bin and comprises, for at least one selected bin:
 calculating static constraints from parameterizable constraints for a single instance of a parameterizable module of the selected bin; and 
 creating a static constraint file for each instance of the parameterizable module of the selected bin using the calculated static constraints. 
 
     
     
       4. The method of  claim 1 , further comprising:
 applying static constraints from the static constraint files to the plurality of instances of the at least one parameterizable module. 
 
     
     
       5. The method of  claim 1 , further comprising:
 merging static constraints from selected static constraint files of a plurality of instances of at least one parameterizable module into a merged static constraint; and 
 applying the merged static constraint to the plurality of instances of the at least one parameterizable module. 
 
     
     
       6. The method of  claim 5 , wherein applying the merged static constraint to the plurality of instances of the at least one parameterizable module comprises:
 creating, within program execution memory, a timing data structure specifying the merged static constraint for each instance of the plurality of instances of the at least one parameterizable module. 
 
     
     
       7. The method of  claim 1 , further comprising:
 inserting the predefined hardware description language attribute within the instances of the parameterizable modules of the circuit design. 
 
     
     
       8. The method of  claim 1 , wherein determining instances of parameterizable modules of a circuit design comprises:
 searching instances of modules of the circuit design for the predefined hardware description language attribute specifying a constraint file for the module. 
 
     
     
       9. The method of  claim 1 , wherein the constraint file comprises a parameterizable constraint evaluated at runtime, wherein the parameterizable constraint for a selected instance of a parameterizable module depends upon a parameter value from the selected instance of the parameterizable module. 
     
     
       10. The method of  claim 9 , wherein the parameterizable constraint is specified using a scripting language. 
     
     
       11. A non-transitory computer-readable storage medium having instructions stored thereon which, when executed by a processor, perform a method of constraint handling for a circuit design comprising:
 determining, using the processor, instances of parameterizable modules of a circuit design associated with constraints based upon a predefined hardware description language attribute within the instances; 
 extracting, using the processor, parameter values from the instances of the parameterizable modules; and 
 generating, using the processor, static constraint files for the instances of the parameterizable modules using the extracted parameter values. 
 
     
     
       12. The non-transitory computer-readable storage medium of  claim 11 , further comprising:
 grouping the instances of the parameterizable modules into bins wherein each bin includes instances of a same parameterizable module having same parameter values. 
 
     
     
       13. The non-transitory computer-readable storage medium of  claim 12 , wherein generating static constraint files for the instances of the parameterizable modules is performed by bin and comprises, for at least one selected bin:
 calculating static constraints from parameterizable constraints for a single instance of a parameterizable module of the selected bin; and 
 creating a static constraint file for each instance of the parameterizable module of the selected bin using the calculated static constraints. 
 
     
     
       14. The non-transitory computer-readable storage medium of  claim 11 , further comprising:
 applying static constraints from the static constraint files to the plurality of instances of the at least one parameterizable module. 
 
     
     
       15. The non-transitory computer-readable storage medium of  claim 11 , further comprising:
 merging static constraints from selected static constraint files of a plurality of instances of at least one parameterizable module into a merged static constraint; and 
 applying the merged static constraint to the plurality of instances of the at least one parameterizable module. 
 
     
     
       16. The non-transitory computer-readable storage medium of  claim 15 , wherein applying the merged static constraint to the plurality of instances of the at least one parameterizable module comprises:
 creating, within program execution memory, a timing data structure specifying the merged static constraint for each instance of the plurality of instances of the at least one parameterizable module. 
 
     
     
       17. The non-transitory computer-readable storage medium of  claim 11 , further comprising:
 inserting the predefined hardware description language attribute within the instances of the parameterizable modules of the circuit design. 
 
     
     
       18. The non-transitory computer-readable storage medium of  claim 11 , wherein determining instances of parameterizable modules of a circuit design comprises:
 searching instances of modules of the circuit design for the predefined hardware description language attribute specifying a constraint file for the module. 
 
     
     
       19. The non-transitory computer-readable storage medium of  claim 11 , wherein the constraint file comprises a parameterizable constraint evaluated at runtime, wherein the parameterizable constraint for a selected instance of a parameterizable module depends upon a parameter value from the selected instance of the parameterizable module. 
     
     
       20. The non-transitory computer-readable storage medium of  claim 19 , wherein the parameterizable constraint is specified using a scripting language.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.