Automated Simulation Model Partitioning for Processor and FPGA

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for dividing simulation models between processors and programmable logic modules (FPGAs) require manual identification and shifting of model boundaries, which is time-consuming and inefficient, especially for complex real-time simulations.

Innovation Solution

A method that automatically divides a graphical simulation model into sub-models for execution on processors and FPGAs by identifying blocks based on sampling time and resource allocation, forming cyclic and non-cyclic groups, and allocating them to appropriate domains, generating program code for processors and configuration bitstreams for FPGAs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If manual identification and shifting of model boundaries is used to divide simulation models between processor and FPGA, then the partitioning can be customized according to specific requirements, but the process is time-consuming and inefficient

Engineering Contradiction:
Improvecustomized partitioningVSAvoiddesign time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system automatically divides the simulation model into processor and FPGA sub-models using algorithms that analyze sampling times and resource allocations, eliminating the need for manual boundary identification and shifting while still achieving optimized partitioning

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The automatic division method uses parameters such as sampling times and resource allocations to determine optimal partition boundaries, transforming the manual trial-and-error process into an automated parameter-driven optimization process

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If complex real-time simulations are executed on processor only, then the system is simpler to implement, but the latency requirements cannot be met

Engineering Contradiction:
Improvesystem implementationVSAvoidlatency requirement
Core Design Contradiction:
Device complexityVSReliability

Solution Approach 1:

The simulation model is segmented into two parts: sub-models with strict latency requirements are allocated to FPGA for high-speed execution, while other sub-models run on the processor, creating a heterogeneous computing system that meets both latency and complexity requirements

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system dynamically allocates different sub-models to appropriate execution platforms (processor or FPGA) based on their specific requirements, allowing the system to adaptively meet varying latency demands while maintaining manageable overall complexity

Inventive Principle:
Principle #15Dynamics

3Reliability

If heterogeneous arithmetic logic units (processor and FPGA) are used for complex real-time simulations, then the latency requirements can be met, but the system complexity increases

Engineering Contradiction:
Improvelatency requirementVSAvoidsystem complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The automatic model division system provides a universal framework that handles both processor and FPGA execution, managing the complexity of heterogeneous computing through automated algorithms that work across different execution platforms without requiring separate manual configuration processes

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS12265771B2Method for dividing simulation models up between a processor and an FPGA
Publication Date: 2025.04.01 DSPACE SE & CO KG
  • US12265771B2 patent drawing
  • US12265771B2 patent drawing
  • US12265771B2 patent drawing

AI summary

A method for dividing a graphical simulation model up into a first sub-model and a second sub-model includes: identifying at least one first block as belonging to the first sub-model and identifying at least one second block as belonging to the second sub-model based on a sampling time and/or a resource allocation; searching for cyclic groups of blocks, wherein a cyclic group whose blocks all have the same sampling time is deemed to be atomic; identifying non-cyclic groups of blocks; allocating individual blocks from the cyclic groups of blocks and the non-cyclic group of blocks to either the first sub-model or the second sub-model, wherein all blocks of an atomic cyclic group are allocated to the same sub-model; generating program code for the processor from the first sub-model; and generating a configuration bitstream for the programmable logic module from the second sub-model.