碎碎思 · 2022年03月08日

优秀的 Verilog/FPGA开源项目介绍(十九)- 浮点运算器(FPU)

介绍

浮点运算器(英文:floating point unit,简称FPU)是计算机系统的一部分,它是专门用来进行浮点数运算的(CPU中也叫ALU)。

现在很多高端处理器都有自己的FPU,用来做一些特殊的运算,虽然早期的单片机是没有FPU的,但是经过十几年的发展,现在的单片机都有属于自己的FPU,虽然其功能不是特别强大,但是最够其单芯片应用环境下的运算使用。

目前简单的FPU的运算有加减乘除和开方。复杂些还可以计算超越函数,例如指数函数或者三角函数,尽管对大多数现在的处理器,这些功能都由软件的函数库完成。

接下来介绍一些FPU项目。


https://github.com/dawsonjon/fpu


https://opencores.org/projects/fpu100

image.png

这是GitHub上排名比较靠前的FPU开源项目,下面是他的介绍:

Verilog 中可合成的 IEEE 754 浮点库。每个算术模块接受两个 32 位数据流 a 和 b,并输出一个数据流 z。

码流接口在下面手册中有描述:


https://github.com/dawsonjon/fpu

提供的运算:

  • 提供除法器、乘法器和加法器
  • 提供 float_to_int 和 int_to_float
  • 支持非正规数
  • 区域优化
  • 超过 100,000,000 个测试向量(每个函数)


https://opencores.org/project...

这是OpenCores上的开源项目:

描述

这是一个单精度浮点单元。它完全符合 IEEE 754 标准。它目前可以执行加/减、乘/除 操作,以及整数到浮点数和浮点数到整数的转换。它支持四种舍入模式:舍入到最近的偶数、舍入到零、舍入到+INF和舍入到-INF。

现在还有一个单独的 FP 比较单元。它位于 fpu/fcmp 目录中。

兼容性

FPU 100% 符合 IEEE 754。已经跑了超过 1400 万测试向量,使用 John R. Hauser 的 SoftFloat 库生成,可在以下网址找到:http ://www.jhauser.us/arithmetic/SoftFloat.html 。

性能

  • 单周期执行
  • 4 阶段流水线


https://github.com/danshanley/FPU

这也是符合IEEE 754的FPU项目,相关的测试脚本也很完善。


https://github.com/pulp-platform/fpu

image.png

这是专门为pulp-platform(基于RISC-V的SoC平台)制作的FPU,是经过流片验证的。

关于pulp-platform的介绍请查看《RISC-V项目介绍》及下方的官方网址:


https://pulp-platform.org//

image.png


https://github.com/cnrv/CNRV-FPU


https://github.com/jm2000/RISCV-FPU

这也是专门为RISC-V定制的FPU项目。


https://github.com/freecores/double_fpu

image.png

这是Xilinx器件实现的双精度FPU,使用了FPGA内部的DSP资源。


https://github.com/GSejas/Dise-o-ASIC-FPGA-FPU

这也是Xilinx器件实现的FPU,既可以在Xilinx FPGA上使用,也可以作为ASIC设计一部分。


https://github.com/SeanZarzycki/openSPARC-FPU

image.png

这个从标题就能看出来,这是专门为openSPARC这一CPU设计的FPU。
image.png

openSPARC的项目地址:https://www.oracle.com/servers/technologies/opensparc-overview.html

也是开源的CPU。

image.png


https://github.com/YutaPic/FPU
image.png

这也是在Xilinx FPGA上验证的FPU,下面是在KCU105开发板上运行的性能:

image.png

总结

今天只介绍了几个FPU的项目,在SoC盛行的时代,有助于集成到你的系统里,同时一些运算的Verilog代码也是值得参考的。运算和数字电路设计,这里推荐一个名为《Computer Arithmetic - Algorithms and Hardware Designs》的PDF,关于这些运算的理论知识都可以在这里学到。

《Computer Arithmetic - Algorithms and Hardware Designs - Parhami》 PDF的某度网盘:

链接:https://pan.baidu.com/s/11pp_2HVamRZHPh6JZlnKKQ?pwd=open 提取码:open

最后,还是感谢各个大佬开源的项目,让我们受益匪浅。后面有什么感兴趣方面的项目,大家可以在后台留言或者加微信留言,今天就到这,我是爆肝的碎碎思,期待下期文章与你相见。

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA技术干货请关注FPGA 的逻辑技术专栏。
推荐阅读
关注数
10607
内容数
562
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息