CN104679721B - 一种fft处理器的运算方法 - Google Patents
一种fft处理器的运算方法 Download PDFInfo
- Publication number
- CN104679721B CN104679721B CN201510116879.0A CN201510116879A CN104679721B CN 104679721 B CN104679721 B CN 104679721B CN 201510116879 A CN201510116879 A CN 201510116879A CN 104679721 B CN104679721 B CN 104679721B
- Authority
- CN
- China
- Prior art keywords
- data
- fft
- block floating
- point
- floating point
- 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.)
- Active
Links
Landscapes
- Complex Calculations (AREA)
Abstract
本发明提供了一种FFT处理器的运算方法,该方法包括:在FPGA的程序中设置多级蝶形运算,每一级共用一个块浮点移位因子;通过数据在每级运算前根据上一次的块浮点因子判决状态进行判断,来决定该次数据存储器输出时的移位选择,通过对每级的移位之和来控制最后输出的增益。本发明提出了一种浮点运算方法,解决了定点算法和浮点算法之间的矛盾,提高了浮点运算效率,降低了成本。
Description
技术领域
本发明涉及可编程处理器,特别涉及一种FFT处理器的运算方法。
背景技术
在通讯和雷达信号处理中,FFT是一种常用的工具,在速度要求比较高或集成度较高的情况下大多使用FPGA完成。绝大多数的处理器处理数据采用定点数据格式,这样虽然使得处理结构相对简单,但是溢出现象则比较严重,而采用简单的定点截位又会将小信号淹没在大信号之中,使结果数据失去必要的精度。随着对数据精度的要求越来越高,一般的定点算法已经无法满足高精度的要求,需要求助于浮点处理器来进行运算,以避免应用中的溢出问题。国外的FFT Core大多采用定点运算或块浮点运算,国外的FFT Core一般采用小于24位定点或小于24位块浮点。但是浮点处理器消耗资源比较大,包含有复杂的硬件结构(浮点执行单元),从而大大地增加了设计成本和功耗,降低了计算效率。在同样的处理速度下,浮点处理器相对昂贵,功耗较大。浮点运算执行单元只能自行设计,在设计过程还要考虑运算精度、运算速度、资源占用、设计复杂度的折衷等。因此相对定点运算而言,浮点运算具有开发难度大、研发周期长、研制费用高等缺点。
因此,针对相关技术中所存在的上述问题,目前尚未提出有效的解决方案。
发明内容
为解决上述现有技术所存在的问题,本发明提出了一种FFT处理器的运算方法,包括:
在FPGA的程序中设置多级蝶形运算,每一级共用一个块浮点移位因子;通过数据在每级运算前根据上一次的块浮点因子判决状态进行判断,来决定该次数据存储器输出时的移位选择,通过对每级的移位之和来控制最后输出的增益。
优选地,该方法还包括:
在FFT运算之前,所有数据按照顺序地址的形式排列,每级蝶形运算前取数地址和运算结束后存数地址相同;第一级所取每两个数地址相隔为总点数的一半,每一级是上一级相隔点数的一半,每级蝶形运算是流水线操作,每个时钟都从存储器读取数据,通过在主程序中定义一个时钟计数器和一个级数计数器,级数计数器随级数的增加自加,在每完成一个FFT之后清零,时钟计数器随每一个时钟自加,在每完成一级FFT之后清零,通过将时钟计数器减去一次蝶形运算耗费的时钟数来实现读取数据和存储数据地址的一致性,并将时钟计数器循环右移来产生每次两个数据之间的地址间隔。
优选地,该方法还包括:
在基二DIF形式FFT运算中,每一级的蝶形输入的原始数据之间首先进行的是简单的加减运算,将每级所有数据在进入蝶形时需要左移/右移,如果是将所有数据右移一位,那么就使该级输出数据格式相对于该级输入数据格式来说多了一位小数位,每级运算后为前一级的1/2,并将其称为浮点因子,经过m级的蝶形迭代后,如果总共右移了m位,即浮点因子位m,则计算结果数据放大2m倍后得到最终结果。
本发明相比现有技术,具有以下优点:
本发明提出了一种浮点运算方法,解决了定点算法和浮点算法之间的矛盾,提高了浮点运算效率,降低了成本。
附图说明
图1是根据本发明实施例的FFT处理器的运算方法的流程图。
图2为根据本发明实施例的块浮点FFT结构图。
图3为根据本发明实施例的三位块浮点因子判决程序流程图。
具体实施方式
下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
本发明的一方面提供了一种FFT处理器的运算方法。图1是根据本发明实施例的FFT处理器的运算方法流程图。
FFT是将原有N点序列分解成为两个或更多的较短序列,这些短序列的DFT可重新组合成原序列的DFT,而总的运算次数确比直接的DFT少的多,可以极大的降低计算量,从而达到提高运算速度的目的。基二DIF形式FFT是将频域X(k)按序号k的奇、偶分开,假设N=2m,则第一次分开得到两个N/2点的DFT,称为第一级(Class m);再将其分别分解可得到四个N/4点的DFT,称为第二级(Class m-1);依次类推,直到得到两点的DFT。FFT运算的基本单元是蝶形运算单元,基二DIF的蝶形运算单元运算式如下所示:
x′a+jy′a=xa+xb+j(ya+yb)
x′b+jy′b=(xa-xb)wr-(ya-yb)wi+j[(xa-xb)wi+(ya-yb)wr]
即:x′a=xa+xb
y′a=(ya+yb)
x′b=(xa-xb)wr-(ya-yb)wi
y′b=(xa-xb)wi+(ya-yb)wr
从上式可以得出,基二蝶形运算只需一次复数乘法和两次复数加法,则N=2n个点的DFT复数乘法量由N2次降为次,复数加法由N(N-1)次降为Nlog2N。所以在大点数DFT运算时,使用FFT将会极大的降低运算量,提高运算效率。
二进制小数点在数码中位置固定不变的称为定点制。定点制中,小数点右边各位表示数的小数部分,左边各位表示数的整数部分。通常为了方便,采取了两种方法,一种就是把所有数据都表示为整数;另一种就是把数值限制在-1.0到+1.0之间的小数形式。在第二种方法中,小数点固定在第一位二进制码之后,整数位作为“符号位”,数的本身只有小数部分。相对而言第二种方法比较常用,在定点数运算中,所有结果的绝对值都不能超过1。如果运算过程中数的绝对值超过1,整数部分的符号位就会出现错误进位,称为溢出,这在定点算法中是无法避免出现的情况,一般采用简单的截位来解决,但是这样就会时一些小数据被淹没在大数据之中。
浮点制将一个数的表示分为阶码部分和尾数部分。阶码是一个有符号的整数,它表示了尾数中的二进制小数点位置应该朝左或右移动以得到原数的大小;尾数有两部分:一个一位二进制整数(也被引用为J-bit)和一个二进制小数,J-bit通常不表示出来,而是作为隐含值。四种浮点格式包括单精度格式、扩展单精度格式、双精度格式和扩展双精度格式,它能表示的值的范围要宽得多,可以避免大多数应用中的溢出问题。在大多数情况下,处理器以规格化的形式表示实数。也就是说,除了零之外,尾数总是由一个整数和一个小数构成,如下所示:
对于小于1的值来说,主要消掉高位零,即可成为规格化数。(每消掉一个高位零,阶码都要减1)以规格化形式来表示数据,使装入给定宽度的尾数的有效位个数最多。总之,规格化数的尾数表示在1到2之间的实数,而由阶码给出实际的小数点的位置。
浮点格式表示数据的动态范围比定点数大,在计算过程中可以使得指数部分加减“1”来扩展数据,这样对小数据在运算中可保持更高的精度,有利于保护小数据。在硬件实现时,需要设置专用的浮点运算执行单元来进行浮点加减乘除运算,由于在运算中要分别考虑到数据的阶码和尾数,所以浮点执行单元的结构和控制都比较复杂,严重影响到浮点运算的效率。
无论使用哪种硬件处理器来实现算法,绝大多数的处理器使用定点运算算法,处理数据采用定点数据格式,这样虽然使得处理结构相对简单,但是溢出现象则比较严重,而采用简单的定点截位又会将小信号淹没在大信号之中,使结果数据失去必要的精度。随着对数据精度的要求越来越高,一般的定点算法已经无法满足高精度的要求,需要求助于浮点处理器来进行运算,以避免应用中的溢出问题。但是浮点处理器消耗资源比较大,包含有复杂的硬件结构(浮点执行单元),从而大大地增加了设计成本和功耗,降低了计算效率。在同样的处理速度下,与定点处理器相比较,浮点处理器相对昂贵,功耗较大。在使用ASIC器件设计时,由于浮点运算执行单元电路比较复杂,大多数的EDA软件目前尚不支持浮点运算,浮点运算执行单元只能自行设计,在设计过程还要考虑运算精度、运算速度、资源占用、设计复杂度的折衷等。因此相对定点运算而言,浮点运算具有开发难度大、研发周期长、研制费用高等缺点。
为了解决定点算法和浮点算法之间的矛盾,本发明综合定点算法和浮点算法的思想,采用块浮点算法,利用该方法可以将具有相同指数,而尾数不同的一组数据作为数据块进行处理。
运算中的数据都采用定点格式来表示,但在运算中间将具有相同指数,而尾数不同的一组数据作为数据块进行左移或者右移,其中左移是来调整数据精度,右移是为了避免定点运算出现溢出错误,但是这样处理就会使数据出现增益,所以在运算结束之后再将结果数据除以预设增益,就得到正确数据。这就是块浮点算法的思想,其结构框图如图1。
由于块浮点算法和定点算法类似,实现起来比较方便,而且其小数据计算时的计算精度远远优于定点截位,又称为移位定点算法。它既能够保证了数据满足一定的精度,又避免了标准浮点运算的复杂性。
块浮点FFT算法是基于数据块的块自增益思想,块浮点不仅调整FFT输入的信号功率,而且还根据内部每一级的计算结果进行数据调整。块浮点FFT是在一个数据块上实现浮点,即一组数据共用一个移位因子,它在硬件上以独立的数据字段存储。这样在硬件实现上相对于传统的浮点算法有着更小的代价,是一个很好的折衷。块浮点中数据块的移位因子取决于整个数据块中所有数据的最大值。如果数据块中有一个数较大,该数据块共用一个较大的因子;如果数据块中数据都较小,该数据块就共用一个较小的因子。
在数据表示上,块浮点仍然采用定点数制表示方式,数据存储器RAM位宽为M位,最高位M位为符号位,其余位为有效数据位。运算过程中采用定点的运算器,中间加法结果保持精度不截位,为了防止加减溢出在每一级运算后都进行判决,检测是否在有效的数据表示范围内,以决定下一级的蝶形运算读取数据的位数选择。图2为块浮点FFT结构图。
由于在基二DIF形式FFT运算中,每一级的蝶形输入的原始数据(不包括旋转因子)之间首先进行的是简单的加减运算,所以在保证数据运算精度的同时又不会出现溢出,可以将每级所有数据在进入蝶形时需要左移/右移几位。如果是将所有数据右移一位,那么就使得该级输出数据格式相对于该级输入数据格式来说多了一位小数位,这样每级运算后为前一级的1/2,并将其称为浮点因子,经过m级的蝶形迭代后,如果总共右移了m位,即浮点因子位m,则计算结果数据应放大2m倍才能得到真正的结果。
块浮点FFT的精度要优于定点FFT运算,当数据量增加时,这种表现更为明显;块浮点的实现简单,硬件开销与定点运算基本相同,只在每一级的数据运算完毕经过一个专门的块浮点运算模块。
块浮点FFT算法的主要依据就是块浮点因子,在本文提出三位块浮点因子的判断提取,也就是检测判断最多实现三位移动。
三位块浮点因子判决的具体做法是在每一级的每次蝶形运算之后检查每一个结果数据的前四位,如果该级所有结果数据的前四位都相同,则可以将所有数据全部左移三位而不会溢出,因为最高位是符号位,左移一位丢失的是符号位,但是因为所有的接下来的位都和最高位相等,所以这样移位不会改变数据的值;同样如果所有数据的前三位相同都相同,则可以将所有数据全部左移两位;如果所有数据的前两位相同都相同,则可以将所有数据全部左移一位。
在FPGA的程序中,4096点数据为一数据块,共有12级蝶形运算,它的每一级共用一个块浮点移位因子。通过4096点数据在每级运算前根据上一次的块浮点因子判决状态进行判断,来决定该次数据存储器输出时的移位选择。这样保证每个蝶形运算的数据精度,而最后通过对每级的移位之和来控制最后输出的增益。图3为三位块浮点因子判决程序流程图。
对于三位块浮点判断提取,在完成每个蝶形运算后,有一个等待过程。在该过程中完成对本次蝶形运算结果数据的块浮点因子判决,对每级数据块浮点因子进行判决采用了状态机的结构,S0、S1、S2和S3为块浮点因子的不同状态:
S0-代表数据在FFT下一级运算时可以左移零位;
S1-代表数据在FFT下一级运算时可以左移1位;
S2-代表数据在FFT下一级运算时可以左移2位;
S3-代表数据在FFT下一级运算时可以左移3位。
在FFT运算的每一级开始时将块浮点因子设为S3状态,在蝶形运算模块中采取一票否决制,当检测的一个数据的前四位不相同,就把块浮点因子的状态置为S2;同样有一个数据的前三位不相同,块浮点因子的状态就为S1,依次类推,当检测到有一组数据的块浮点因子为S0状态时,该级剩余的蝶形运算就不再进行块浮点因子判决,因为该级不满足块浮点因子移位条件。如果在FFT运算的每一级将块浮点因子从S2状态开始判断,就是两位块浮点判断提取,从S1状态开始就是一位块浮点判断提取。三位块浮点因子判断提取处理会在每个蝶形运算中比定点FFT多两个时钟周期,而一位块浮点因子则同定点FFT处理具有相同的处理速度。
为了进一步改进块浮点因子提取判断,提高其提取速度,采用了并行处理,在每一个蝶形运算模块完成蝶形运算后,同时对四个数据的前四位、前三位、前两位进行比较,最后对结果进行比较,这样就会使三位或者更多位的块浮点蝶形运算比定点蝶形运算多一个时钟周期,这样做的牺牲是处理器资源的消耗。
当4096点数据所有级FFT运算完成后,通过移位累加单元实现对每一级移位次数的累加,以便给出该组数据块浮点FFT运算结束后总的移位次数,由此可确定最后结果的增益。
块浮点因子 | 前四 | 前三 | 前两 | 块浮点 |
初始状态 | 位相同 | 位相同 | 位相同 | 因子状态 |
S3 | Y | X | X | S3 |
S3 | N | Y | X | S2 |
S3 | N | N | Y | S1 |
S3 | N | N | N | S0 |
S2 | X | Y | X | S2 |
S2 | X | N | Y | S1 |
S2 | X | N | N | S0 |
S1 | X | X | Y | S1 |
S1 | X | X | N | S0 |
S0 | X | X | X | S0 |
三位块浮点因子判断提取真值表
*Y代表成立;N代表不成立;X代表任意
在FFT运算之前,所有数据按照顺序地址的形式排列,每级蝶形运算前取数地址和运算结束后存数地址相同,所以可以统一将读数时地址延时到存数;另外第一级所取每两个数地址相隔为总点数的一半,第二级则是上一级相隔点数的一半,依次类推。由于每级蝶形运算是流水线操作,每个时钟都要从存储器读取数据,所取数据地址如果都使用专用寄存器存储,就会影响运算速度和存储资源,这里我们通过在主程序中定义一个时钟计数器和一个级数计数器,级数计数器随级数的增加自加,在每完成一个FFT之后清零,时钟计数器随每一个时钟自加,在每完成一级FFT之后清零,通过将时钟计数器减去一次蝶形运算耗费的时钟数来实现读取数据和存储数据地址的一致性,另外可以将时钟计数器循环右移来产生每次两个数据之间的地址间隔。
当一组数据所有级蝶形完成后,输出数据地址不再是原来的正序,这是由于在运算过程中对x(n)作奇、偶分开所产生的。例如对于8点基二DIF形式的FFT,其第一级输入数据地址是正序:0,1,2,3,4,5,6,7。最后一级数据输出数据地址为反序:0,4,2,6,1,5,3,7。为了得到最终正确的输出数据,必须将反序变为正序输出,可以通过二进制码位反转将反序变为正序。在程序中,数据的地址都是由二进制数表示,反序0,4,2,6,1,5,3,7分别由三位二进制数表示为000,100,010,110,001,101,011,111,将每个数的第2位和第0位交换,第1位保持不动,可以得到000,001,010,011,100,101,110,111,即0,1,2,3,4,5,6,7,即将反序变为正序。对于其他点数的FFT,如果数据地址由n位表示,位反转的规则为:第n-1位和第0位交换,第n-2位和第1位交换,第n-3位和第2位交换……,依此类推就可以将反序转换为正序。
综上所述,本发明提出了一种浮点运算方法,解决了定点算法和浮点算法之间的矛盾,提高了浮点运算效率,降低了成本。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算***来实现,它们可以集中在单个的计算***上,或者分布在多个计算***所组成的网络上,可选地,它们可以用计算***可执行的程序代码来实现,从而,可以将它们存储在存储***中由计算***来执行。这样,本发明不限制于任何特定的硬件和软件结合。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (1)
1.一种FFT处理器的运算方法,其特征在于,包括:
在FPGA的程序中设置多级蝶形运算,每一级共用一个块浮点移位因子;通过数据在每级运算前根据上一次的块浮点因子判决状态进行判断,来决定该次数据存储器输出时的移位选择,通过对每级的移位之和来控制最后输出的增益;
该方法还包括:
在FFT运算之前,所有数据按照顺序地址的形式排列,每级蝶形运算前取数地址和运算结束后存数地址相同;第一级所取每两个数地址相隔为总点数的一半,每一级是上一级相隔点数的一半,每级蝶形运算是流水线操作,每个时钟都从存储器读取数据,通过在主程序中定义一个时钟计数器和一个级数计数器,级数计数器随级数的增加自加,在每完成一个FFT之后清零,时钟计数器随每一个时钟自加,在每完成一级FFT之后清零,通过将时钟计数器减去一次蝶形运算耗费的时钟数来实现读取数据和存储数据地址的一致性,并将时钟计数器循环右移来产生每次两个数据之间的地址间隔;
在基二DIF形式FFT运算中,每一级的蝶形输入的原始数据之间首先进行的是简单的加减运算,将每级所有数据在进入蝶形时需要左移/右移,如果是将所有数据右移一位,那么就使该级输出数据格式相对于该级输入数据格式来说多了一位小数位,每级运算后为前一级的1/2,并将其称为浮点因子,经过m级的蝶形迭代后,如果总共右移了m位,即浮点因子位m,则计算结果数据放大2m倍后得到最终结果;
对于三位块浮点判断提取,在完成每个蝶形运算后,有一个等待过程,在该等待过程中完成对本次蝶形运算结果数据的块浮点因子判决,对每级数据块浮点因子进行判决采用了状态机的结构,S0、S1、S2和S3为块浮点因子的不同状态:S0代表数据在FFT下一级运算时可以左移零位;S1代表数据在FFT下一级运算时可以左移1位;S2代表数据在FFT下一级运算时可以左移2位;S3代表数据在FFT下一级运算时可以左移3位;
在FFT运算的每一级开始时将块浮点因子设为S3状态,在蝶形运算模块中,当检测的一个数据的前四位不相同,就把块浮点因子的状态置为S2;同样有一个数据的前三位不相同,块浮点因子的状态就为S1,当检测到有一组数据的块浮点因子为S0状态时,该级剩余的蝶形运算就不再进行块浮点因子判决,如果在FFT运算的每一级将块浮点因子从S2状态开始判断,就是两位块浮点判断提取,从S1状态开始就是一位块浮点判断提取;
采用并行处理,在每一个蝶形运算模块完成蝶形运算后,同时对四个数据的前四位、前三位、前两位进行比较,最后对结果进行比较,使三位或者更多位的块浮点蝶形运算比定点蝶形运算多一个时钟周期;当所有级FFT运算完成后,通过移位累加单元实现对每一级移位次数的累加,给出该组数据块浮点FFT运算结束后总的移位次数,由此确定最后结果的增益。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510116879.0A CN104679721B (zh) | 2015-03-17 | 2015-03-17 | 一种fft处理器的运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510116879.0A CN104679721B (zh) | 2015-03-17 | 2015-03-17 | 一种fft处理器的运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679721A CN104679721A (zh) | 2015-06-03 |
CN104679721B true CN104679721B (zh) | 2017-12-19 |
Family
ID=53314787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510116879.0A Active CN104679721B (zh) | 2015-03-17 | 2015-03-17 | 一种fft处理器的运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679721B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354693B (zh) * | 2016-08-29 | 2019-09-17 | 北京理工大学 | 一种fft处理器的块浮点方法 |
CN113111300B (zh) * | 2020-01-13 | 2022-06-03 | 上海大学 | 具有优化资源消耗的定点fft实现*** |
CN111580867B (zh) * | 2020-04-30 | 2023-07-18 | 中国科学院微电子研究所 | 一种用于fft运算的块浮点处理方法及装置 |
CN112163185B (zh) * | 2020-09-30 | 2023-11-28 | 中国科学院计算技术研究所 | Fft/ifft运算装置及基于该装置的fft/ifft运算方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN102298570A (zh) * | 2011-09-13 | 2011-12-28 | 浙江大学 | 一种点数可变的混合基 fft/ifft实现装置及其方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9081608B2 (en) * | 2012-05-19 | 2015-07-14 | Digital System Research Inc. | Residue number arithmetic logic unit |
-
2015
- 2015-03-17 CN CN201510116879.0A patent/CN104679721B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102063411A (zh) * | 2009-11-17 | 2011-05-18 | 中国科学院微电子研究所 | 一种基于802.11n的FFT/IFFT处理器 |
CN102298570A (zh) * | 2011-09-13 | 2011-12-28 | 浙江大学 | 一种点数可变的混合基 fft/ifft实现装置及其方法 |
Non-Patent Citations (1)
Title |
---|
基于FPGA的块浮点FFT实现;赵敏玲,等;《兰州理工大学学报》;20090831;第35卷(第4期);第1章,第2.1节,图3 * |
Also Published As
Publication number | Publication date |
---|---|
CN104679721A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104679719B (zh) | 一种基于fpga的浮点运算方法 | |
CN104679720A (zh) | 一种实现fft的运算方法 | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
CN104679721B (zh) | 一种fft处理器的运算方法 | |
EP3719639B1 (en) | Systems and methods to perform floating-point addition with selected rounding | |
CN101650642B (zh) | 基于补码舍入的浮点加法装置 | |
CN108021537A (zh) | 一种基于硬件平台的softmax实现方式 | |
US20160313976A1 (en) | High performance division and root computation unit | |
US10642578B2 (en) | Approximating functions | |
US20070266072A1 (en) | Method and apparatus for decimal number multiplication using hardware for binary number operations | |
US8639737B2 (en) | Method to compute an approximation to the reciprocal of the square root of a floating point number in IEEE format | |
US12032548B2 (en) | System and method for self-resizing associative probabilistic hash-based data structures | |
CN103180820A (zh) | 用于执行浮点除法的方法和装置 | |
CN103914276A (zh) | 利用浮点架构的定点除法电路 | |
CN104254833A (zh) | 基于向量和标量的模取幂 | |
CN107992284A (zh) | 一种可编程器件的除法功能实现方法 | |
CN110222305A (zh) | 一种基于双曲cordic的对数函数计算***及方法 | |
US20130262541A1 (en) | Method and circuitry for square root determination | |
CN104731551B (zh) | 基于fpga进行除法操作的方法及装置 | |
JP2014041415A (ja) | 演算回路、演算処理装置、及び除算方法 | |
Araujo et al. | Fast computation of multinomial coefficients | |
Lee et al. | Design of a high precision logarithmic converter in a binary floating point divider | |
US10037191B2 (en) | Performing a comparison computation in a computer system | |
Gonzalez-Navarro et al. | Normalizing or not normalizing? an open question for floating-point arithmetic in embedded systems | |
Andersen et al. | A systolic ON-LINE non-restoring division scheme |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181108 Address after: 210000 C4 717-718, green window of Jinxiu street, Yuhuatai District, Nanjing, Jiangsu Patentee after: Nanjing Jing Da Micro Electronics Technology Co., Ltd. Address before: 610000 Sichuan science and technology incubator in Chengdu hi tech Zone Patentee before: CHENGDU GOLDENWAY TECHNOLOGY CO., LTD. |
|
TR01 | Transfer of patent right |