[发明专利]一种双精度浮点开方运算的方法及系统有效
申请号: | 201711415770.2 | 申请日: | 2017-12-24 |
公开(公告)号: | CN108196822B | 公开(公告)日: | 2021-12-17 |
发明(设计)人: | 刘盛典;刘鹏;任婵婵;祝娇娇;陈静 | 申请(专利权)人: | 北京卫星信息工程研究所 |
主分类号: | G06F7/483 | 分类号: | G06F7/483 |
代理公司: | 北京善任知识产权代理有限公司 11650 | 代理人: | 王军;高杰 |
地址: | 100080*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 精度 浮点 开方 运算 方法 系统 | ||
1.一种双精度浮点开方运算的方法,其特征在于,包括如下步骤:
步骤1,将64位双精度浮点数分解为符号位、阶数及尾数,基于符号位判断待开方数的正负值,基于阶数判断待开方数的阶码奇偶性,根据阶码奇偶性将尾数进行移位,并将符号位与运算后的阶码存入RAM中;
步骤2,将待开方数的尾数部分输入定点开方模块,通过CORDIC算法将放大后的106位定点数进行开方运算,该方法在FPGA中通过移位运算处理校正系数K值,根据尾数大小计算辅助参数COMPLE,同时,在106位的定点数数运算中,其迭代运算中第i和3i+1次进行重复迭代,i为迭代运算的当前迭代次数;
步骤3,将尾数的算术平方根输出,根据IEEE-754标准,将特殊值隔离后,与RAM中的符号位与阶码进行组合,完成双精度浮点数开方运算;
在步骤2中,包括如下步骤:
步骤2-1:将包含1位隐藏位在内的53位尾数放大至106位,根据尾数数值大小计算出辅助参数COMPLE,
步骤2-2:将调整后的尾数进行迭代运算
x(n)≤data_inx±{y(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次迭代两次,x(n)为尾数为n位的尾数值在x分量上的迭代运算结果,y(n)为尾数为n位的尾数值在y分量上的迭代运算结果,data_inx为尾数为n-1位的尾数值在x分量上的迭代运算结果,data_iny为尾数为n-1位的尾数值在y分量上的迭代运算结果;
步骤2-3:将x(32)的运算结果同校正系数K值进行相乘,此时K值的精度以移位精确度为基准,移位精确度
δ=2*(DATA_WIDTH)+n
其中,DATA_WIDTH=53,n=32,即,移位最低精度为138位。
2.一种双精度浮点开方运算的系统,其特征在于,包括RAM缓存模块和尾数开方模块,
所述RAM缓存模块分解待开方双精度浮点数,判断符号位正负,基于IEEE-754标准,判断待开方数是否属于特殊值,判断阶数的奇偶性,并根据其对尾数进行处理,然后,将符号位、阶数缓存至Block RAM中,将尾数部分输出至尾数开方模块;
所述尾数开方模块用于完成52位尾数定点数的开平方运算,将包含1位隐藏位在内的53位尾数放大至106位,根据尾数数值大小计算出辅助参数COMPLE,
然后,将调整后的尾数进行迭代运算
x(n)≤data_inx±{y(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次迭代两次,x(n)为尾数为n位的尾数值在x分量上的迭代运算结果,y(n)为尾数为n位的尾数值在y分量上的迭代运算结果,data_inx为尾数为n-1位的尾数值在x分量上的迭代运算结果,data_iny为尾数为n-1位的尾数值在y分量上的迭代运算结果;
最后,将x(32)的运算结果同校正系数K值相乘,此时K值的精度以移位精确度为基准,移位精确度
δ=2*(DATA_WIDTH)+n
其中,DATA_WIDTH=53,n=32,即,移位最低精度为138位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京卫星信息工程研究所,未经北京卫星信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711415770.2/1.html,转载请声明来源钻瓜专利网。