fpga:选择c ++来编程fpga

har*_*rry 4 c c++ fpga

我一直听到电气工程师认为C用于fpga工作.

那么C++呢?使用C++有什么缺点吗?我认为C++比C更好地为硬件编程提供所需的并行性,不是吗?

此后我还要用什么来与硬件兼容的c ++?

Nil*_*nck 16

我很确定FPGA是用VHDL或Verilog编程的.

http://en.wikipedia.org/wiki/Vhdl

http://en.wikipedia.org/wiki/Verilog

我知道Altera还提供一些C到HDL的翻译器.我怀疑它们除了微小的设计之外什么都可用.


Sie*_*geX 8

到目前为止,编程FPGA的最简单方法是通过LabView的FPGA模块.但是,这也会将您与硬件和软件联系起来.这不是一个廉价的解决方案,但肯定是用硬件获得程序的最快方法,而不需要学习除LabVIEW之外的任何东西.


小智 6

您可以使用C或C++来编程FPGA,但它需要一些非常昂贵的Highlevel Synthesis软件.CatapultC是Mentor Graphics的一款产品,它允许您在不定时的C++中编写算法.然后它将该C++合成为RTL VHDL或Verilog.但CatapultC售价超过10万美元,所以绝对不适合业余爱好者.还有另一个名为ImpulseC的产品,它允许你编写C代码然后合成到RTL中,但我很确定它只处理C而不是C++.ImpulseC约为2000美元.

对于业余爱好者来说,最好不要使用VHDL或Verilog来描述您的设计,然后使用Xilinx或Altera的免费工具来合成代码并对FPGA进行编程.


sel*_*tze 5

编译CPU和编译FPGA之间存在很大差异."普通"编译器生成二进制程序代码.特殊的FPGA编译器生成"硬件".那里有编译器将一些类似C的代码转换为"硬件".但它并不完全是C.它可能是一个带有整数类型任意位长度的C导数,可能仅限于迭代和非递归函数调用.

我是C++的忠实粉丝,但即使我看到它的许多部分都不适合FPGA:虚函数,RTTI,异常.至少这是我的印象.我自己没有测试那些类似C的FPGA编译器,但是我的一个伙伴和他们一起工作,它应该是PITA.