在大学时,我用一种类似C的语言编程FPGA。然而,我知道通常使用Verilog或VHDL编程FPGA。这是设计师的选择吗?如果是,有什么性能缺陷?
我希望尽可能使用类似C的语言来编写FPGA,而不是VHDL。
我在想是否应该买一款Xilinx Virtex-5,如果有区别的话?
在大学时,我用一种类似C的语言编程FPGA。然而,我知道通常使用Verilog或VHDL编程FPGA。这是设计师的选择吗?如果是,有什么性能缺陷?
我希望尽可能使用类似C的语言来编写FPGA,而不是VHDL。
我在想是否应该买一款Xilinx Virtex-5,如果有区别的话?
FPGA并不是处理器,C语言是为处理器设计的。
是的,有将C语言编译成FPGA的编译器。
它们是否是一个好主意?我会说不是。你最终会得到一个状态机,每行C代码对应一个状态。然后状态机通过状态执行算法。或者采用其他类型的图灵机来执行代码。
这不是熟练掌握FPGA设计的人通常解决问题的方式。这是一种缓慢而且可能需要大量逻辑门的方法。
与英语比起来更适合写小说的Fortran语言一样,VHDL和Verilog语言更适合描述逻辑电路,而不是C语言。
如果您想认真使用FPGA,请使用专为描述逻辑电路设计的语言。这可能是一个陡峭的学习曲线,但结果会更好,在我看来。
简而言之,答案是“是的,当然可以”。
这里有一份关于FPGA和基于FPGA系统的C编译器的优秀调查报告。
性能方面的缺陷和考虑取决于系统架构和通信带宽,而不在于使用C还是硬件设计语言(HDL)。在使用C与HDL时需要考虑的问题在于编程时间和软件维护问题,而不是性能问题。
我猜你使用的是Handel C。它是C语言的一个子集。据我所知,结果并不是很优化。 Verilog和VHDL允许进行更多的优化。我这样说是基于我几年前使用Handel C的经验。
你可能想要了解一下 C-to-hardware 技术,它可以让你编写 C 代码并将其编译/翻译成 VHDL 或 Verilog。这篇文章 列出了一些编译器。我自己没有使用过,所以对此没有任何经验。希望这能帮到你!
C-to-hardware environments列表由Carlito和David Pointer提供,非常详尽。其中许多环境都支持Xilinx Virtex-5,如果您正在使用主要供应商的任何最新FPGA系列,硬件选择不应该是问题。一些高级语言环境比其他环境更好地支持内置(或软核)嵌入式CPU。