Resource Sharing Optimizer for FPGA Hardware Utilization
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
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
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.
Data Source
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.


