Coordinated Randomization for Functional Verification Coverage
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for functional verification of circuit designs face challenges in generating stimuli that effectively cover rarely occurring functionality, leading to inefficient processing cycles and prolonged coverage closure.
Innovation Solution
A method that involves receiving a description of stimuli and a coverage model for a circuit design, where the processing device generates stimuli by randomizing variable values across multiple classes, with biased randomization to hit coverage targets based on context values from other variables.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If random stimuli are generated using constraint-random verification, then coverage of common test cases is achieved efficiently, but coverage of rarely occurring test cases requires a disproportionate number of processing cycles
Solution Approach 1:
The patent implements feedback mechanisms where coverage information from previously generated stimuli is fed back into the randomization process. The coverage model tracks which test cases have been exercised and uses this information to bias subsequent randomization, increasing the probability of exercising rarely occurring functionality while maintaining efficiency for common cases.
Solution Approach 2:
The patent dynamically changes the probability distribution parameters of random variables based on coverage feedback. By adjusting the bias parameters in the randomization process according to coverage targets, the system can shift from uniform random sampling to targeted sampling that prioritizes under-covered test cases without sacrificing overall verification efficiency.
2Reliability
If more stimuli are generated to cover rarely occurring functionality, then coverage closure is improved, but the time required for functional verification increases
Solution Approach 1:
The patent performs preliminary analysis of the coverage model to identify rarely occurring test cases before generating stimuli. By pre-characterizing the coverage landscape and identifying hard-to-reach test cases, the verification process can prioritize these cases from the beginning, avoiding the need to generate large numbers of stimuli blindly to achieve coverage closure.
Solution Approach 2:
The coverage model provides continuous feedback during the verification process, allowing the system to adaptively adjust the stimulus generation strategy. This feedback loop enables the verification process to focus computational resources on achieving coverage closure efficiently by identifying and targeting remaining coverage gaps without generating excessive unnecessary stimuli.
3Ease of manufacture
If random variables are randomized independently in separate classes, then the verification process is simpler to implement, but coverage targets that depend on multiple classes are hit less frequently
Solution Approach 1:
The patent merges the randomization of variables across multiple classes by introducing coordination mechanisms that consider inter-class dependencies. The coverage model identifies relationships between variables in different classes and coordinates their randomization to increase the frequency of hitting coverage targets that depend on combinations of variables from multiple classes, while maintaining modular implementation structure.
Data Source
AI summary
A description of stimuli used for functional verification of a circuit design is received. The description includes classes of variables and the variable include random variables. A coverage model for the functional verification of the circuit design is also received. The coverage model includes coverage targets that are functions of the variables. A processing device generates stimuli for multiple iterations of the functional verification, as follows. Context values, which include values of the random variables for the stimuli, are maintained. The values of the random variables in an individual class are randomized, and the randomization of the random variables in the individual class is biased to hit the coverage targets given the context values for the random variables outside the individual class. Whether the coverage targets are hit by the generated stimuli is determined.


