繁体   English   中英

具有浮点数的FPGA可综合Verilog代码

[英]FPGA synthesizable verilog code with floating point numbers

我正在尝试在FPGA上实现线性编程问题。 我使用实数类型生成浮点数。 该程序编译良好,但是当我为Xilinx Spartan-3E FPGA板进行合成时,显示错误,verilog不支持real。 似乎我们不能将real用于可合成代码。 因此,有关如何消除此错误的任何建议。

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

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

Xilinx的某些后续部分具有专用的DSP资源,可以执行浮点运算。 但是,Spartan-3E没有。 它最接近的是专用乘法器(MULT18X18)。

最好的选择是设计一种算法,该算法可与您现有的硬件一起使用,如Philippe建议的那样。

同样重要的是要注意,您必须手动实例化这些组件,因为合成器不够聪明,无法自行利用这些资源。

Verilog支持实数变量。 但是没有一个FPGA支持综合。 您可以按照以下选项进行操作。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM