Circuit Verification Checkpointing Parallel Simulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Circuit design verification requires extensive testing with various stimuli, making it time-consuming due to the large number of possible inputs, necessitating a more efficient verification method.

Innovation Solution

The method involves creating a stimulus tree diagram with checkpointed and non-checkpointed splits, allowing for concurrent simulation and context saving to efficiently execute multiple paths, thereby reducing verification time.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all possible stimuli are used to test the circuit design, then verification completeness is improved, but verification time increases significantly

Engineering Contradiction:
Improveverification completenessVSAvoidverification time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The stimulus set is segmented into multiple groups that can be executed in parallel. The stimulus tree diagram divides the complete stimulus set into subsets that can be processed concurrently by multiple simulation environments, maintaining verification completeness while reducing total execution time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Checkpoint contexts are saved in advance during stimulus execution. When a checkpoint is reached, the saved context allows the simulation to be resumed or forked into multiple parallel paths without re-executing previous stimulus sequences, enabling efficient parallel verification.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If multiple simulation paths are executed in parallel, then verification time is reduced, but system complexity increases

Engineering Contradiction:
Improveverification timeVSAvoidsystem complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

Multiple simulation environments are created as copies of a base simulation environment. Each copy can execute independent stimulus paths concurrently. The checkpoint context saving mechanism allows these copies to be created and managed efficiently without duplicating the entire simulation infrastructure.

Inventive Principle:
Principle #26Copying

3Productivity

If checkpoint contexts are saved for parallel execution, then stimulus coverage efficiency is improved, but memory usage increases

Engineering Contradiction:
Improvestimulus coverage efficiencyVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

Only the necessary checkpoint contexts are saved in memory - specifically, the simulation state at checkpoint boundaries. Non-essential simulation data is excluded from the saved contexts, reducing memory overhead while maintaining the ability to resume or fork simulations efficiently.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7308663B2Circuit design verification using checkpointing
Publication Date: 2007.12.11 MARVELL ASIA PTE LTD
  • US7308663B2 patent drawing
  • US7308663B2 patent drawing
  • US7308663B2 patent drawing

AI summary

A design verification method, comprising providing a circuit design; creating a stimulus tree diagram for the circuit design, wherein the stimulus tree diagram comprises L stimuli, M checkpointed splits, and N non-checkpointed splits; and executing the stimulus tree diagram, wherein said executing the stimulus tree diagram comprises, for i=1, . . . , M, executing an ith checkpointed split of the M checkpointed splits, wherein said executing the ith checkpointed split comprises (a) saving an ith context of an ith simulation environment in which said executing the stimulus tree diagram is performed; and (b) after said saving the ith context is performed, executing from the ith context along Pi paths of the stimulus tree diagram branching from the ith checkpointed split, wherein the ith checkpointed split is a Pi-way split, Pi being an integer greater than 1.