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

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

3天内不再提示

FPGA定点小数的常规格式、相对于浮点小数的优势与劣势

SwM2_ChinaAET 来源:未知 作者:李倩 2018-03-27 08:54 次阅读

下面我们来简单地聊一聊定点小数的常规格式、相对于浮点小数的优势与劣势,以及如何使用Lattice ECP3/ECP5的sysDSP乘法器来实现基本的定点小数运算(加法和乘法)。并会在后续的文章中介绍定点小数的除法、平方根、平方根倒数和CORDIC算法的基本理论和HDL的实现等。

1.定点小数的常规格式

常规的定点小数格式如下图:

其中,有符号定点小数的值可以表示为:

无符号定点小数的值可以表示为:

定点数的位宽w和小数部分的位宽wf可以看做是定点数的两个要素。其中,w决定了定点数的动态范围,wf决定了定点数的精度。需要注意的是,在进行定点数运算的时候,需要注意数值溢出的问题(包括向上溢出和向下溢出)。所谓向上溢出是指运算结果超出了定点数整数部分所能表示的范围,向下溢出表示运算结果超出了定点数小数部分所能表示的范围。显然,一旦溢出将会造成计算精度的丢失,甚至是计算结果的错误。因此,合理地选择w和wf至关重要,w和wf的值过大会浪费资源,过小又会造成精度丢失。

2.定点数与浮点数的比较

与浮点数相比,定点数具有如下的一些优势:

(1)更少的资源

通常在FPGA中进行浮点运算时,会消耗更多的LUT、寄存器和乘法器。定点数由于不需要存储小数点的位置,所以定点数的运算消耗的资源基本上和同样位宽的整数运算相当,远远低于浮点运算的开销。

(2)更高的性能

浮点运算在消耗更多资源的同时,也会给MAP和PAR带来压力,从而导致整个设计的Fmax降低。在同样规模的运算量下,采用定点数的设计则可以获得更高的Fmax。

与此同时,相对于浮点数,定点数也有很多的缺陷和不足:

(1)能够表示数值的动态范围较小

(2)数值溢出的问题

浮点数由于采用了统一的格式(IEEE-754),且动态范围很大,因此基本不存在数值溢出的问题。但是定点数则需要程序设计中合理地选取w和wf的值,并且没有统一的格式规范也为复杂程序的协同设计带来麻烦。

从应用的需求来看,很多场合下,采用定点数即可满足系统的性能需求,但是也有一些场合对精度的要求很高,如雷达成像,医学成像高精度数据采集与分析等则需要采用浮点数进行运算。

3.ECP3/ECP5 中的sysDSP乘法器

Lattice的ECP3/ECP5系列FPGA内部集成了多个sysDSP架构的乘法器模块,基于sysDSP,用户可以便捷地设计出低功耗高性能的数字信号处理应用。相比于用LUT实现的乘法器,基于sysDSP的乘法器具有显著的性能优势。此外,Lattice还提供了多种基于sysDSP的IP,如FFT、FIR和CIC等。

ECP5中sysDSP的Slice结构图如下图所示:

4.定点小数的加法与乘法

定点小数的加法与乘法运算基本上和普通整数的加法与乘法一致,但是需要注意运算结果的w和wf的与原值的w和wf之间的对应关系。

下面来举一个简单的例子:两个32位的有符号定点小数相乘,其中w=32,wf=23。即

此时,

我们可以直接使用Clarity来生成整除乘法器的Module,如下图所示。其中符号位可以提取出来进行异或操作,剩余的31位进行乘法运算。

如果需将运算结果也转换为和输入相同的格式,则可以进行如下的操作:

上面的例子,是将有符号数转换为无符号数,再进行运算的(即采用原码直接运算的)。实际上,我们还可以直接将MULT的Module中的Data Type配置为Signed,此时操作数将以补码的形式进行运算。

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

    关注

    1590

    文章

    21136

    浏览量

    591879
  • 乘法器
    +关注

    关注

    8

    文章

    188

    浏览量

    36539

原文标题:【精选博文】FPGA定点小数计算(一)

文章出处:【微信号:ChinaAET,微信公众号:电子技术应用ChinaAET】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    浮点处理器相对于定点处理器有何不同

    对程序做出改动。浮点处理器相对于定点处理器有如下好处: 编程更简单 性能更优,比如除法,开方,FFT和IIR滤波等算法运算效率更高。 程序鲁棒性更强。 一、IEEE754格式
    的头像 发表于 03-07 08:57 1w次阅读
    <b class='flag-5'>浮点</b>处理器<b class='flag-5'>相对于</b><b class='flag-5'>定点</b>处理器有何不同

    Q格式的表示方式以及相应的运算

    Q格式是二进制的定点格式相对于浮点数,Q格式指定了相应的
    的头像 发表于 09-23 15:20 3310次阅读

    第7章 DSP定点数和浮点

    。7.1.2 浮点数 在计算机系统的发展过程中,曾经提出过多种方法表达实数。典型的比如相对于浮点数的定点数(Fixed Point Number)。在这种表达方式中,
    发表于 09-22 13:02

    基于牛顿迭代法的FPGA定点小数计算

    倒数算法的HDL实现,只需要进行一次到两次迭代便可获得相对精确的结果。在一些实时图像处理场合中,对算法的运算速度和Latency要求较高,因此可以采用定点小数适当地降低精度以获得更高的性能。
    发表于 07-18 07:33

    IEEE 754标准浮点格式可分为哪几种

    IEEE 754标准浮点格式可分为符号位s,指数位e以及尾数位f三部分。其中真实的指数E相对于实际的指数有一个偏移量,所以E的值应该为e-Bias,Bias即为指数偏移量。这样做的好处是便于使用无
    发表于 07-15 09:12

    定点小数的表示方法

    定点小数的表示方法   定点小数,是指小数点准确固定在数据某个位置上的小数,从实用角度看,都把
    发表于 10-13 17:12 7842次阅读

    定点小数的编码方法

    定点小数的编码方法  用定点小数引出数值的三种编码(原码、补码和反码)方法是最方便的。   (1) 原码表示法,是用机器数的最高一位代表符号,以下各位
    发表于 10-13 17:19 2986次阅读
    <b class='flag-5'>定点</b><b class='flag-5'>小数</b>的编码方法

    IEEE754浮点格式

    在计算机中,需要对小数进行计算,因此需要相应的电路支持。支持小数计算的电路有两种:定点部件和浮点部件。定点部件与整数部件没有本质区别,只是要
    发表于 11-17 11:09 1.5w次阅读

    一文了解FPGA浮点小数定点小数的换算及应用

    定点小数运算 有些FPGA中是不能直接对浮点数进行操作的,只能采用定点数进行数值运算。 所谓定点
    的头像 发表于 06-28 15:49 6232次阅读

    LM4F定点格式浮点格式的对比和浮点运算的应用详细中文资料

    定点数指小数点在数中的位置是固定不变的,通常有定点整数和定点小数。在对小数点位置作出选择之后,运
    发表于 05-09 11:40 11次下载
    LM4F<b class='flag-5'>定点</b><b class='flag-5'>格式</b>于<b class='flag-5'>浮点</b><b class='flag-5'>格式</b>的对比和<b class='flag-5'>浮点</b>运算的应用详细中文资料

    FPGA定点小数常规格式相对于浮点小数优势劣势和计算的概述

    所谓定点小数,就是小数点固定地隐含在某一位置上的数据。由于小数点的位置是固定的,所以就没有必要储存它(如果储存了小数点的位置,那就是
    的头像 发表于 06-12 19:34 8825次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>定点</b><b class='flag-5'>小数</b>的<b class='flag-5'>常规格式</b>、<b class='flag-5'>相对于</b><b class='flag-5'>浮点</b><b class='flag-5'>小数</b>的<b class='flag-5'>优势</b>与<b class='flag-5'>劣势</b>和计算的概述

    FOC之定点小数运算

    许多MCU 芯片只支持整数运算,如果要在这些芯片上进行小数运算,定点运算应该是最佳选择了;此外即使芯片支持浮点数,定点小数运算也是最佳的速度
    的头像 发表于 07-11 15:10 5803次阅读
    FOC之<b class='flag-5'>定点</b><b class='flag-5'>小数</b>运算

    FPGA浮点数转化为定点数方法

    FPGA常规运算时不能进行浮点运算,只能进行定点整型运算,在处理数据的小数乘加运算和除法运算时FPGA
    的头像 发表于 10-13 16:23 3728次阅读

    浮点定点运算以及数据定标和精度问题

    计算机体系结构中浮点定点数据的表示 1、定点数: 定点数指小数点在数中的位置是固定不变的,通常有定点
    的头像 发表于 12-06 10:00 2565次阅读

    python小数数字对象Decimal

    python的小数数字对象,类似于浮点数,只不过小数数字有固定的位数和小数点。 python小数数字是有固定精度的
    的头像 发表于 03-10 10:04 484次阅读