Combination Function Coverage for Reduced-Coding Chip Verification
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing chip verification technologies face high programming workload and low test efficiency due to separate definitions of function coverage and random constraints, leading to incomplete coverage and increased simulation verification time.
Innovation Solution
A test method that integrates function coverage as a random constraint, using a nested three-level structure to generate random excitations, and sets weights for value segments to ensure complete scenario coverage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If function coverage and random constraints are separately defined, then coverage target can be specified, but programming workload increases and test efficiency decreases
Solution Approach 1:
The patent merges the function coverage definition and random constraint definition into a unified structure. The covergroup syntax is used to define both the coverage targets (via coverpoints and bins) and the random constraints (via constraint blocks) in the same code block, eliminating the need for separate definitions and reducing programming workload while maintaining coverage precision.
2Measurement precision
If conventional separate definition method is used, then coverage target can be defined, but coding workload increases by 2/3
Solution Approach 1:
The patent combines coverage target definition and random constraint definition into a single integrated syntax structure. By using covergroup with embedded constraint blocks, the patent eliminates redundant code and reduces coding workload by 2/3 while maintaining the ability to precisely specify coverage targets.
Solution Approach 2:
The covergroup structure serves multiple functions simultaneously: it defines coverage points, creates bins for categorization, specifies random constraints, and enables automated coverage collection. This multi-functional approach eliminates the need for separate code sections for each function, reducing overall complexity.
3Measurement precision
If function coverage is defined separately from random constraints, then coverage structure can be established, but simulation verification time increases
Solution Approach 1:
The patent integrates coverage structure definition and random constraint specification into a unified covergroup block. This integration allows the verification tool to process both coverage targets and constraints in a single pass during simulation, reducing the number of processing passes required and thereby decreasing simulation verification time.
4Measurement precision
If separate definition approach is used, then coverage targets can be specified, but test completeness decreases
Solution Approach 1:
The patent implements automatic feedback mechanisms where the covergroup monitors coverage achievement in real-time during simulation. The constraint blocks work together with the coverage collection to ensure that all defined bins are exercised, providing feedback that drives test completeness while maintaining precise coverage target specification.
Data Source
AI summary
A test method and system based on a combination function coverage are provided, where the method includes: constructing a combination function coverage based on a verification requirement, and directly using the combination function coverage as a random constraint to generate a random excitation; setting a random seed for a value range of each variable in the combination function coverage structure; generating a value segment combination sequentially or randomly based on a total quantity of scenarios in the combination function coverage structure; generating a corresponding random excitation based on the generated value segment combination and a corresponding random seed, to perform testing in a current scenario; and repeatedly perform random excitation generation and scenario testing until testing in all scenarios is completed. Definition of a function coverage is directly used as a random constraint, so that a programming workload is greatly reduced.

