The efforts to apply constrained randomization to create test cases is based on the developer or verification engineer’s perception of what test vectors are required and can easily lead to hidden bugs being overlooked. Traditionally, the coverage goals would have been reached by writing more test cases with unpredictable schedules, often impacting time-to-market goals. Functional coverage defines critical states and constrained randomization tests those states in unpredictable ways. Often constrained randomization necessarily repeats states or worse, catastrophically misses a coverage point which has a “hidden” bug since the coverage points are written by the verification engineer using coverage bins. We are choosing constrained random stimulus-based coverage verification because we have found it to be a simple and flexible verification technique that saves time, reduces complexity and improves the performance of coverage by using various coverage techniques, such as bins and coverage transitions. Other advantages of functional coverage are that we define critical states, which can be targeted first with fewer test (provided we know which the critical paths are). To meet coverage goals, the verification engineer would otherwise need to write more test cases.
This article explores the shortcomings of standard constrained randomization techniques to attain coverage and uses coverage automation tools, using intelligent routines and algorithms, to analyze the coverage matrix and achieve maximum possible coverage by traversing the identified paths to detect otherwise undetectable bugs to increase functional coverage. We apply these techniques to a Zetta-Hz High Speed CDMA transceiver.
To show that verification engineers can use coverage automation tools to identify hidden bugs and reduce overall verification times and meet time-to-market guidelines.
This article will methodically look at coverage reports generated by standard simulation, analyze them in terms of meeting coverage goals, and then run automation tools to attain higher coverage goals in fewer simulation cycles and less time.