Clear Filters
Clear Filters

Generate C code for FPGA

4 views (last 30 days)
ran shalit
ran shalit on 21 Jun 2015
Commented: ran shalit on 22 Jun 2015
Is it possible to generate C code for FPGA ? ( Atmel Arria V ) I only familiar with generaing c code for ARM, and generating HDL code for FPGA, but not "generate C code for FPGA". Is it possible ? Is there any tutorial on this subject ?
Thank you, Ran

Accepted Answer

Wang Chen
Wang Chen on 22 Jun 2015
Hi Ran,
The recommended workflow is to use HDL Coder to generate HDL Code and IP core for Altera SoC FPGA fabric, and use Embedded Coder to generate C code to program the ARM processor on the same chip. Please see following pages for examples and videos:
Thanks, Wang

More Answers (1)

Walter Roberson
Walter Roberson on 21 Jun 2015
Using Simulink, Simulink Coder, MATLAB Coder, and (recommended) Fixed Point Designer, you can generate C code for a generic target. That will not generally be as optimized as if VHDL were generated.
Walter Roberson
Walter Roberson on 22 Jun 2015
After a bunch of further reading I see that the Arria is a Soc (System on a Chip) that combines an ARM processor with a FPGA. The software to use for the process is their Embedded Design Suite (EDS), which offers access to a couple of different tool chains. Two of the tool chains offer to compile down to "bare metal". A quick scan suggests that one of the two compilers (at least) is open source (free), but that using the debugging tools for the bare metal effectively requires that the advanced version of the EDS be licensed.
Both the ARM core and the FPGA appear to be programmed using C, and you can find a description of the processes in the EDS User Guide, from the beginning of chapter 4 to the point in that chapter where it starts talking about developing Linux applications.
The Mathworks produce Embedded Coder has a lot of flexibility, and I would think it fairly likely that it could generate C code that would be accepted by the tools described above. You might not even need Embedded Coder, just Simulink Coder; I am not familiar enough with the limits of Simulink Coder to say.
Note: I have no experience with any of these tools. I have been scanning the Coder documentation for a while and it looks like it could be done, but if there is a subtle limitation I would not know it.
ran shalit
ran shalit on 22 Jun 2015
Thank you Walter!

Sign in to comment.


Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!