Testbench Restoration via Capture Replay for Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern integrated circuit designs, especially SoC designs, face significant verification challenges due to the slow speed of software-based simulation, which is exacerbated by cache misses and memory swapping, and hardware emulation, while faster, still requires lengthy initialization processes and is hindered by the need for speed adapters and complex I/O protocols.

Innovation Solution

The implementation of testbench restoration based on capture and replay techniques, where messages and state information are recorded during an emulation operation, allowing the emulator and testbench to be restored to a checkpoint, thereby bypassing the lengthy initialization process and speeding up verification and debugging.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware emulation is used to speed up verification, then verification speed is improved, but initialization time remains lengthy

Engineering Contradiction:
Improveverification speedVSAvoidinitialization time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The system performs preliminary actions by capturing messages and state information during the initialization phase, then stores them for later replay. This allows the initialization process to be executed once and reused multiple times, eliminating repeated initialization overhead while maintaining hardware emulation speed benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates copies of the initialization state and message sequences, storing them in a database or file system. These copies can be rapidly loaded and replayed without re-executing the full initialization process, thus reducing initialization time while preserving the speed advantages of hardware emulation.

Inventive Principle:
Principle #26Copying

2Adaptability or versatility

If software testbench is used for verification, then flexibility is improved, but execution speed deteriorates

Engineering Contradiction:
Improveverification flexibilityVSAvoidexecution speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The system merges the advantages of both software testbenches and hardware emulation by capturing testbench messages during software execution, then replaying them on hardware emulators. This combination preserves the flexibility of software testbench creation while achieving the speed benefits of hardware emulation during actual verification execution.

Inventive Principle:
Principle #5Merging (Combining)

3Reliability

If full initialization process is repeated for each verification run, then reproducibility is improved, but verification productivity deteriorates

Engineering Contradiction:
Improveverification reproducibilityVSAvoidverification productivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system extracts the essential initialization state and message sequences from the full initialization process, storing them separately. During subsequent verification runs, only the extracted essential elements are replayed, maintaining reproducibility while eliminating redundant initialization steps that harm productivity.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs the initialization process once in advance, capturing and storing the resulting state and messages. This preliminary action ensures reproducibility can be achieved by replaying the captured data without re-executing the full initialization, thereby improving verification productivity across multiple runs.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10664637B2Testbench restoration based on capture and replay
Publication Date: 2020.05.26 SIEMENS INDUSTRY SOFTWARE INC
  • US10664637B2 patent drawing
  • US10664637B2 patent drawing
  • US10664637B2 patent drawing

AI summary

Messages transmitted from an emulator to a testbench of a part of the testbench are recorded from a starting point of an emulation operation to a checkpoint of the emulation operation. State information of the emulator at the checkpoint is captured and stored. The emulator is then configured to a state corresponding to the checkpoint based on the stored state information, and the testbench or the part of the testbench is restored to the checkpoint by running the testbench or the part of the testbench based on the recorded messages.