Claims
- 1. A system for verifying a circuit using a scheduling technique, the system comprising:
one or more partitioned ordered binary decision diagram (POBDD) modules that are collectively operable to generate one or more POBDDs, each POBDD corresponding to one or more partitions of a state space of the circuit and comprising a number of states and a number of nodes in the partition; one or more cost metrics modules that are collectively operable to determine a processing cost of each of the partitions of each of the POBDDs; and one or more scheduling modules that are collectively operable to schedule processing of the partitions of the POBDDs for semiformal verification of a circuit, the schedule being based, at least in part, on the determined processing costs of the partitions of the POBDDs.
- 2. The system of claim 1, wherein the processing cost of each of the partitions of each of the POBDDs is based, at least in part, on a ratio between:
a length of time taken to perform a recent fix point computation in the particular partition corresponding to the partition; and a density of the particular partition corresponding to the POBDD, the density reflecting the number of states and the number of nodes of the POBDD in the partition.
- 3. The system of claim 1, wherein the processing cost of each of the partitions of each of the POBDDs is based, at least in part, on a density of the partition, the density reflecting the number of states and the number of nodes of the POBDD in the partition.
- 4. The system of claim 3, wherein the one or more scheduling modules are collectively operable to:
compare the density of one or more of the partitions of one or more of the POBDDs with a threshold; ignore one or more partitions having densities that exceed the threshold; and communicate between one or more pairs of partitions according to a schedule according to which:
communications between a partition that comprises a higher density and a smaller number of nodes and a partition that comprises a lower density and a smaller number of nodes occur before communications between a partition that comprises a higher density and a smaller number of nodes and a partition that comprises a higher density and a smaller number of nodes; and communications between a partition that comprises a higher density and a smaller number of nodes and a partition that comprises a higher density and a smaller number of nodes occur before communications between a partition that comprises a higher density and a smaller number of nodes and a partition that comprises a lower density and a greater number of nodes.
- 5. The system of claim 1, wherein the processing of the partitions of the POBDDs for semiformal verification of the circuit continuing until a saturation point has been reached, the saturation point reflecting a particular rate at which new states are being reached.
- 6. The system of claim 1, wherein, during the processing of the partitions of the POBDDs, one or more communications occur between one or more pairs of partitions, each communication having been delayed until a fix point has been reached in at least one of the partitions of the pair.
- 7. The system of claim 1, wherein the circuit is reduced using one or more partial assignments before the POBDDs are generated.
- 8. The system of claim 1, wherein a fix point iteration technique is used to determine one or more reachable states using a POBDD.
- 9. The system of claim 8, wherein the fix point iteration is optionally terminable in event that a first number of new states reached using the POBDD is less than a specified percentage of a second number of previous states reached.
- 10. The system of claim 1, wherein one or more of the POBDDs are generated from one or more states visited in a simulation dump.
- 11. The system of claim 1, wherein the POBDDs are generated using a POBDD splitting variable heuristics technique.
- 12. The system of claim 1, wherein the circuit is verified using a semiformal verification technique or a formal verification technique.
- 13. A method for verifying one or more particular properties of a circuit using a learning strategy to determine a plurality of suitable values of a plurality of particular verification parameters, the method comprising:
classifying each of a plurality of properties of a circuit according to circuit size; selecting a candidate property from the plurality of properties, the candidate property set comprising one or more particular properties from each property class; attempting to verify one or more particular properties of the circuit using the candidate property set and a plurality of particular values of a plurality of particular verification parameters; and determining a plurality of suitable values of the plurality of particular verification parameters according the attempted verification of the one or more particular properties of the circuit using the candidate property set and the plurality of particular values of the plurality of particular verification parameters.
- 14. The method of claim 13, wherein the candidate property set comprises three particular properties from each property class.
- 15. The method of claim 13, wherein a formal verification process or a semiformal verification process is used to attempt to verify the one or more particular properties of the circuit.
- 16. A method for verifying one or more particular properties of a circuit using a learning strategy to determine a plurality of suitable values of a plurality of particular verification parameters, the method comprising:
selecting a plurality of particular properties from a plurality of properties of a circuit; attempting to verify the plurality of selected properties using a plurality of particular values of a plurality of particular verification parameters; using a runtime and peak node count to determine, from the use of the plurality of particular values of the plurality of particular verification parameters:
a first set of a plurality particular values of the plurality of particular verification parameters that particularly enable verification of circuit properties that are relatively easy to verify; a second set of a plurality particular values of the plurality of particular verification parameters that particularly enable verification of circuit properties that are moderately difficult to verify; and a third set of a plurality particular values of the plurality of particular verification parameters that particularly enable verification of circuit properties that are relatively difficult to verify.
- 17. The method of claim 16, wherein a formal verification process or a semiformal verification process is used to attempt to verify the selected properties of the circuit.
- 18. A method for verifying one or more particular properties of a circuit using a learning strategy to determine a plurality of suitable values of a plurality of particular verification parameters, the method comprising:
selecting a first set of one or more particular properties from a plurality of properties of a circuit; verifying the first set of properties using a plurality of particular values of a plurality of particular verification parameters; selecting a second set of one or more particular properties from the plurality of properties of the circuit; and attempting to verify the second set of properties using at least some of the plurality of particular values of the plurality of particular verification parameters.
- 19. The method of claim 18, wherein a formal verification process or a semiformal verification process is used to verify the first set of properties and to attempt to verify the second set of properties.
- 20. The method of claim 18, wherein the selection of the second set of one or more particular properties is a random selection.
- 21. A method for verifying one or more particular properties of a circuit using a learning strategy to determine a plurality of suitable values of a plurality of particular verification parameters, the method comprising:
selecting a first set of one or more particular properties from a plurality of properties of a circuit; verifying the first set of properties using a plurality of particular values of a plurality of particular verification parameters; selecting a second set of one or more particular properties from the plurality of properties of the circuit; and selecting particular ones of the plurality of particular values of the plurality of particular verification parameters used to verify the first set of properties, the selected ones of the plurality of particular values having particularly enabled verification of the first set of properties of the circuit; and attempting to verify the second set of properties using the selected ones of the plurality of particular values of the plurality of particular verification parameters used to verify the first set of properties.
- 22. The method of claim 21, wherein a formal verification process or a semiformal verification process is used to verify the first set of properties and to attempt to verify the second set of properties.
- 23. The method of claim 21, wherein the selection of the second set of one or more particular properties is a random selection.
- 24. A method for verifying one or more particular properties of a circuit using a learning strategy to determine a plurality of suitable values of a plurality of particular verification parameters, the method comprising:
classifying each of a plurality of properties of a circuit according to circuit size; selecting a candidate property from the plurality of properties, the candidate property set comprising one or more particular properties from each property class; attempting to verify one or more particular properties of the circuit using the candidate property set and a plurality of particular values of a plurality of particular verification parameters; and determining, for each property class, a plurality of suitable values of the plurality of particular verification parameters according the attempted verification of the one or more particular properties of the circuit using the candidate property set and the plurality of particular values of the plurality of particular verification parameters.
- 25. The method of claim 24, wherein a formal verification process or a semiformal verification process is used to verify the first set of properties and to attempt to verify the second set of properties.
- 26. A method for verifying one or more particular properties of a circuit using a learning strategy to determine a plurality of suitable values of a plurality of particular verification parameters, the method comprising:
classifying each of a plurality of properties of a circuit according to circuit size; selecting a candidate property set from the plurality of properties, the candidate property set comprising one or more particular properties from each property class; attempting to verify one or more particular properties of the circuit using the candidate property set and a plurality of particular values of a plurality of particular verification parameters; determining, for each property class, a plurality of suitable values of the plurality of particular verification parameters according the attempted verification of the one or more particular properties of the circuit using the candidate property set and the plurality of particular values of the plurality of particular verification parameters; and applying, to each property class, the plurality of suitable values of the plurality of particular verification parameters corresponding to the property class to verify all properties of the property class.
- 27. The method of claim 26, wherein a formal verification process or a semiformal verification process is used to attempt to verify the candidate property set and to verify all properties of each property class.
- 28. A method for terminating a circuit verification process, the method comprising:
executing an automatic circuit verification process according to which one or more first states of the circuit are reached from one or more second states of the circuit that have already been reached, the first states being reached by the circuit verification process at a rate that varies over time; automatically reaching a saturation point that reflects a particular rate at which first states have been reached by the circuit verification process, the particular rate being approximately equal to zero; and terminating the circuit verification process in response to having reached the saturation point.
- 29. The method of claim 28, wherein the circuit verification process is a semiformal circuit verification process or a formal verification process.
- 30. A method for verifying a circuit, the method comprising:
generating one or more partitions of a state space of a circuit, each partition being associated with a representation that has a size; initiating processing of each of the generated partitions using the representations of the generated partitions to verify the circuit; if, during the processing of the partition, the size of one of the representations of one of the generated partitions exceeds a first threshold:
determining at least one splitting variable usable to generate two or more subpartitions from the partition, the splitting variable being determined according to a cost function; generating two or more subpartitions from the partition using the determined splitting variable, each of the subpartitions also being associated with a representation that has a size; initiating processing of each of the two or more subpartitions; and if, during processing of each of the subpartitions, the size of the representation of the subpartition exceeds a second threshold, generating further subpartitions from the subpartition to limit partition-representation size.
- 31. The method of claim 30, wherein, to verify the circuit, a formal verification technique or a semiformal verification technique is used.
- 32. A method for circuit verification, the method comprising:
generating one or more partitioned ordered binary decision diagrams (POBDDs) that each correspond to one or more partitions of a state space of a circuit; to verify the circuit, processing the partitions of the POBDDs according to:
a model checking technique for comparing the circuit with one or more circuit properties each expressed using a formula or a combination of formulas expressible in the form of a temporal modality; or a backward reachability technique; and during the processing of the partitions of the POBDDs, communicating between at least one pair of partitions, the communication being delayed until a fix point has been reached in at least one of the partitions of the pair of partitions.
- 33. The method of claim 32, wherein verification of the circuit comprises formal verification or semiformal verification.
- 34. The method of claim 32, wherein the temporal modality comprises EU, EX, or EG.
- 35. A method for semiformal verification of a circuit, the method comprising:
generating one or more partitions of a state space of a circuit; selecting one or more particular partitions for semiformal verification processing, each of the one or more particular partitions being selected according to whether:
the partition has a uniform distribution in Boolean space; or the partition meets one or more distribution criteria related to structural image overlapping between two or more of the one or more partitions; and processing only the one or more selected particular partitions for semiformal verification of the circuit.
- 36. A method for verification of a circuit, the method comprising:
initiating a first circuit verification process to verify a circuit, the verification process using a nonpartitioned ordered binary decision diagram (OBDD) having a size; and if, during the first circuit verification process, the size of the nonpartitioned OBDD exceeds a threshold:
terminating the first circuit verification process; selecting, according to a splitting variable heuristics technique, one or more splitting variables for generating two or more partitioned OBDDs (POBDDs); using the nonpartitioned OBDD and the one or more selected splitting variables, generating two or more POBDDs that each correspond to a particular state space of the circuit; and initiating a second circuit verification process to verify the circuit, the verification process using the two or more generated POBDDs.
- 37. The method of claim 36, wherein the first and second circuit verification processes comprise formal verification processes or semiformal verification processes.
- 38. A method for verification of a circuit, the method comprising:
initiating a circuit verification process to verify the circuit, the circuit verification process being executed according to a plurality of particular values of a plurality of circuit verification parameters; examining a computation trace of the circuit verification process that is associated with a particular partition of the state space of the circuit, the particular partition being determined according to a heuristic technique such that a size of the particular partition is relatively small; and using results from the examination of the computation trace, assessing the suitability of certain ones of the plurality of particular values of the plurality of circuit verification parameters to determine one or more acceptable values for one or more circuit verification parameters.
- 39. The method of claim 38, wherein the circuit verification process is a formal circuit verification process or a semiformal circuit verification process.
- 40. The method of claim 38, wherein the heuristic technique is a splitting variable heuristic technique.
- 41. The method of claim 38, wherein the one or more circuit verification parameters for which one or more acceptable values are determined comprise one or more of:
a computation ordering parameter of the circuit verification process; a clustering parameter of the circuit verification process; and a splitting variable parameter of the circuit verification process.
- 42. A method for verifying a circuit, the method comprising:
generating a plurality of partitions of a state space of a circuit for a circuit verification process, each partition being associated with an individual representation having an individual size; and using an algorithm to isolate one or more first ones of the plurality of partitions that are incompatible with one or more second ones of the plurality of partitions, two particular partitions being incompatible with each other if a totality of the individual sizes of the individual representations of the two particular partitions is more compact than a combined size of a combined representation of a combination of the two particular partitions, the algorithm isolating the one or more first ones of the plurality of partitions by:
separating candidate subfunctions associated with the plurality of partitions from each other; representing each of the candidate subfunctions independent of the other candidate subfunctions; and using the candidate subfunctions to determine the incompatibility of each of the plurality of partitions. running the circuit verification process using the one or more isolated first ones of the plurality of partitions.
- 43. The method of claim 42, wherein the circuit verification process is a formal verification process or a semiformal verification process.
- 44. A method for verifying a circuit, the method comprising:
at least attempting to generate a transition relation (TR) representing a circuit to verify the circuit, the TR corresponding to a state space of the circuit and having a size; if the size of the generated TR exceeds a particular threshold:
functionally partitioning the TR into a plurality of TR partitions, each TR partition corresponding to a particular subspace of the state space; performing a first reachability analysis using one or more first ones of the TR partitions to verify the circuit; and if the first reachability analysis fails to reach a particular number of states over a particular period of time, performing at least a second reachability analysis using one or more second ones of the TR partitions to verify the circuit; and terminating the verification of the circuit when a suitable termination point has been reached.
- 45. The method of claim 44, wherein the verification of the circuit comprises semiformal verification or formal verification.
- 46. A method for electronic design application (EDA) processing, the method comprising:
receiving an instance for EDA processing; extracting, from the instance, at least one subinstance comprising a functional or structural partition of the instance; according to an EDA processing technique for obtaining a particular EDA solution, processing the subinstance using one or more particular values for one or more particular processing parameters that are particularly applicable to the EDA processing technique for obtaining the particular EDA solution; identifying one or more particular ones of the particular values that particularly enabled efficient EDA processing of the subinstance; and using the one or more identified values to process one or more other subinstances of the instance.
- 47. The method of claim 46, wherein the EDA processing comprises a formal EDA processing or semiformal EDA processing.
RELATED APPLICATION
[0001] This application claims the benefit, under 35 U.S.C. §119(e), of U.S. Provisional Patent Application No. 60/426,207, filed Nov. 13, 2002, which is incorporated herein by reference.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60426207 |
Nov 2002 |
US |