我正在为Xilinx FPGA开发一个VHDL项目,并且发现自己处在一条十字路口。
我需要例如添加两个信号(C = A + B),并发现Xilinx具有可以生成可以完成工作的组件的工具。
但这也可以用标准VHDL实现:C< = A + B
如果我使用标准VHDL,代码应该是可移植的,但这会降低吞吐量吗?
我的意思是,特殊组件是否在FPGA等中使用DSP功能,这使得它们更快,或者合成器通常能够处理这个吗?
答案 0 :(得分:5)
任何时候你都可以推断某些事情。
性能很少受到影响,尤其是在加法器和乘法器等简单事物的情况下。甚至RAM块也很容易被推断用于许多目的 - 如果我需要一个非常特定的供应商块行为,我只倾向于实例化供应商组件。
如果您为适当宽度(或更小)的加法器和乘法器编写VHDL代码,并使用与块内可用内容匹配的流水线,则可以很好地使用DSP模块。如果您想要更高级并使用(例如)Xilinx的DSP模块的操作码输入,那么您将必须实例化一个块。