Functional Verification Bucketization for Faster Coverage Closure
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Concurrent simulations in functional verification often overlap in targeting the same uncovered functional coverage space, leading to reduced coverage convergence and inefficient use of computing resources.
Innovation Solution
Implement a bucketization scheme that segregates bins of the functional coverage space into distinct buckets, assigning each simulation to target a unique bucket until full coverage is achieved, and iteratively expand the bucket to include additional bins.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple concurrent simulations target the same uncovered functional coverage space, then the simulations can be executed in parallel, but the coverage convergence rate decreases due to overlap
Solution Approach 1:
The functional coverage space is segmented into multiple distinct buckets, where each concurrent simulation is assigned to target a specific bucket. This segmentation eliminates overlap between simulations, ensuring that each simulation contributes uniquely to coverage closure while maintaining parallel execution efficiency.
2Productivity
If the functional coverage space is divided into multiple buckets with unique ID numbers, then overlap among concurrent simulations is reduced, but the system complexity increases
Solution Approach 1:
The system automatically manages the bucketization scheme through self-service mechanisms. The coverage manager autonomously assigns simulations to buckets, tracks coverage progress, and dynamically adjusts assignments without requiring manual intervention, thereby reducing the operational complexity despite the structural division.
3Productivity
If each simulation is assigned a unique bucket to target, then coverage overlap is minimized, but the adaptability to dynamic coverage requirements decreases
Solution Approach 1:
The bucketization scheme implements dynamic adaptability where simulation-to-bucket assignments can be adjusted based on coverage progress. As simulations complete their assigned buckets, the system dynamically reassigns them to new buckets, allowing the system to adapt to changing coverage requirements while maintaining high regression throughput.
Data Source
AI summary
An example is a non-transitory computer-readable storage medium including stored instructions. The instructions, which when executed by one or more processors, cause the one or more processors to: obtain an assignment of an assigned bucket; generate stimulus values targeting one or more uncovered bins of the assigned bucket; simulate operation of a circuit design using the stimulus values; determine whether the assigned bucket has been covered by the simulated operation of the circuit design; and expand a size of the assigned bucket following a determination that the assigned bucket has been covered. The assigned bucket, as assigned, has a subset of bins of a functional coverage space.


