Parallel Circuit Simulation Retiming Pipeline Regions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing parallel logic simulation techniques face inefficiencies, particularly with synchronization costs becoming high beyond a few processors, and uneven work distribution, leading to performance bottlenecks in multi-core computing systems.

Innovation Solution

The approach involves retiming a simulation model by partitioning the circuit design into pipeline regions, computing path lengths, and modifying them to achieve a target timing goal, which balances pipeline levels and reduces synchronization costs through selective evaluation and aggregation of primitives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If parallel event driven simulation is used to improve simulation performance, then simulation throughput is improved, but synchronization cost increases significantly beyond four or eight processors

Engineering Contradiction:
Improvesimulation throughputVSAvoidsynchronization cost
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The circuit design is partitioned into multiple pipeline regions with combinational regions separated by register levels, creating independent simulation units that can be processed in parallel without requiring frequent synchronization between all processors

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Path lengths of combinational regions are pre-computed and used to determine achievable timing goals and target retiming goals before simulation begins, allowing workload to be pre-balanced across pipeline levels to minimize synchronization requirements during actual simulation

Inventive Principle:
Principle #10Preliminary action

2Productivity

If parallel event driven simulation is used to increase processing capacity, then more components can be simulated concurrently, but work distribution becomes uneven among processors

Engineering Contradiction:
Improveconcurrent processing capacityVSAvoidwork distribution uniformity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

Different pipeline levels are assigned different numbers of processors based on their specific workload requirements, with more processors allocated to pipeline levels containing more combinational regions or longer path lengths, achieving localized optimization of resource allocation

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The system dynamically adjusts the number of processors assigned to each pipeline level based on computed path lengths and timing goals, changing the parameter of processor allocation to match the computational demands of each pipeline region

Inventive Principle:
Principle #35Parameter changes

3Ease of operation

If parallel oblivious simulation is used to simplify synchronization, then a single synchronization per level is sufficient, but redundant computation increases and efficiency decreases

Engineering Contradiction:
Improvesynchronization simplicityVSAvoidsimulation efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

Instead of evaluating all components in a pipeline level (excessive action), the system evaluates only those components within combinational regions that have been identified as having value changes or being relevant to the current simulation state, reducing redundant computation while maintaining synchronization simplicity

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9558306B2Retiming a design for efficient parallel simulation
Publication Date: 2017.01.31 SYNOPSYS INC
  • US9558306B2 patent drawing
  • US9558306B2 patent drawing
  • US9558306B2 patent drawing

AI summary

An approach for simulating a circuit design partitions the circuit design into pipeline regions that include one or more pipeline levels. A path length is computed for each combinational region within a pipeline region to compute an achievable timing goal for each pipeline region. A target retiming goal is determined for the set of pipeline regions based on the computed achievable timing goals of the pipeline regions. A pipeline region is identified from the set of pipeline regions that does not satisfy the target timing goal. A measure of slack is computed for each pipeline level in the identified pipeline region. Using the computed slack, path lengths of combinational regions in the pipeline levels of the identified pipeline region are iteratively retimed. The resulting circuit design is simulated using the retimed path lengths if the retimed critical path of the pipeline region satisfies the target timing goal.