zoukankan      html  css  js  c++  java
  • FPGA设计中的float


    在通常的设计中,不建议使用浮点数计算,因为浮点数计算会消耗FPGA大量的逻辑单元。但很多情况下,又需要使用浮点数进行计算提高精度。

    所以需要有合适的方法计算浮点运算。

    正常情况下FPGA只能以整形数据进行计算,必须将浮点数转换为二进制整形数据进行输入。那么小数点就在你的心中。

    比如,当输入123乘以241给FPGA的时候,FPGA计算的就是123*241的整形乘法,得到的结果也是整形输出,但是你也可以说我做的是1.23*2.41,数据里面小数点究竟在哪里自己的程序知道就行了。比如可以统一约定,所有的数据总线低4bit是小数部分,写在spec里面即可,FPGA是不知道的,算完的数据解释权在你手上。但是不可能给FPGA输入1.23乘以2.41,这个没法做。

    理论上讲,所有的硬件只能算整数,小数点在哪里,那一部分是指数,那一部分是底数,那是一种额外约定。运算器得到整形的结果之后,软件根据小数点的约定,将其理解为小数。

    就好比你有一个只能算整数的计算器。怎么算小数呢?自己大脑里面转一下,先算整数出来,再加小数点就行了。硬件的设计自然也是这样,人类已经设计出来了整形乘法器,还有必要再重新设计浮点乘法器吗?不过是在整形乘法器前后加了一点数据处理而已。

    接下来介绍一款标准:

    可以根据IEEE 754 floating point single precision 标准进行32bit单精度浮点数输入。

    需要注意的是Exponent(指数)若全为0,则Mantissa(位数)要进行denormal操作。

    根据相关的标准或者约定,可自行设计FPU。


    版权所有权归卿萃科技 杭州FPGA事业部,转载请注明出处

    作者:杭州卿萃科技ALIFPGA

    原文地址:杭州卿萃科技FPGA极客空间 微信公众号


    扫描二维码关注杭州卿萃科技FPGA极客空间


  • 相关阅读:
    python基础之函数
    MySQL 安装 5.0
    MySQL安装 MySQL5.7.10免安装版配置,mysql5.7.10免安装版
    安装MYSql Windows7下MySQL5.5.20免安装版的配置
    网站集合
    andorid 开放工具集合
    Win7 x64 Eclipse无法识别手机 / adb interface有黄色感叹号,无法识别
    字符集 ISO-8859-1(3)
    字符集 ISO-8859-1(2)
    字符集 ISO-8859-1(1)
  • 原文地址:https://www.cnblogs.com/alifpga/p/9181421.html
Copyright © 2011-2022 走看看