FPGA Netlist Build Automation via Component Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing FPGA development process is inefficient due to long build times, especially in rapid control prototyping environments, where frequent changes to the model result in lengthy waiting times, as the entire FPGA program is rebuilt from scratch during each modification.

Innovation Solution

The method enhances the hierarchical tool flow by introducing automated pre-building, versioning, modularization, floor planning, and an extended job queue to distribute build jobs across multiple processor cores or a build cloud, allowing for parallel processing and automatic triggering of builds based on component changes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire FPGA program is rebuilt from scratch during each modification, then the netlist is completely updated, but the build time becomes excessively long

Engineering Contradiction:
Improvenetlist completenessVSAvoidbuild time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The FPGA program is divided into multiple independent components, each capable of being built separately. When a component is modified, only that component needs to be rebuilt rather than the entire program, significantly reducing build time while ensuring the netlist remains complete and updated.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Components are pre-built and stored in a database before final assembly. This allows the system to leverage previously computed netlists and placement/routing results, avoiding redundant work during subsequent builds and reducing overall build time while maintaining completeness.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If frequent changes are made to the model, then the FPGA program adapts to new requirements, but the waiting time for build completion increases

Engineering Contradiction:
Improvemodel flexibilityVSAvoidwaiting time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

By segmenting the program into independent components, the system can quickly rebuild only the affected component when changes are made, rather than waiting for a complete rebuild. This maintains model flexibility while reducing waiting time for build completion.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The build process becomes dynamic and adaptive, automatically identifying which components need rebuilding based on changes detected in the model. This allows the system to respond quickly to frequent changes without unnecessary waiting time for complete rebuilds.

Inventive Principle:
Principle #15Dynamics

3Loss of time

If manual splitting and partitioning is performed, then the build time is reduced, but the complexity of the development process increases

Engineering Contradiction:
Improvebuild timeVSAvoidprocess complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system automatically performs component splitting, partitioning, and assignment to processor cores without requiring manual intervention. This maintains the time benefits of manual optimization while eliminating the added complexity that would result from implementing manual splitting procedures.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system dynamically adjusts partitioning parameters and resource allocation based on the current model structure and build requirements. This automated parameter optimization reduces build time without requiring users to manually configure complex partitioning strategies.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If parallel processing is implemented, then the build speed increases, but the system complexity increases

Engineering Contradiction:
Improvebuild speedVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The build process is segmented into independent component builds that can execute in parallel on multiple processor cores. This naturally enables parallel processing and increases build speed without requiring complex parallelization infrastructure, as the segmentation itself provides the basis for parallel execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system automatically manages parallel build processes, assigning components to available processor cores and coordinating dependencies without requiring manual parallelization configuration. This simplifies the system architecture compared to implementing custom parallel processing frameworks while still achieving high build speeds.

Inventive Principle:
Principle #25Self-service

Data Source

PatentEP2945083B1Method for the automatic creation of a network list of a FPGA program
Publication Date: 2021.04.07 DSPACE DIGITAL SIGNAL PROCESSING & CONTROL ENGINEERING GMBH
  • EP2945083B1 patent drawingFigure 1
  • EP2945083B1 patent drawingFigure 2
  • EP2945083B1 patent drawingFigure 3

AI summary

Method for creating a netlist of an FPGA program, wherein the model of the FPGA program consists of at least two components, each component being assigned a separate partition on the FPGA, a separate build being performed for each component, a composite build being created from the components, and the build jobs being started automatically after a trigger event, the trigger event being the saving of a component, the exit of a component from the design, or a time-controlled, automatic initiation of a build.