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

下面我们来简单地聊一聊定点小数的常规格式、相对于浮点小数的优势与劣势,以及如何使用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,此时操作数将以补码的形式进行运算。

2021年首场DevRun智能基座昇腾鲲鹏高校行活动圆满结束
低电压差分信号传输(LVDS)在汽车电子中的应用
汽车电子设计的2020年写作小结
神级快充荣耀Magic:30分钟92%的充电速率堪称黑科技!
关于尼得科研发出新型电动助力转向系统电机电源组的通知
FPGA定点小数的常规格式、相对于浮点小数的优势与劣势
硬盘MP3优缺点
全球第一款 e-notepad EKING S700在华问世
互问亮相上海智能家居展 展示离线语音控制全方案
中国移动、高通和中兴达成合作伙伴,5G网络芯片或明年推出
黑科技的智能化妆镜,它将开启智能美妆新零售时代
什么是图神经网络 图神经网络能做什么
智慧黑板:智能识别和跟踪技术
领航全国,东风携手元戎启行打造国内最大自动驾驶车队
专业级显示,广泛应用!46寸OLED拼接屏满足您的各种需求
德国企业软件巨头SAP宣布裁员8000人
洲明与中国对外艺术展览有限公司正式建立战略合作关系
利用LabVIEW图形化开发平台实现医疗电子设备原型系统的构建
5G通信环境中干扰对策总结
系统级芯片(SoC)的技术演进与未来发展趋势