Testbench Restoration via Capture Replay for Emulation
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Speed
If hardware emulation is used to speed up verification, then verification speed is improved, but initialization time remains lengthy
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.
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.
2Adaptability or versatility
If software testbench is used for verification, then flexibility is improved, but execution speed deteriorates
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.
3Reliability
If full initialization process is repeated for each verification run, then reproducibility is improved, but verification productivity deteriorates
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.
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.
Data Source
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.


