Felix

技术源于积累,成功始于执着!

FPGA定点小数计算(Verilog版)第四篇——定点小数转换为浮点小数

0
阅读(137) 评论(1)

用FPGA实现定点运算,相对于浮点运算来说,开销要小很多(时间上和空间上的)。但是在某些特定的场合,如多机协同处理等,要求FPGA的输入数据(或者是输出数据)为浮点形式的数据,这是就需要我们来做一个浮点小数与定点小数之间的转换了。

本文为本次定点小数相关博文连载的第四篇,后面的写作计划分别为:第五篇——浮点小数转换为定点小数;第六篇——平方根运算(查表法);第七篇——平方根运算(牛顿迭代法,使用John Carmack方法)。


和前面一样的套路,开始贴图模式:

首先是fixed2float.v:

image.png

image.png

然后是Testbench:

image.png

image.png

image.png

image.png

使用Syplify Pro综合获得的RTL视图:(太长了,贴了也看不清楚,所以不贴了!)

使用Diamond综合得到的:

Design Summary
   Number of registers:     71 out of 83994 (0%)
      PFU registers:           40 out of 83640 (0%)
      PIO registers:           31 out of   354 (9%)
   Number of SLICEs:        62 out of 41820 (0%)
      SLICEs as Logic/ROM:     62 out of 41820 (0%)
      SLICEs as RAM:            0 out of 31365 (0%)
      SLICEs as Carry:          0 out of 41820 (0%)
   Number of LUT4s:         92 out of 83640 (0%)
      Number used as logic LUTs:         92
      Number used as distributed RAM:     0
      Number used as ripple logic:        0
      Number used as shift registers:     0

下面是ActiveHDL的脚本文件:

image.png

功能仿真的波形图如下:

image.png


  1. 代码,有代码工具的,比图片显示效果好。