Testbench Partitioning for Parallel Hardware Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current simulation acceleration methods face bottlenecks due to sequential processing in simulators, limiting the performance gains from concurrent requests between hardware and simulation platforms, especially when behavioral code cannot be synthesized for hardware prototyping.

Innovation Solution

The system dynamically partitions a testbench into multiple independent components that can run concurrently, mapping these components to corresponding hardware transactors, allowing parallel execution on a hardware emulation system, thereby overcoming sequential processing bottlenecks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a single-threaded simulation system is used to execute testbench code, then the system complexity is low and ease of operation is maintained, but the productivity and speed are severely limited due to sequential processing

Engineering Contradiction:
Improvesimulation execution speedVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The testbench is divided into multiple independent partitioned testbenches, each capable of being executed separately. This segmentation allows the simulation workload to be distributed across multiple threads or processes, thereby increasing productivity while managing complexity through modular organization

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from single-threaded sequential execution to multi-threaded parallel execution by adding the dimension of concurrency. Multiple testbench partitions are executed simultaneously in different threads, fundamentally changing the execution model from sequential to parallel to improve simulation speed

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Speed

If behavioral code is executed on a simulation platform, then the code can be executed with full functionality, but the execution speed is slow compared to hardware execution

Engineering Contradiction:
Improveexecution speedVSAvoidsimulation acceleration performance
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The testbench code is segmented into synthesizable and non-synthesizable portions. The synthesizable portion is executed on the hardware emulation platform for high-speed parallel execution, while the non-synthesizable behavioral code runs on the simulation platform, optimizing overall execution speed while maintaining productivity

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

An interface mechanism is introduced to mediate between the hardware emulation platform and the simulation platform. This intermediary enables efficient data exchange and coordination between the two execution environments, allowing the system to leverage both hardware speed and simulation functionality

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If concurrent requests from hardware platform are processed sequentially in the simulator event queue, then the system remains simple to operate, but the productivity and throughput are significantly reduced

Engineering Contradiction:
ImprovethroughputVSAvoidsystem operation complexity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The event queue processing is segmented into multiple parallel processing streams. Instead of a single sequential processor handling all events, multiple threads or processes simultaneously process different portions of the event queue, thereby increasing throughput while maintaining operational simplicity through standardized processing interfaces

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The event queue processing transitions from a single-dimensional sequential model to a multi-dimensional parallel model. Multiple processing threads operate concurrently on different event streams, adding the dimension of parallelism to improve throughput while managing complexity through structured event routing and synchronization mechanisms

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS10719644B2Method and framework to dynamically split a testbench into concurrent simulatable multi-processes and attachment to parallel processes of an accelerated platform
Publication Date: 2020.07.21 SYNOPSYS INC
  • US10719644B2 patent drawing
  • US10719644B2 patent drawing
  • US10719644B2 patent drawing

AI summary

The independent claims of this patent signify a concise description of embodiments. Each component of a testbench configured to test a DUT is associated at compile time with a different hardware transactor. The testbench is partitioned at compile time into a plurality of independent partitioned testbenches, where each independent partitioned testbench comprises at least one component of the testbench. At run time, each of the plurality of partitioned testbenches is simulated in parallel. The simulating of a partitioned testbench includes execution of its at least one component on its at least one associated hardware transactor using the hardware emulation system. This Abstract is not intended to limit the scope of the claims.