Floating-Point Function Replacement Construct for Fixed-Point Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Technical computing environments (TCEs) often struggle to generate fixed-point program code from floating-point functions, as they lack the capability to directly convert these functions, necessitating the creation of a replacement construct to facilitate the conversion process.

Innovation Solution

A user device can generate a replacement construct based on a floating-point function, using parameters such as architecture, interpolation methods, and error thresholds, to enable the conversion of the floating-point function into fixed-point program code, allowing for the generation of fixed-point program code that can be executed on hardware description languages (HDL) or other platforms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If floating-point functions are directly converted to fixed-point program code, then conversion simplicity is improved, but conversion capability is worsened because TCEs lack the capability to directly convert floating-point functions to fixed-point code

Engineering Contradiction:
Improveconversion simplicityVSAvoidconversion capability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent introduces a replacement construct as an intermediary element between the floating-point function and the fixed-point program code. The replacement construct serves as a mediator that the TCE can recognize and convert, enabling the conversion process without requiring direct floating-point to fixed-point conversion capability. This resolves the contradiction by providing an intermediate representation that bridges the capability gap.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the conversion process into multiple stages: (1) identifying the floating-point function, (2) generating a replacement construct that approximates the function, (3) replacing the original function with the construct, and (4) converting the modified code to fixed-point. This segmentation allows the TCE to handle each stage with available capabilities rather than requiring direct end-to-end conversion capability.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If replacement constructs are generated with high precision, then conversion accuracy is improved, but device complexity is worsened due to the complexity of generating and managing replacement constructs

Engineering Contradiction:
Improveconversion accuracyVSAvoidconstruct generation complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent applies partial action by generating replacement constructs that provide sufficient precision for the specific application requirements rather than maximizing precision universally. The system determines an appropriate error threshold based on application needs, generating constructs that meet the minimum required accuracy without unnecessary complexity. This resolves the contradiction by providing just enough precision rather than excessive precision.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent changes key parameters of the replacement construct generation process, including error threshold, interpolation method, and architecture type. By adjusting these parameters based on application requirements, the system can balance precision and complexity. For example, a higher error threshold reduces construct complexity while maintaining sufficient accuracy for less demanding applications.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If automatic replacement is implemented, then productivity is improved, but ease of operation is worsened due to the complexity of configuring replacement parameters

Engineering Contradiction:
Improveconversion efficiencyVSAvoidparameter configuration ease
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service by enabling the TCE to automatically generate and configure replacement constructs without requiring manual intervention. The system autonomously determines appropriate parameters such as error thresholds and interpolation methods based on the function characteristics and application requirements. This resolves the contradiction by automating the complex configuration tasks, maintaining high productivity while reducing the operational burden on users.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent incorporates feedback mechanisms where the TCE evaluates the performance and accuracy of generated replacement constructs, then adjusts parameters accordingly. The system uses feedback from function analysis, error assessment, and conversion results to automatically refine replacement construct parameters, eliminating the need for manual configuration while maintaining high accuracy and efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10168990B1Automatic replacement of a floating-point function to facilitate fixed-point program code generation
Publication Date: 2019.01.01 MATHWORKS INC
  • US10168990B1 patent drawing
  • US10168990B1 patent drawing
  • US10168990B1 patent drawing

AI summary

A device may receive a floating-point function. The floating-point function may be a function described in a programming language that uses floating-point representation. The device may determine that fixed-point program code, associated with the floating-point function, is to be generated. The device may determine that the floating-point function is to be replaced with a replacement construct before the fixed-point program code is generated. The replacement construct may be described in the programming language and may be capable of conversion from the floating-point representation to a fixed-point representation. The device may determine parameters associated with generating the replacement construct. The parameters may be determined based on an evaluation of the floating-point function. The device may generate the replacement construct based on the parameters. The device may replace the floating-point function with the replacement construct. The device may generate the fixed-point program code based on the replacement construct.