0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

OpenFPGA 来源:OpenFPGA 2024-04-26 11:27 次阅读

介绍

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

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

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

接下来介绍一些FPU项目。

https://github.com/dawsonjon/fpu

https://opencores.org/projects/fpu100

d2042826-0373-11ef-a297-92fbcf53809c.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/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

d232c9ce-0373-11ef-a297-92fbcf53809c.png

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

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

https://pulp-platform.org//

d25a7d2a-0373-11ef-a297-92fbcf53809c.png

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

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

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

https://github.com/freecores/double_fpu

d28d0cea-0373-11ef-a297-92fbcf53809c.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

d2abbb2c-0373-11ef-a297-92fbcf53809c.png

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

d2c42504-0373-11ef-a297-92fbcf53809c.png

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

也是开源的CPU。

d2fbc8a6-0373-11ef-a297-92fbcf53809c.png

https://github.com/YutaPic/FPU

d31a1d10-0373-11ef-a297-92fbcf53809c.png

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

d3302434-0373-11ef-a297-92fbcf53809c.png

总结

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



审核编辑:刘清

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

    关注

    68

    文章

    19404

    浏览量

    231084
  • 单片机
    +关注

    关注

    6043

    文章

    44617

    浏览量

    638252
  • 乘法器
    +关注

    关注

    8

    文章

    206

    浏览量

    37172
  • FPU
    FPU
    +关注

    关注

    0

    文章

    42

    浏览量

    21372
  • 浮点运算器
    +关注

    关注

    0

    文章

    4

    浏览量

    5773

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

文章出处:【微信号:Open_FPGA,微信公众号:OpenFPGA】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA的实时互相关运算器

    基于FPGA的实时互相关运算器对无源雷达的直通信号和反射信号进行互相关运算可以检测目标是否存在。本文介绍了基于FPGA流水线操作的阵列
    发表于 09-19 09:25

    FPGA verilog浮点运算

    求用verilog实现浮点运算的资料,谢谢
    发表于 12-17 21:15

    求一种在FPGA上实现单精度浮点加法运算的方法

    介绍一种在FPGA上实现的单精度浮点加法运算器运算器算法的实现考虑了FPGA器件本身的特点,算
    发表于 04-29 06:27

    FPU settings浮点运算单元设置

    void SystemInit(void){/* FPU settings 浮点运算单元设置,此处一般不执行
    发表于 08-23 06:20

    运算器,运算器的作用和原理是什么?

    运算器,运算器的作用和原理是什么? 运算器:arithmetic unit,计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括
    发表于 03-24 17:01 3.2w次阅读

    浮点运算浮点运算器

    浮点运算浮点运算器 浮点加减法的运算步骤 设两个浮点
    发表于 04-15 13:42 6899次阅读

    基于FPGA高精度浮点运算器的FFT设计与仿真

    提出一种基2FFT的FPGA方法,完成了基于FPGA高精度浮点运算器的FFT的设计。利用VHDL语言描述了蝶形运算过程及地址产生单元,其仿真
    发表于 12-23 14:24 46次下载
    基于<b class='flag-5'>FPGA</b>高精度<b class='flag-5'>浮点</b><b class='flag-5'>运算器</b>的FFT设计与仿真

    利用FPGA技术能更方便灵活设计出浮点运算器

    FPGA(现场可编程门阵列)技术的理论研究和实际应用正越来越受到人们的重视。FPGA 技术常常使一些原来比较难解决的技术瓶颈得以轻松实现,从而使产品的开发周期大为缩短,性能价格比大幅提高。运算器
    发表于 07-14 09:50 3513次阅读
    利用<b class='flag-5'>FPGA</b>技术能更方便灵活设计出<b class='flag-5'>浮点</b><b class='flag-5'>运算器</b>

    优秀Verilog/FPGA开源项目介绍(一)

    优秀Verilog/FPGA开源项目介绍(一)-PCIe通信 今天开始会陆续
    的头像 发表于 10-11 15:31 9405次阅读
    <b class='flag-5'>优秀</b>的 <b class='flag-5'>Verilog</b>/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b><b class='flag-5'>介绍</b>(一)

    优秀Verilog/FPGA开源项目之 USB通信

    优秀Verilog/FPGA开源项目介绍(五)- USB通信 USB是我们生活中非常非常常见
    的头像 发表于 11-02 14:54 8917次阅读
    <b class='flag-5'>优秀</b>的 <b class='flag-5'>Verilog</b>/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>之 USB通信

    Verilog/FPGA开源项目介绍

    优秀Verilog/FPGA开源项目介绍(七)- CAN0、CAN总线
    的头像 发表于 11-17 11:19 3129次阅读

    浮点运算单元FPU能给电机控制带来什么?

    编者按:在计算领域,例如三角函数以及时域频域变换通常会用到浮点运算。当CPU执行一个需要浮点运算的程序时,有三种方式可以执行:软件仿真
    发表于 12-04 13:36 19次下载
    <b class='flag-5'>浮点</b><b class='flag-5'>运算</b>单元<b class='flag-5'>FPU</b>能给电机控制带来什么?

    stm32F407 打开 FPU(浮点运算处理)

    没有开浮点处理时开了处理时开FPU主要分两步1.编译打开浮点数产生指令2.在初始化函数中打
    发表于 12-28 19:12 16次下载
    stm32F407 打开 <b class='flag-5'>FPU</b>(<b class='flag-5'>浮点</b><b class='flag-5'>运算</b>处理<b class='flag-5'>器</b>)

    优秀的IC/FPGA开源项目:伪红外图像处理

    优秀的IC/FPGA开源项目》是新开的系列,旨在介绍单一项目,会比《
    的头像 发表于 06-09 09:42 2296次阅读
    <b class='flag-5'>优秀</b>的IC/<b class='flag-5'>FPGA</b><b class='flag-5'>开源</b><b class='flag-5'>项目</b>:伪红外图像处理

    如何提高单片机的运算效率之FPU

    ;(__FPU_USED==1)在keil的魔术棒中,如上图所示,直接选中单精度浮点运算器,keil就会自动把所需的宏给定义出来。如何验证是否开启成功?.z.~/|*~1?验证方
    的头像 发表于 08-30 11:47 770次阅读
    如何提高单片机的<b class='flag-5'>运算</b>效率之<b class='flag-5'>FPU</b>