Code Generator Translates Technical Computing Code for Real-Time FPGA Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The manual process of translating high-level, non-real-time algorithms into a format compatible with real-time instruments for vibration cancellation systems is tedious, time-consuming, and prone to errors, often requiring collaboration between engineers and software developers, which disincentivizes developers from writing algorithms for real-time execution.

Innovation Solution

A system and method that allows for the development and execution of algorithms in a high-level technical computing language, enabling the generation of executable code for real-time processing on specialized devices like FPGAs, without the need for manual hand-coding, by converting code from a non-real-time format to a real-time format using a code generator.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If algorithms are written in high-level non-real-time languages for ease of development, then developer productivity and ease of operation improve, but the ability to execute in real-time environments deteriorates

Engineering Contradiction:
Improveease of algorithm developmentVSAvoidreal-time execution capability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

A code generation system acts as an intermediary between high-level algorithmic descriptions and real-time hardware implementations. The system translates algorithms written in high-level languages (like MATLAB or C++) into optimized C code suitable for real-time execution on instruments or embedded systems, eliminating the need for developers to manually write low-level real-time code while preserving real-time execution capability

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The manual mechanical process of hand-coding algorithms in low-level languages is replaced by an automated code generation system. The system automatically transforms high-level algorithmic specifications into executable real-time code, substituting the manual translation process with an automated software tool that handles the complexity of real-time optimization

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Adaptability or versatility

If manual translation from high-level to low-level real-time code is performed, then real-time execution capability is achieved, but development time and complexity increase

Engineering Contradiction:
Improvereal-time execution capabilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The code generation system performs preliminary automatic translation of algorithms into real-time executable code before deployment. By pre-generating optimized C code from high-level specifications, the system eliminates the time-consuming manual translation process that would otherwise be required during the deployment phase, allowing developers to focus on algorithm design rather than implementation details

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If algorithms are manually coded in real-time formats, then execution accuracy for real-time processing is achieved, but the complexity and error-proneness of the process worsens

Engineering Contradiction:
Improveprocessing accuracyVSAvoidcoding complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The code generation system serves as an intermediary that automatically transforms high-level algorithmic specifications into optimized C code with precise control over real-time execution. This automated translation ensures processing accuracy by systematically optimizing the code for real-time performance while eliminating the manual coding errors that occur when developers attempt to write low-level real-time code directly

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8782618B1Instrument based processing
Publication Date: 2014.07.15 MATHWORKS INC
  • US8782618B1 patent drawing
  • US8782618B1 patent drawing
  • US8782618B1 patent drawing

AI summary

A computer-readable media may store instructions for receiving text-based technical computing code from a first technical computing environment running on a remote computer, where the first technical computing environment includes a set of functions. The media may store instructions for processing data captured using an instrument, where the data is processed using the received technical computing code in a second technical computing environment that includes a subset of the functions, where the captured data processed in non-real-time, and where the processing produces a result. The media may store instructions for translating the technical computing code from a first format compatible with the second technical computing environment into a second format adapted for parallel execution by a field programmable gate array (FPGA), the translating performed by a code generator when the result is satisfactory. The media may store instructions for processing input data in real-time using the FPGA.