Resource Sharing Optimizer for FPGA Hardware Utilization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems for generating code from executable graphical models, such as Simulink models, often require significant hardware resources due to the duplication of functionally equivalent elements like multipliers, which leads to inefficient use of hardware resources like FPGAs and ASICs.

Innovation Solution

A resource sharing optimizer is employed to identify and replace multiple functionally equivalent elements with a single shared resource, inserting Multiplexer, Serializer, and Demultiplexer blocks to optimize the model, reducing hardware resource requirements by generating code for a single shared element instead of multiple instances.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple functionally equivalent elements are instantiated in the executable graphical model, then the model can process different data types with appropriate precision, but the hardware resource requirements increase significantly

Engineering Contradiction:
Improvedata type handling capabilityVSAvoidhardware resources
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent applies universality by creating a single shared resource that can handle multiple data types (float, double, fixed-point) through configuration rather than instantiation. The shared resource is configured with data type information that determines how it processes different data types, allowing one resource to perform the functions of multiple specialized resources. This is achieved by storing data type information in the executable graphical model and using this information to configure the shared resource appropriately for each operation.

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

2Quantity of substance

If a single shared resource is used to replace multiple functionally equivalent elements, then hardware resource requirements are reduced, but the complexity of managing different data types increases

Engineering Contradiction:
Improvehardware resourcesVSAvoiddata type management complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by determining data types during the code generation phase before the shared resource is instantiated in hardware. The system analyzes the executable graphical model, identifies functionally equivalent elements, determines their data types in advance, and generates appropriate code that configures the shared resource with the correct data type information. This preliminary determination of data types eliminates the need for complex runtime data type management in the hardware implementation.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If code is generated for multiple instances of functionally equivalent elements, then each element can operate independently, but the execution rate and hardware utilization efficiency decrease

Engineering Contradiction:
Improveindependent operation capabilityVSAvoidexecution rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies merging by combining multiple functionally equivalent elements into a single shared resource that is time-multiplexed to serve multiple functions. Instead of generating code for multiple independent instances that would consume separate hardware resources, the system generates code for one shared resource with control logic that directs it to perform different operations at different times. This time-multiplexing approach maintains functional independence through proper scheduling while achieving better hardware utilization and higher execution rates.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS10423733B1Systems and methods for sharing resources having different data types
Publication Date: 2019.09.24 MATHWORKS INC
  • US10423733B1 patent drawing
  • US10423733B1 patent drawing
  • US10423733B1 patent drawing

AI summary

A system and method generates optimized code for a source model. The system may include a resource sharing optimizer that evaluates the source model and replaces multiple model elements of the source model that are functionally equivalent with a single shared model element. The model elements replaced with the single shared model element may have different fixed point data types. The resource sharing optimizer may convert some of the fixed point data types to a common fixed point data type.