下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数字信号处理中浮点运算的fpga实现
浮点运算是计算机操作的重要方法。与固定计算相比,它具有广阔的计算范围、有效的精度和高成本。在各种工程计算和科学计算中有着广泛应用。目前浮点运算大多采用DSP芯片实现,具有算法简单,精度高的优点。但同时由于浮点运算结构复杂,采用DSP实现会增加系统负担,降低系统速度。在某些对速度要求较高的情况,必须采用专门的浮点运算处理器。EDA/FPGA技术不断发展,其高速、应用灵活、低成本的优点使其广泛应用数字信号处理领域。在FPGA技术应用的初期,其有限的器件资源难以应付浮点运算巨大的硬件开销;其时钟频率也不能满足工程应用的速度要求。近年来,超大规模集成电路的工艺水平不断提高,体系结构上也进行了较大的改进。在降低成本的同时,也使得器件在容量、速度、资源上有了较大的提高。使得采用FPGA来实现浮点运算成为具有高速、低成本、开发周期短等优点的理想选择。1浮点数的生成浮点运算可分为两类:非规格化和规格化浮点运算。非规格化浮点运算,不要求操作数是规格化数,对运算结果也不要求规格化处理。而规格化浮点运算只能对规格化的浮点数进行操作,并且要求对运算结果加以规格化处理。由于规格化浮点数具有惟一的表示形式,而且在±6.985×10-10~±8.5815×109计算机中尾数能获得最大的有效数字(同为十六位浮点数时),所以在一般的计算机中一般选用规格化浮点运算。常用的浮点格式为IEEE754标准。IEEE754标准有:单精度浮点数、双精度浮点数和扩展双精度浮点数。单精度为32位,双精度为64位,扩展双精度为80位以上。在通常的数字信号处理应用中,单精度浮点数已经足够用了,本文以它为例来设计。单精度的浮点数的表示如图所示:其中s为符号位,s为1时表示负数,s为0时表示正数;e为阶数,取值范围为,0和255表示特殊值;f为尾数,由23位构成。规格化的浮点数尾数要求由它表示的浮点数v的值如下式所示。32位浮点数可以表示的范围为在某些情况下可能不需要32位的精度,那么可以用24位或者16位来表示浮点数,如16位浮点数表示如图2所示。16位浮点数可以表示的范围为±6.985×10-10~±8.5815×109。2浮点运算的方法2.1对阶时的操作要求浮点加法运算的实现包括以下几个步骤符号判断、:对阶、尾数加减操作、规格化、舍入操作、溢出判断。具体实现时通常把规格化、舍入操作、溢出判断作为一个步骤实现。浮点数的格式显然可以分为两部分,即符号和数据的绝对值。若符号相同则符号不便绝对值相加;若符号不同则须比较两绝对值的大小然后两绝对值作差运算。符号不同时首先判断和的符号,显然若两浮点数的阶不同时和的符号当与阶数大的操作数相同;若阶数不同则继续比较对阶操作首先比较两浮点数的阶数大小。比较阶码后,为进行下一步操作当在保持相同数值的前提下改变小阶码数的表示方式。即阶码加一的同时使尾数右移一位,直到两数阶码相同为止。对阶后只需对尾数进行相应的加减运算。若最高位产生进位则需将阶码加一后尾数右移一位。由于规格的浮点数必须满足还要对运算结果进行规格化,即判断尾数的最高位。若为零则将尾数左移一位、阶码加一,直到阶码最高为为1。由于对阶时小阶码数尾数右移,造成和的尾数位长大于23位。若采用截断处理则相对误差较大,故采用舍入操作以减小误差。另外,当和较大,超过表示范围;或当运算结果过小,超过浮点数的分辨率时会造成运算错误。故须增加电路判断运算结果是否正确。另外,对阶时阶码小的数据尾数右移,而规格化时还有可能左移,这可能造成有效数据位的丢失。故为保证计算精度,须增加加法器的位宽。由于规格数首位为1,同阶数据产生进位无需左移数据;而不同阶数据的和亦可保证高位为1,故同号加法操作时不会产生这种情况,只有异号加法操作存在这种情况。显然同阶数无需右移操作,当阶差为二或更大时对阶后尾数差将大于四分之一,即次高位为1,规格化时只需左移一位数据。而阶差为1时也只可能右溢出一位数据。故在保证浮点数精度不变的情况只须将加法器增加一位。对于减法运算,只需将被减数符号取反然后进行加法运算即可。QUARTUSII下进行仿真其结果如图3(数据采用十进制)2.2药法或全法或废法浮点乘法实现相对简单,只需将两符号异或、阶码做和、尾数做积。即:e3=e1+e2-127,f3=f1×f2,。然后进行规格化。由于有条件1/2£f1,f2<1成立,使得满足1/4£f3<1即可知f3的最高位和次高位中至少一位为1。从而使规格化操作流程大大简化。最后对运算结果进行舍入操作,同时仍需检查运算结果是否有数据溢出的问题。QUARTUSII下进行仿真其结果如图4(数据采用十进制)浮点除法运算方法与乘法类似,即:e3=e1-e2+127,f3=f1/f2,其中尾数操作与乘法差异较大。二进制除法的流程与人工计算除法的流程类似,包括移位、比较、做差。由于规格尾数的约束条件可知1/2<f3<2,即可判断无需左移操作。若最高位为1时需将尾数右移一位后阶码加一。然后进行规格化和舍入操作,与乘法时一样,只需判断尾数前两位即可。其中AS为加/减法选择,0为加法1为减法;DATA为符号位,E为阶码,F为尾数。以上数据验证了运算在同阶、不同阶、同号和异号以及数据过大溢出强制清零时运算的正确性。其中4325376(十进制)=10000100···0、5242880(十进制)=101000···0、4784128(十进制)=100100100···0、7340032(十进制)=111000···0;4521984(十进制)=100010100···0、5505024(十进制)=10101000···0、6070272=101110010100···0。图四中数据验证了同号、异号及数据过大强制清零等几种情况下乘法操作的正确性。其中5242880(十进制)=101000···0、4456448(十进制)=1000100···0、5570560(十进制)=101010100···0;6553600(十进制)=1100100···0、4718592(十进制)=1001000···0、7372800(十进制)=1110000100···0。3规格浮点数操作浮点运算过程中为保证结果精度及判断数据是否有溢出应使阶码加法器高位增加一位;而尾数由于移位操作亦应增加位长,以上根据规格数的尾数特点在保证运算精度的前提下使硬件消耗最小。编译采用ALTERA公司高性价比的Cyclone系列器件EP1C240C8。其中加/减法器占用系统LE资源15
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人抵押贷款合同季度范本
- 临街店铺购买合同范本
- 二次供水设备采购合同
- 专业服装管理软件经销合同书
- 上海市股权转让合同标准范本
- 二手房销售代理合同协议
- 中外合作种植战略合作合同
- 云计算服务提供商数据保密合同
- 返聘人员协议书
- IT行业员工培训劳动合同范本
- 小红书种草营销师(初级)认证考试真题试题库(含答案)
- 癫痫病人的护理(课件)
- 企业资产管理培训
- 2024年WPS计算机二级考试题库350题(含答案)
- 2024年4月27日浙江省事业单位招聘《职业能力倾向测验》试题
- 2024年6月浙江省高考地理试卷真题(含答案逐题解析)
- 医院培训课件:《如何撰写护理科研标书》
- 风车的原理小班课件
- 河南省郑州市2023-2024学年高二上学期期末考试 数学 含答案
- 2024年山东省济南市中考英语试题卷(含答案)
- 2024年北师大版八年级上册全册数学单元测试题含答案
评论
0/150
提交评论