基于FPGA的浮点数据格式和高效的多输入浮点乘法器结构设计_第1页
基于FPGA的浮点数据格式和高效的多输入浮点乘法器结构设计_第2页
基于FPGA的浮点数据格式和高效的多输入浮点乘法器结构设计_第3页
基于FPGA的浮点数据格式和高效的多输入浮点乘法器结构设计_第4页
基于FPGA的浮点数据格式和高效的多输入浮点乘法器结构设计_第5页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于FPGA的浮点数据格式和高效的多输入浮点乘法器结构设计1引言近年来,随着FPGA的发展.以及相应EDA开发软件的成熟,在FPGA上进行数字信号处理的方法正显示出巨大的优势,特别是随着高密度、高速度FPGA器件的出现,加之FPGA高度灵活的在线可编程性。使得FPGA在需要高速数字信号处理的领域得到了越来越广泛的应用。由于浮点数具备大动态范围以及可充分使用有效位的特点,浮点乘法运算已经成为种最基本的运算之一。其运算的速度及所占的资源直接决定了系统的处理能力。但浮点乘法运算相对于定点运算来说,运算步骤及实现电路均比较复杂。因此,如何快速地以最少逻辑资源及时钟节拍完成一次浮点运算一直是学者们长期研究的热点和难点。最基本的双输入浮点乘法器设计经过多年的发展,已经取得了大量的成果【l-2},而针对多输入浮点乘法器的专门研究却相对较少。传统的多输入浮点乘法器是采用双输入乘法器通过级联结构实现。如以四输入为例,为了尽量提高运算速度,则需要三个双输入浮点乘法器来实现,如图1所示。这种结构的乘法器不仅成倍增加了计算所需流水线级数。而且也成倍增加了所需的逻辑资源。在高速数字信号处理的情况下显然不合适。本文正是为了解决这一问题.针对FPGA及多输入浮点乘法器的结构特点。提出了一种更适合于在FPGA上快速实现的浮点数据格式和高效的多输入浮点乘法器结构。下面首先介绍浮点乘法器的基本运算步骤.而后分析单精度浮点数据格式实现浮点乘法器的难点.再引出适合于FPGA实现的自定义26位浮点数据格式及高效的多输入浮点乘法器结构,最后给出在Xilinx公司Vi~ex系列芯片上的测试数据。2浮点乘法器的基本算法浮点数据的格式有多种.不同格式的浮点数据在处理的流程及算法上基本相同。其中单精度(IEEESingle_PrecisionStd.754)浮点数据格式如图2所示。在IEEESingle_Precision标准中,数值是32-bit。其中bit-31是符号位,当其为0时表示正数,1时为负数;Bit30-23为范围为0~255的正整数;Bit22~0表示数值的有效位。浮点数所表示的具体值可用下面的通式表示。其中当e=0,f=0时v=0,尾数(1.f)中的‘1’为隐藏位。一般来说.浮点乘法器需要以下的操作步骤:(1)指数相加:完成两个操作数的指数相加运算;(2)尾数调整:将尾数f调整为1.f的补码格式;(3)尾数相乘:完成两个操作数的尾数相乘运算;(4)规格化:根据尾数运算结果调整指数位。并对尾数进行舍入截位操作。规格化输出结果。第(1)步需一级8位加法操作;第(2)步中。将23位的无符号数根据符号位调整为24位的补码.需一级取反操作和一级24位的加法操作;第(3)步即完成一级24位的乘法操作;第(4)步的规格化操作也需一级8位加法操作。在这4个步骤中,第(1)步和第(2)、(3)步可并行执行。这样要完成整个浮点乘法运算需依次进行一级24位加法、一级24位乘法(同时进行8位加法操作)及一级8位的加法操作。在FPGA的实现中。运算速度主要受限于乘法操作的速度.而目前的FPGA芯片中内部集成的乘法器均为18x18位的固定结构。则1个24x24的乘法器需要由4个18x18乘法器组成(相当于两级18x18乘法操作)。显然。采用IEEESingle_PrecisionStd.754浮点数据格式的浮点乘法器难以达到很高的运算速度,且所需的资源较多,运算时延至少需3个时钟节拍。这样,在FPGA上实现四输入的浮点乘法功能最少也需要5~6级的流水线运算。且需12个18x18乘法器资源。3自定义26位浮点数据格式由上文分析可知.浮点乘法器的运算速度主要由FPGA内部集成的硬件乘法器决定。如果将24位的尾数修改为18位的尾数。则可在尽量保证运算精度的前提下最大限度地提高浮点乘法运算的速度,同时也可大量减少所需的乘法器资源。IEEE标准中尾数设置的隐藏位主要是考虑节约寄存器资源.而FPGA内部具有丰富的寄存器资源。如直接将尾数表示成18位的补码格式,则可减少第(2)步的运算。也即可以减少一级流水线操作。同时。在FPGA进行数字信号处理的系统中。一般处理的数据都是处理AD采样送出的信号,其分辨率一般取12-16位,取18位有效位数即可满足绝大多数的情况。由此我们定义一种新的浮点数据格式,如图3所示。浮点数所表示的具体值可用下面的通式表示:其中m为18位定点补码数。小数点定在最高位与次高位之间,这样m表示范围为一1≤m《1的小数:e仍为范围为0-255的正整数。且规定当m=0或e=-32时值为0。这种浮点数据格式与单精度格式的区别在于:自定义格式将原来的符号位与尾数位合成18位的补码格式定点小数,表示精度有所下降.却可大大节约乘法器资源(由4个18x18乘法器减少到1个),并极大提高运算速度(由二级18x18乘法运算减少到一级运算)。4高效的多输入浮点乘法器结构由以上分析可知,传统的级联形式实现多输入浮点乘法运算在结构上有大量的无谓重复,从而不可避免地导致逻辑资源的浪费及计算时延的增加。采用自定义的26位浮点数据格式来实现浮点乘法器只需2级流水线操作.则级联结构的四输入浮点乘法器至少需4级流水线操作。仔细观察多输入浮点乘法器的特点就不难发现。只要在结构上将二输入浮点乘法器的各个步骤推广到多输入形式。就可以大量节约资源和时延。其结构框图如图4所示。5测试分析我们在Xilinx公司的Virtex芯片上对本文提出的高效结构的实现代码进行了测试与仿真,测试数据如表1所示。测试采用的开发环境为ISE6.3-01i。编程语言为VHDL,综合工具为SynplifyProv7.6.仿真工具为Modelsim5.8b。从表1中可以清楚地看到.采用新的浮点数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论