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

2022-04-14 10:09:03 浏览数 (1)

优秀的 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,关于这些运算的理论知识都可以在这里学到。

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

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

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

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

优秀的 Verilog/FPGA开源项目介绍(二)-RISC-V

优秀的 Verilog/FPGA开源项目介绍(三)- 大厂的项目

优秀的 Verilog/FPGA开源项目介绍(四)- Ethernet

优秀的 Verilog/FPGA开源项目介绍(五)- USB通信

优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信

优秀的 Verilog/FPGA开源项目介绍(八)- HDMI

I I2C = I3C:这个附加的“I”是什么?

介绍一些新手入门FPGA的优秀网站(新增2)

优秀的 Verilog/FPGA开源项目介绍(九)- DP(增改版)

优秀的 Verilog/FPGA开源项目介绍(十)- H.264和H.265

优秀的 Verilog/FPGA开源项目介绍(十一)- SPI/SPI FLASH/SD卡

优秀的 Verilog/FPGA开源项目介绍(十二)- 玩FPGA不乏味

优秀的 Verilog/FPGA开源项目介绍(十三)- I2C

优秀的 Verilog/FPGA开源项目介绍(十四)- 使用FPGA实现LeNet-5 深度神经网络模型

想用FPGA加速神经网络,这两个开源项目你必须要了解

优秀的 Verilog/FPGA开源项目介绍(十六)- 数字频率合成器DDS

优秀的 Verilog/FPGA开源项目介绍(十七)- AXI

FPGA未来硬件架构探讨-NoC

HDL设计周边工具,减少错误,助你起飞!

想学习高速ADC/DAC/SDR项目这个项目你不得不理解

Verilog常用可综合IP模块库

0 人点赞