Patent ID: 8510692

Claim:
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.