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

描述

介绍

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

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

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

接下来介绍一些FPU项目。

https://github.com/dawsonjon/fpu

https://opencores.org/projects/fpu100

浮点运算器

这是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/projects/fpu

这是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

浮点运算器

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

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

https://pulp-platform.org//

浮点运算器

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

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

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

https://github.com/freecores/double_fpu

浮点运算器

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

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

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

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

浮点运算器

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

浮点运算器

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

也是开源的CPU。

浮点运算器

https://github.com/YutaPic/FPU

浮点运算器

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

浮点运算器

总结

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



审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分