Verification system and method using constrained random test parameter selection
AssigneeLexmark International, Inc.
InventorZachary Nathan Fister
Life of this patent
Estimating the term…
Abstract
A software program for verifying a system design having at least one integrated circuit chip. The software program, when executed by a processor, result in obtaining a random value for a variable; selecting an unused value for the variable based upon the random value, the variable not having been assigned the unused value during one or more prior verification tests; and creating a new verification test for the system using the unused value for the variable. In this way, the new verification test is created in which variables falling within a random class are more efficiently used.
Claims13
A computer program product for verifying a design, the product being stored in a non-transitory storage medium and having instructions which, when executed by a processor, result in:
- obtaining a random value for a variable;
- determining whether the variable has achieved a predetermined amount of coverage during one or more prior verification tests;
- upon a negative determination that the variable has not achieved the predetermined amount of coverage, determining whether the random value was used during the one or more prior verification tests;
- upon a positive determination that the random value was used during the one or more prior verification tests, choosing another value for the variable based upon the random value;
- setting a final value for the variable based upon the another value;
- and
- creating a new verification test for a design to be verified using the final value for the variable;
- further comprising instructions for creatin a database of coverage data for the variable during the one or more prior verification tests, wherein the determining whether the variable has achieved a predetermined amount of coverage comprises accessing the database of coverage data;
- wherein choosing another value comprises using the random value as a starting index for selecting a value in the database of coverage data, determining whether the selected value is an unused value and repeating the selectin the value and the determining whether the selected value is an unused value until the selected value is determined to be an unused value, the unused value being used as the another value.
A method for verifying a design, comprising:
- obtaining a random value for a variable;
- determining whether the variable has achieved a predetermined amount of coverage during one or more prior verifications;
- upon a negative determination that the variable has not achieved the predetermined amount of coverage, determining whether the random value was used during the one or more prior verifications;
- upon a positive determination that the random value was used during the one or more prior verifications, choosing another value for the variable based upon the random value;
- setting a final value for the variable based upon the another value;
- and
- creating a verification test for the design using the final value for the variable;
- wherein the determining whether the variable has achieved a predetermined amount of coverage comprises accessing a database of coverage data for the variable,
- wherein choosing another value comprises using the random value as a starting index for selecting a value in the database of coverage data, determining whether the selected value is an unused value and repeating the selectin the value and the determining whether the selected value is an unused value until the selected value is determined to be an unused value, the unused value being used as the another value,
- and wherein at least one of the obtaining, the determining whether the variable has achieved a predetermined amount of coverage, the determining whether the random value was used during the one or more prior verifications, the choosing, the setting and the creating is performed by a computing device.
A software program for verifying a system having at least one integrated circuit chip, the software program being stored in a non-transitory storage medium and including instructions which, when executed by a processor, result in:
- obtaining a random value for a variable;
- determining whether the variable has achieved a predetermined amount of coverage during one or more prior verification tests, comprising accessing a database of coverage data for the variable;
- upon a negative determination that the variable has not achieved the predetermined amount of coverage, determining whether the random value was used during the one or more prior verification tests;
- upon a positive determination that the random value was used during the one or more prior verification tests,
- selecting an unused value for the variable based upon the random value, the variable not having been assigned the unused value during the one or more prior verification tests, comprising using the random value as a starting index for selecting a value in the database of coverage data determining whether the selected value is an unused value and repeating the selecting the value and the determining whether the selected value is an unused value until the selected value is determined to having been unused in the one or more prior verification tests, the selected value being the unused value;
- and
- creating a new verification test for the system using the unused value for the variable.
Dependencies are inferred from the claim text.