本发明属于数字信号处理应用领域,涉及一种双精度浮点数的开方运算的算法及其实现方法。
背景技术:
现代数字信号处理中,加减乘除运算使用最为频繁。开平方运算虽然没有上述运算使用的那么广泛,但作为一种基本的数学运算,其在工程实践中仍然有较为重要的应用,例如三角学,二次方程求解,数值分析,概率统计,图像处理等领域,开平方计算有很多不同的算法,例如,牛顿迭代法、SRT-冗余算法、非冗余算法、CORDIC算法等。经过分析,本设计采用了更适合FPGA实现的坐标旋转数字计算(Coordinate Rotation Digital Computer,CORDIC)这种算法来求解平方根,重点分析了对校正系数K值的处理方式,对辅助参数COMPLE的选取方法,以及在迭代次数与FPGA资源、运算速率上的平衡,给出了用FPGA实现基于CORDIC算法的浮点数开平方计算的模型,并对流水线结构的算法与Xilinx公司Floating-Point核做了仿真综合性能的对比,综合报告表明采用的方法资源消耗略高于Xilinx IP核,但运算速率更高,而且同样可以达到非常高的计算精度。
任何浮点数开方运算方法,由于其运算属于非线性运算,定点数开方过程都是基于迭代方法计算出来的,常用的迭代方法包括牛顿迭代法、SRT-冗余算法、非冗余算法、CORDIC算法等。通常由于实现逻辑复杂、资源占用量大,SRT-冗余算法和非冗余算法在实际中不太适用,用得最多的是牛顿迭代法和CORDIC算法。
文献“单精度浮点数开方算法设计及FPGA实现”中采用了开方中值定理的算法来完成尾数部分的定点数开方运算,这种算法原理清晰、易于实现,但其迭代次数随着待开方定点数位宽增大呈指数上升,其最大实现位宽为16位,难以满足双精度浮点数的开方要求。文献“基于浮点数的CORDIC算法的研究与设计”则采用了CORDIC算法,设计内容也不仅包括开方运算,还包含其他三角函数及部分线性运算,但其设计是基于单精度浮点数,在上升至双精度时其运算速率、资源消耗则会明显上升。而文献“基于CORDIC算法求解平方根的研究与FPGA实现”则只说明了一种定点数开方的实现方法,其待开方数的定义域无法应用在双精度浮点数中。
技术实现要素:
本发明的目的是针对双精度浮点开方运算,研究设计一种基于CORDIC算法的高速率、低资源消耗的高精度处理方法,可以在保证双精度浮点数所能表示的数据精度的同时,完成浮点数的开平方运算。
本发明的技术方案为一种双精度浮点开方运算的方法,具体包括如下步骤:
步骤1,将64位双精度浮点数分解为符号位、阶数及尾数,基于符号位判断待开方数的正负值,基于阶数判断待开方数的阶码奇偶性,根据阶码奇偶性将尾数进行移位,并将符号位与运算后的阶码存入RAM中;
步骤2,将待开方数的尾数部分输入定点开方模块,通过CORDIC算法将放大后的106位定点数进行开方运算,该方法在FPGA中通过移位运算处理校正系数K值,根据尾数大小计算辅助参数COMPLE,同时,在106位的定点数数运算中,其部分迭代运算(i,3i+1次)时进行重复迭代;
步骤3,将尾数的算术平方根输出,根据IEEE-754标准,将特殊值隔离后,与RAM中的符号位与阶码进行组合,完成双精度浮点数开方运算。
作为本发明的一优选方案,在步骤2中,包括如下步骤:
步骤2-1:将包含1位隐藏位在内的53位尾数放大至106位,根据尾数数值大小计算出辅助参数COMPLE,
步骤2-2:将调整后的尾数进行迭代运算
x(n)≤data_inx±{x(n-1)[DATA_WIDTH+1],y(n-1)[DATA_WIDTH+1:1]}
y(n)≤data_iny±{x(n-1)[DATA_WIDTH+1],x(n-1)[DATA_WIDTH+1:1]}
其中,n=32,第4、13(i,3i+1)次迭代两次,
步骤2-3:将x(32)的运算结果同校正系数K值进行相乘,此时K值的精度以移位精确度为基准,移位精确度,
δ=2*(DATA_WIDTH)+n
其中,DATA_WIDTH=53,n=32,即,移位最低精度为138位。
另外,本发明还涉及一种双精度浮点开方运算的系统,其特征在于,包括RAM缓存模块和尾数开方模块,
所述RAM缓存模块分解待开方双精度浮点数,判断符号位正负,基于IEEE-754标准,判断待开方数是否属于特殊值,判断阶数的奇偶性,并根据其对尾数进行处理,然后,将符号位、阶数缓存至Block RAM中,将尾数部分输出至尾数开方模块;
所述尾数开方模块用于完成52位尾数定点数的开平方运算,将包含1位隐藏位在内的53位尾数放大至106位,根据尾数数值大小计算出辅助参数COMPLE,
然后,将调整后的尾数进行迭代运算
x(n)≤data_inx±{x(n-1)[DATA_WIDTH+1],y(n-1)[DATA_WIDTH+1:1]}
y(n)≤data_iny±{x(n-1)[DATA_WIDTH+1],x(n-1)[DATA_WIDTH+1:1]}
其中,n=32,第4、13(i,3i+1)次迭代两次,
最后,将x(32)的运算结果同校正系数K值相乘,此时K值的精度以移位精确度为基准,移位精确度,
δ=2*(DATA_WIDTH)+n
其中,DATA_WIDTH=53,n=32,即,移位最低精度为138位。
本发明的有益效果:本发明的浮点数开方运算实现方法,通过移位运算处理校正系数K值,可以解决由于矫正所引起的误差放大;本发明的根据尾数大小计算辅助参数COMPLE,可以减小由于输入数据定义域范围过大而所导致的误差;本发明通过符号、阶数、尾数分模块运算,使其在FPGA中实现了流水运算,大幅提高了运算效率。本发明方法适用于三角学,二次方程求解,数值分析,概率统计,图像处理等领域,具有较强的实用性。
附图说明
图1为本发明的双精度浮点数开方运算流程图;
图2为本发明的尾数开方模块数据处理流程图;
图3为本发明的RAM缓存模块数据处理流程图;
图4为本发明的运算结果与Xilinx IP核运算结果的比较;
具体实施方式
下面结合附图和实施例对本发明做进一步的详细说明。
图1给出了本发明双精度浮点数开方运算流程图,首先,将64位双精度浮点数分解为符号位、阶数及尾数,符号位与阶数分别判断待开方数的正负值与阶码奇偶性,同时,根据阶码奇偶性将尾数进行移位,并将符号位与运算后的阶码存入RAM中;然后、将待开方数的尾数部分输入定点开方模块,通过CORDIC算法将放大后的106位定点数进行开方运算,该方法在FPGA中通过移位运算处理校正系数K值、根据尾数大小计算辅助参数COMPLE,同时,由于开方运算属于非线性运算,在106位的定点数数运算中,为保证数值的收敛性,其部分迭代运算(i,3i+1次)时需重复迭代,以保证其收敛性,另外、在不损失运算精度的前提下,其迭代次数选取合适的平衡点,以减少资源、提高运算速率;最后、将尾数的算术平方根输出,根据IEEE-754标准,将特殊值(Nan、±∞等)隔离后,与RAM中的符号位与阶码进行组合,完成双精度浮点数开方运算。
图2给出了本发明的尾数开方模块数据处理流程图。尾数开方模块是本发明的核心模块,其主要功能是完成52位尾数定点数的开平方运算。首先、将53位尾数(含1位隐藏位)放大至106位,并根据尾数数值大小计算出辅助参数COMPLE。
然后,将调整后的尾数进行迭代运算
x(n)≤data_inx±{x(n-1)[DATA_WIDTH+1],y(n-1)[DATA_WIDTH+1:1]}
y(n)≤data_iny±{x(n-1)[DATA_WIDTH+1],x(n-1)[DATA_WIDTH+1:1]}
这里n取32,其中,第4、13(i,3i+1)次迭代两次。
最后,将x(32)的运算结果同校正系数K值进行相乘,此时K值的精度以移位精确度为基准,移位精确度
δ=2*(DATA_WIDTH)+n
其中DATA_WIDTH=53,n取32,即移位最低精度为138位。
图3给出了本发明的RAM缓存模块数据处理流程图,其主要功能包括:分解待开方双精度浮点数,判断符号位正负、判断待开方数是否属于特殊值(IEEE-754标准),判断阶数的奇偶性、并根据其对尾数进行处理,
同时,将符号位、阶数等内容缓存至Block RAM中,将尾数部分输出至尾数开方模块。
图4给出了本发明的运算结果与Xilinx IP核运算结果的比较,图中result、result_manual0/1分别为Xilinx核和本发明的运算结果。由图4可以看出本发明的尾数运算精度达到252,几乎与Xilinx核的运算结果相同。可适用于绝大多数工程案例。
本领域技术人员可以理解,上述实施例只是为了更好地理解本发明,本发明的保护范围并不限于此。本领域技术人员根据本发明公开的这些技术启示可以做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合都包括在本发明的保护范围内。
深圳SEO优化公司广义网站优化是什么宜良本地网站优化策划徐州网站优化公司企业莱芜网站建设及优化无锡新区网站自然优化排名广州靠谱网站优化费用多少高碑店外贸网站优化淮安网站建设和优化企业网站如何seo优化网站的优化几个阶段卢松松重庆有名的网站优化濮阳seo网站优化推广江门网站快速优化惠州网站优化哪家有名华阴网站优化推广方案黄石产品网站优化公司南岸区网站优化深圳网站优化推官网网站优化定制济源靠谱网站优化推荐天河公司网站优化推广价格网站优化seo方案网站seo优化关键词从化网站seo优化哪家好北京网站seo优化定制伦敦网站优化方式网站关键词排名优化公司网站内容优化的好处武汉租车网站关键词优化SEO主要包括网站内容优化歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运