FPGA Partial Reconfiguration Using Precompiled Bitstream Libraries

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current FPGA programming techniques are time-consuming and require specialized knowledge, leading to long development times due to the need for complex compilation processes and vendor-specific tools, making it inefficient to make changes or deploy updates to FPGA programs.

Innovation Solution

Implementing partial reconfiguration techniques that allow for pre-compilation of bitstreams for common functional blocks, enabling users to select and deploy only the necessary bitstreams for specific configurations, reducing compilation time and storage requirements by using a distributed system with a client-server architecture for efficient bitstream management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If traditional FPGA programming techniques are used, then comprehensive configuration is achieved, but compilation time becomes excessively long

Engineering Contradiction:
Improvecompilation timeVSAvoidprogramming efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent segments the FPGA configuration into multiple independent bitstream files, each corresponding to a specific functional region or partition. Instead of compiling and loading a single comprehensive bitstream, the system compiles and loads only the necessary segments, dramatically reducing compilation time and enabling incremental updates without reconfiguring the entire device.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary compilation of bitstream segments during the design phase, storing them for rapid deployment. Commonly used functional blocks are pre-compiled and stored in a library, allowing users to quickly assemble FPGA configurations by selecting from pre-compiled segments rather than compiling everything from scratch each time.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If vendor-specific compilation tools are used, then accurate FPGA configuration is achieved, but user learning curve and installation complexity increase

Engineering Contradiction:
Improveease of useVSAvoidtool complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent creates a universal programming interface that can generate bitstream segments compatible with multiple FPGA vendors and devices. The system abstracts vendor-specific details, allowing users to program different FPGA types through a common toolset, eliminating the need to learn and install separate vendor-specific compilation tools for each device.

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

3Quantity of substance

If complete bitstreams are compiled for all possible configurations, then all functional requirements are met, but storage requirements become excessive

Engineering Contradiction:
Improvestorage spaceVSAvoidconfiguration flexibility
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent divides the complete configuration space into reusable segment libraries. Instead of storing complete bitstreams for all possible configurations, the system stores individual functional segments that can be combined to create various configurations. This dramatically reduces storage requirements while maintaining full configuration flexibility through modular assembly.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses parameterized segment definitions where functional blocks are defined with configurable parameters rather than hard-coded configurations. By changing parameters, the same segment can be adapted to different functional requirements, reducing the need to store multiple versions of similar configurations and thereby reducing storage requirements.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10642630B1Process of programming field programmable gate arrays using partial reconfiguration
Publication Date: 2020.05.05 LIQUID INSTR PTY LTD
  • US10642630B1 patent drawing
  • US10642630B1 patent drawing
  • US10642630B1 patent drawing

AI summary

In an embodiment, a method is disclosed providing an improvement in speed and efficiency of programming field programmable gate array (FPGA) digital electronic integrated circuits (ICs) or other ICs that support partial reconfiguration, a particular FPGA having a plurality of reconfigurable partitions and a plurality of primitive variations configurable in each of the reconfigurable partitions, the method comprising: before writing configuration bitstreams to the particular FPGA, compiling and storing, using digital storage, a plurality of primitive bitstreams for a plurality of different primitive functions that can be written to and implemented on the particular FPGA; receiving input in a graphical user interface to select and connect graphical blocks representing functional logic of an algorithm to implement on the particular FPGA, the graphical blocks relating to reconfigurable logic; automatically determining a subset of the primitive functions comprising particular primitive functions that correspond to the graphical blocks; obtaining, from the digital storage, a subset of the primitive bitstreams that corresponds to the subset of the primitive functions; using one or more partial reconfiguration operations, writing the subset of the primitive bitstreams to the particular FPGA; wherein the method is performed by one or more computing devices.