Code Generator Translates Technical Computing Code for Real-Time FPGA Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
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
Data Source
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.


