具有浮点数的FPGA可合成verilog代码

时间:2014-08-31 14:47:29

标签: verilog hdl

我试图在FPGA上实现线性编程问题。我使用真实数据类型来生成浮点数。该程序编译得很好,但是当我试图为我的Xilinx Spartan-3E FPGA板合成它时,它显示了verilog不支持real的错误。似乎我们不能将real用于可合成代码。 所以有关如何删除此错误的任何建议。

3 个答案:

答案 0 :(得分:0)

虽然您可以为芯片使用浮点数据类型(实数),但您需要为每个所需的操作实例化IP内核。请注意,浮点运算需要花费大量的逻辑和时间。

所以:通常人们在FPGA上进行计算时会切换到整数(或定点)算法。

答案 1 :(得分:0)

后来的一些Xilinx器件具有可以执行浮点运算的专用DSP资源。然而,Spartan-3E没有。它最接近的是专用乘法器(MULT18X18)。

正如Philippe所建议的,最好的办法是设计一种适用于您所用硬件的算法。

同样重要的是要注意,您必须手动实例化这些组件,因为合成器不够智能,无法单独使用这些资源。

答案 2 :(得分:0)

Verilog支持真实变量。但是没有一个FPGA会支持综合。您可以按照选项执行此操作。

  1. 将输入表示为32位二进制,输入应以IEEE-754格式给出。但是你必须在编码中进行内部操作。
  2. 使用基于core gen和arch的ip core构建您的设计。将具有基于浮点的操作的向导。但逻辑利用率会非常高。所以你必须选择更高端的设备。