Offline Functional Coverage Collection for IC Verification

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing functional verification process for integrated circuits is time-consuming and inefficient, particularly for large designs, as it requires repeated simulations to collect and analyze coverage data, which can take weeks or months, and often involves significant compute cycles, slowing down the simulation process and extending the verification cycle.

Innovation Solution

The proposed solution involves storing stimulus data used for simulations in a database and using a coverage testbench to aggregate coverage data offline, allowing for rapid re-aggregation of coverage data without re-running simulations, thereby reducing collection times by up to 100× and enabling quicker refinement of the coverage model and analysis of stimulus robustness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If repeated simulations are run to collect and analyze coverage data, then functional coverage is achieved, but verification time increases significantly

Engineering Contradiction:
Improvefunctional coverageVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent pre-processes and stores stimulus data in a database during the simulation phase, so that coverage data can be rapidly aggregated later without re-running simulations. This preliminary action of storing raw stimulus data enables fast offline coverage collection, resolving the time consumption issue while maintaining coverage accuracy.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a coverage testbench that reads stored stimulus data from the database and generates coverage reports without executing the actual design simulations again. This copying approach allows rapid re-aggregation of coverage data from stored stimuli, reducing verification time by up to 100× while preserving functional coverage information.

Inventive Principle:
Principle #26Copying

2Loss of information

If coverage data is collected during simulation runs, then coverage information is obtained, but simulation performance deteriorates

Engineering Contradiction:
Improvecoverage dataVSAvoidsimulation performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent extracts coverage collection from the simulation process itself by storing stimulus data in a database during simulation and then using a separate coverage testbench to aggregate coverage information offline. This separation removes the coverage collection overhead from the simulation runs, improving simulation performance while maintaining complete coverage data collection.

Inventive Principle:
Principle #2Taking out (Extraction)

3Manufacturing precision

If coverage model refinement is performed frequently, then coverage goals are achieved, but computational resources are consumed

Engineering Contradiction:
Improvecoverage model accuracyVSAvoidcompute cycles
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The patent performs preliminary aggregation of coverage data from stored stimulus data before model refinement is needed. This allows engineers to quickly assess current coverage status and make informed decisions about model refinement, avoiding unnecessary re-simulations and reducing computational resource consumption while maintaining coverage model accuracy.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11250191B1Offline functional coverage collection
Publication Date: 2022.02.15 AMAZON TECH INC
  • US11250191B1 patent drawing
  • US11250191B1 patent drawing
  • US11250191B1 patent drawing

AI summary

Aggregation of coverage data for a design-under-test (DUT) can be performed using a coverage testbench without running any simulations on the DUT. Stimulus data that was used previously for performing different simulations on the DUT can be saved in a database. The coverage testbench can read the saved stimulus data and aggregate the coverage data from the stimulus data using a coverage model. When the DUT is updated, the coverage model can be updated, and updated coverage data can be collected using the coverage testbench without re-running the simulations on the DUT.