Generate C code for FPGA
显示 更早的评论
Hello,
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
采纳的回答
更多回答(1 个)
Walter Roberson
2015-6-21
1 个投票
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.
5 个评论
ran shalit
2015-6-21
Walter Roberson
2015-6-21
You would have to compile the C code for your target, and the compiler would need to be able to generate whatever can be used by the FPGA (such as HDL or VHDL)
The X32 is an experimental 32 bit soft core developed at our Embedded Software Lab. It propagates the idea that (for many embedded applications) processor design need not be a 9-figure project and that it can be done by anyone who knows how to write a VHDL byte code interpreter. We simply took lcc (a well-known ANSI C compiler) and wrote an interpreter for its intermediate byte code. No specific instruction set architectures, no backends, just a student's thesis job. To turn it into a truly reconfigurable microcontroller we added some I/O devices to show some principles involved. And it works! As all the software is free, we have a complete free embedded solution that runs on any FPGA that carries more than some 250k gates (which is about any FPGA nowadays). You are free to use the software outside of the course as long as you give proper credit to the authors and our lab. Note, however, that this free software is provided AS IS without any warranty whatsoever. Visit the X32 web site for more detailed information.
ran shalit
2015-6-21
编辑:Walter Roberson
2015-6-21
Walter Roberson
2015-6-22
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
2015-6-22
类别
在 帮助中心 和 File Exchange 中查找有关 Video Formats and Interfaces 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!