Property specific testbench generation framework for circuit design validation by guided simulation
First Claim
1. A method of verification for a design, comprising:
- providing a description of said design;
specifying correctness criteria for said design, wherein said correctness criteria are expressed as one or more correctness properties;
abstracting said design description to provide an abstract model of said design;
generating a witness graph for said one or more correctness properties based on a deterministic analysis of said abstract model where the deterministic analysis serves to modify the abstract model by iteratively refining and pruning states and transitions which capture all witnesses or counterexamples demonstrating said one or more correctness properties; and
when the deterministic analysis does not produce a conclusive result, generating a testbench automatically from said witness graph for performing simulation with said testbench, where the testbench generates simulation test vectors for the simulation that target states and transitions in the witness graph when searching for a concrete witness or counterexample with respect to said correctness criteria.
2 Assignments
0 Petitions
Accused Products
Abstract
Simulation continues to be the primary technique for functional validation of designs. It is important that simulation vectors be effective in targeting the types of bugs designers expect to find rather than some generic coverage metrics. The focus of this work is to generate property-specific testbenches that are targeted either at proving the correctness of a property or at finding a bug. It is based on performing property-specific analysis on iteratively less abstract models of the design in order to obtain interesting paths in the form of a Witness Graph, which is then targeted during simulation of the entire design. This testbench generation framework will form an integral part of a comprehensive verification system currently being developed.
-
Citations
43 Claims
-
1. A method of verification for a design, comprising:
-
providing a description of said design; specifying correctness criteria for said design, wherein said correctness criteria are expressed as one or more correctness properties; abstracting said design description to provide an abstract model of said design; generating a witness graph for said one or more correctness properties based on a deterministic analysis of said abstract model where the deterministic analysis serves to modify the abstract model by iteratively refining and pruning states and transitions which capture all witnesses or counterexamples demonstrating said one or more correctness properties; and when the deterministic analysis does not produce a conclusive result, generating a testbench automatically from said witness graph for performing simulation with said testbench, where the testbench generates simulation test vectors for the simulation that target states and transitions in the witness graph when searching for a concrete witness or counterexample with respect to said correctness criteria. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A method of assessing simulation coverage of a given set of simulation vectors for a given design, comprising:
-
providing a description of said design; specifying correctness criteria for said design, wherein said correctness criteria are expressed as one or more correctness properties; generating a witness graph for one or more of said correctness properties; and determining coverage of said witness graph, using said given set of simulation vectors, by marking entities visited by said given set of simulation vectors in said witness graph, said entities being selected from the set consisting of states, transitions, and paths; wherein said generation of said witness graph comprises; removing a portion from said design when an influence determination does not indicate that said portion of said design is in a cone of influence of said property; modeling, as an initial abstract model, a controller state and variables in a datapath state directly involved in predicates of said correctness property; performing deterministic analysis on said abstract model; and pruning said abstract model to obtain said witness graph; said influence determination indicates said portion of said design is in said cone of influence of said property when said portion of said design is one or more of; a portion directly affecting said variables in said predicates of said property; and a portion affecting branching which in turn affects predicates of said property; said deterministic analysis determines which portion in said abstract model indicates paths relating to said conclusive result for said property; and said pruning comprises removing a portion in said abstract model indicated by said analysis not to relate to said conclusive result for said property.
-
-
24. A device-readable medium comprising program instructions for causing the device to perform verification for a design, comprising:
-
receiving an abstract model of said design, said abstract model abstracted from a design description of said design; receiving one or more correctness properties representing correctness criteria specified for said design; generating a witness graph for said one or more correctness properties based on a deterministic analysis of said abstract model where the deterministic analysis serves to modify the abstract model by iteratively refining and pruning states and transitions which capture all witnesses or counterexamples demonstrating said one or more correctness properties; and when the deterministic analysis does not produce a conclusive result, automatically generating a testbench from said witness graph for performing simulation with said testbench, where the testbench generates simulation test vectors for the simulation that target states and transitions in the witness graph when searching for a concrete witness or counterexample with respect to said correctness criteria. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 37, 38, 39)
-
-
34. An apparatus for verification of a design comprising:
-
an input module for receiving an abstract model of said design, said abstract model abstracted from a design description of said design, and for receiving one or more correctness properties representing correctness criteria specified for said design; a witness graph module for generating a witness graph for said one or more correctness properties based on a deterministic analysis of said abstract model when the deterministic analysis serves to modify the abstract model by iteratively refining and pruning states and transitions which capture all witnesses or counterexamples demonstrating the correctness properties; and a testbench module for generating a testbench automatically from said witness graph for performing simulation with said testbench, where the testbench generates simulation test vectors for the simulation that target states and transitions in the witness graph when searching for a concrete witness or counterexample with respect to said correctness criteria. - View Dependent Claims (35, 36, 40, 41, 42, 43)
-
Specification