CN107977587A - 一种平方根功能实现方法 - Google Patents
一种平方根功能实现方法 Download PDFInfo
- Publication number
- CN107977587A CN107977587A CN201711206106.7A CN201711206106A CN107977587A CN 107977587 A CN107977587 A CN 107977587A CN 201711206106 A CN201711206106 A CN 201711206106A CN 107977587 A CN107977587 A CN 107977587A
- Authority
- CN
- China
- Prior art keywords
- square root
- look
- index
- interpolation
- effective digital
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/16—Arrangements for performing computing operations, e.g. operational amplifiers for multiplication or division
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06G—ANALOGUE COMPUTERS
- G06G7/00—Devices in which the computing operation is performed by varying electric or magnetic quantities
- G06G7/12—Arrangements for performing computing operations, e.g. operational amplifiers
- G06G7/20—Arrangements for performing computing operations, e.g. operational amplifiers for evaluating powers, roots, polynomes, mean square values, standard deviation
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种平方根功能实现方法,包括以下步骤:1)当接收数据X后,对X进行判断,X为负数时,返回错误代码;2)对参数X进行归一化处理,计算有效数字及指数,得到X的有效数字X1和指数a,X=X1*2a,其中X1范围要求在[1/4,1)区间,a要求为偶数;3)X1的平方根计算使用查表与插值相结合的方法,通过查找预先存储在存储器模块中的平方根查找表,X1高N位用于计算平方根查找表索引查找表项中与相邻的值作为插值系数,低M位作为尾数,移位到[0,1)区间作插值变量进行插值计算,其中M+N为X1的总位宽。
Description
技术领域
本发明涉及信息处理和微电子领域的处理电路,具体地说,涉及一种平方根计算器的设计和实现方法。
背景技术
在信息处理中,经常会涉及到平方根或者平方根倒数运算,如图形处理中点对应圆型区域的参数计算。在使用可编程器件进行复杂的信息处理时,由于平方根计算器难以在可编程器件上实现,因此经常需要打断平行处理环节,将数据送回CPU处理后再进行后续处理,严重影响了处理效率。如果发明一种适合当今主流可编程器件实现的耗用逻辑资源少的平方根计算器,能够显著提高相关处理的效率。
本发明针对该问题,提出了一种通过查找表和插值相结合的平方根计算器方案,适合于当今主流的可编程器件实现。一个32位平方根计算器,使用少量硬件乘法器模块、片上存储器模块和逻辑资源,对于当前主流的FPGA来说,资源耗用不超过5%。
发明内容
本发明目的在于提供一种适合于当今主流可编程器件实现的平方根计算器方案,为使用可编程器件实现涉及平方根运算的信息处理提供支持。
一种平方根功能实现方法,包括以下步骤:
1)当接收数据X后,对X进行判断,X为负数时,返回错误代码;
2)对参数X进行归一化处理,计算有效数字及指数,得到X的有效数字X1和指数a,X=X1*2a,其中X1范围要求在[1/4,1)区间,a要求为偶数;
3)X1的平方根计算使用查表与插值相结合的方法,通过查找预先存储在存储器模块中的平方根查找表,X1高N位用于计算平方根查找表索引查找表项中与相邻的值作为插值系数,低M位作为尾数,移位到[0,1)区间作插值变量进行插值计算,其中M+N为X1的总位宽;
将有效数字X1拆分为高位数字b与低位数字x之和,即X1=b+x,其中b={X1高N位数字,M位0},x={N位0,X1低M位数字},设定求平方根函数可以采用插值算法对f(x)进行拟合,公式如下:
根据b的数据位宽选用平方根查找表,其中b在[0,2N]区间内,通过查找预先存储在存储器模块中的平方根查找表,令b对应平方根查找表中的序号,获得和的二进制定点数,通过公式1计算出有效数字的平方根公式1中乘法运算使用乘法器实现;
4)平方根的指数计算,平方根指数即为a/2,其中a为偶数,a/2为整数;
5)对有效数字的平方根进行指数恢复:a小于0时,对进行右移|a/2|位得到结果,a大于0时,对进行左移|a/2|位得到结果,其中|a/2|为a/2的绝对值。
以768表项为例,高11位用于计算查表索引,查找获取表项中与相邻的值作为插值算法的各项系数,然后将剩余低位移位到[0,1)区间作为插值变量,完成X1平方根的插值计算。有效数字平方根计算完成后进行平方根的指数计算,因为平方根指数即为a/2,通过移位计算可完成a/2计算。最后对有效数字的平方根进行指数恢复a/2后得到最终的平方根运算结果输出,完成X的平方根运算。
附图说明:
图1为本发明的流程示意图。
具体实施方式:
参阅图1,本发明的一种平方根功能实现方法,包括以下步骤:
1)当接收数据X后,对X进行判断,X为负数时,返回错误代码;
2)对参数X进行归一化处理,计算有效数字及指数,得到X的有效数字X1和指数a,X=X1*2a,其中X1范围要求在[1/4,1)区间,a要求为偶数;
3)X1的平方根计算使用查表与插值相结合的方法,通过查找预先存储在存储器模块中的平方根查找表,X1高N位用于计算平方根查找表索引查找表项中与相邻的值作为插值系数,低M位作为尾数,移位到[0,1)区间作插值变量进行插值计算,其中M+N为X1的总位宽;
将有效数字X1拆分为高位数字b与低位数字x之和,即X1=b+x,其中b={X1高N位数字,M位0},x={N位0,X1低M位数字},设定求平方根函数可以采用插值算法对f(x)进行拟合,公式如下:
根据b的数据位宽选用平方根查找表,其中b在[0,2N]区间内,通过查找预先存储在存储器模块中的平方根查找表,令b对应平方根查找表中的序号,获得和的二进制定点数,通过公式1计算出有效数字的平方根公式1中乘法运算使用乘法器实现;
4)平方根的指数计算,平方根指数即为a/2,其中a为偶数,a/2为整数;
5)对有效数字的平方根进行指数恢复:a小于0时,对进行右移|a/2|位得到结果,a大于0时,对进行左移|a/2|位得到结果,其中|a/2|为a/2的绝对值。
以768表项为例,高11位用于计算查表索引,查找获取表项中与相邻的值作为插值算法的各项系数,然后将剩余低位移位到[0,1)区间作为插值变量,完成X1平方根的插值计算。有效数字平方根计算完成后进行平方根的指数计算,因为平方根指数即为a/2,通过移位计算可完成a/2计算。最后对有效数字的平方根进行指数恢复a/2后得到最终的平方根运算结果输出,完成X的平方根运算。
Claims (1)
1.一种平方根功能实现方法,包括以下步骤:
1)当接收数据X后,对X进行判断,X为负数时,返回错误代码;
2)对参数X进行归一化处理,计算有效数字及指数,得到X的有效数字X1和指数a,X=X1*2a,其中X1范围要求在[1/4,1)区间,a要求为偶数;
3)X1的平方根计算使用查表与插值相结合的方法,通过查找预先存储在存储器模块中的平方根查找表,X1高N位用于计算平方根查找表索引查找表项中与相邻的值作为插值系数,低M位作为尾数,移位到[0,1)区间作插值变量进行插值计算,其中M+N为X1的总位宽;
将有效数字X1拆分为高位数字b与低位数字x之和,即X1=b+x,其中b={X1高N位数字,M位0},x={N位0,X1低M位数字},设定求平方根函数可以采用插值算法对f(x)进行拟合,公式如下:
根据b的数据位宽选用平方根查找表,其中b在[0,2N]区间内,通过查找预先存储在存储器模块中的平方根查找表,令b对应平方根查找表中的序号,获得和的二进制定点数,通过公式1计算出有效数字的平方根公式1中乘法运算使用乘法器实现;
4)平方根的指数计算,平方根指数即为a/2,其中a为偶数,a/2为整数;
5)对有效数字的平方根进行指数恢复:a小于0时,对进行右移|a/2|位得到结果,a大于0时,对进行左移|a/2|位得到结果,其中|a/2|为a/2的绝对值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711206106.7A CN107977587A (zh) | 2017-11-27 | 2017-11-27 | 一种平方根功能实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711206106.7A CN107977587A (zh) | 2017-11-27 | 2017-11-27 | 一种平方根功能实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107977587A true CN107977587A (zh) | 2018-05-01 |
Family
ID=62011834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711206106.7A Pending CN107977587A (zh) | 2017-11-27 | 2017-11-27 | 一种平方根功能实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107977587A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913686A (zh) * | 2020-05-29 | 2020-11-10 | 无锡市优利康电气有限公司 | 一种定点cpu的快速开平方计算的方法 |
-
2017
- 2017-11-27 CN CN201711206106.7A patent/CN107977587A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111913686A (zh) * | 2020-05-29 | 2020-11-10 | 无锡市优利康电气有限公司 | 一种定点cpu的快速开平方计算的方法 |
CN111913686B (zh) * | 2020-05-29 | 2021-12-07 | 无锡市优利康电气有限公司 | 一种定点cpu的快速开平方计算的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107305484B (zh) | 一种非线性函数运算装置及方法 | |
CN104423926A (zh) | 浮点加法器电路 | |
CN103809930B (zh) | 一种双精度浮点数除法器的设计方法及除法器 | |
CN107305485B (zh) | 一种用于执行多个浮点数相加的装置及方法 | |
CN112506935B (zh) | 数据处理方法、装置、电子设备、存储介质及程序产品 | |
CN101630243B (zh) | 超越函数装置以及用该装置实现超越函数的方法 | |
CN108196822A (zh) | 一种双精度浮点开方运算的方法及系统 | |
US8914431B2 (en) | Range check based lookup tables | |
CN111984227B (zh) | 一种针对复数平方根的近似计算装置及方法 | |
CN110688088A (zh) | 一种面向神经网络的通用非线性激活函数计算装置和方法 | |
CN105930128B (zh) | 一种利用浮点数计算指令实现大整数乘法计算加速方法 | |
CN109165006B (zh) | Softmax函数的设计优化及硬件实现方法及系统 | |
CN110888623A (zh) | 数据转换方法、乘法器、加法器、终端设备及存储介质 | |
CN104133656A (zh) | 一种尾码采用移位和减法运算的浮点数除法器及运算方法 | |
CN111443893A (zh) | 一种基于cordic算法的n次根计算装置及方法 | |
CN111813372B (zh) | 一种高精度低时延实现32位整数除法的方法及装置 | |
CN107992284B (zh) | 一种可编程器件的除法功能实现方法 | |
CN105608055B (zh) | 一种基于位串架构的蝶形运算单元、fft处理器及方法 | |
CN111813371A (zh) | 数字信号处理的浮点除法运算方法、系统及可读介质 | |
CN104166535A (zh) | 定点处理器及其防溢方法 | |
CN104375800A (zh) | 一种嵌入式系统的浮点除法运算方法、系统和嵌入式系统 | |
CN107977587A (zh) | 一种平方根功能实现方法 | |
CN111984226B (zh) | 一种基于双曲cordic的立方根求解装置及求解方法 | |
CN103176948A (zh) | 一种低成本的单精度初等函数运算加速器 | |
CN104506316A (zh) | 一种基于sm2基点的点乘运算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180501 |