CN108897523B - 一种除法器及其运算方法、电子设备 - Google Patents
一种除法器及其运算方法、电子设备 Download PDFInfo
- Publication number
- CN108897523B CN108897523B CN201810709734.5A CN201810709734A CN108897523B CN 108897523 B CN108897523 B CN 108897523B CN 201810709734 A CN201810709734 A CN 201810709734A CN 108897523 B CN108897523 B CN 108897523B
- Authority
- CN
- China
- Prior art keywords
- dividend
- divisor
- quotient
- initial
- stage
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 238000007781 pre-processing Methods 0.000 claims abstract description 32
- 238000012512 characterization method Methods 0.000 claims description 45
- 238000004364 calculation method Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 11
- 101100171060 Caenorhabditis elegans div-1 gene Proteins 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 5
- 101100115215 Caenorhabditis elegans cul-2 gene Proteins 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 102220097792 rs876659913 Human genes 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/535—Dividing only
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供一种除法器及其运算方法、电子设备,涉及数字信号处理技术领域,用于解决常规除法器运算速度缓慢的问题。除法器,包括:数据预处理单元,用于读入初始除数和初始被除数,以获得N个除数倍数并输出,还用于输出被除数;除法运算单元,包括级联的P个除法运算子单元,除法运算子单元依次对应初始被除数的i位宽,除法运算子单元用于根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数;还用于形成下一级除法运算子单元的被除数并输出;寄存单元,包括级联的P‑1个寄存器,寄存器用于将与寄存器连接的除法运算子单元输出的商和上一级寄存器输出的商进行位拼接并传输至下一级寄存器;输出单元,用于输出商。
Description
技术领域
本发明涉及数字信号处理技术领域,尤其涉及一种除法器及其运算方法、电子设备。
背景技术
除法器是算术运算电路中最常用的电路之一,相比乘法与减法运算,除法运算实现的技术难度更大。现有的一些相关专利或者文献,所提及除法运算通常基于迭代运算的算法,即通过反复迭代的方式,这样一来,需要一组数据计算出结果后才能输入另一组数据,运算速度缓慢。
在需要除法运算的相关领域,例如数字图像处理、数字信号处理、数字通信等,往往对运算的实时性有很高要求,尤其在数字图像处理领域,常常要求单个时钟周期就要产生运算结果,而常规的基于迭代运算的除法器,则需要多周期运算才能够完成一次除法运算,无法连续运算,显然无法满足技术要求。
发明内容
本发明的实施例提供一种除法器及其运算方法、电子设备,用于解决常规的基于迭代运算的除法器,需要多周期运算才能够完成一次除法运算,且一次运算完成后才能进行下一次运算,运算速度缓慢的问题。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种除法器,包括:数据预处理单元,用于读入初始除数和初始被除数,生成初始除数的M倍,M按从1~N逐级加一的方式取值,以获得N个除数倍数并输出,还用于输出被除数;其中,初始除数非零,M为整数,N=2i-1,i为偶数;除法运算单元,包括级联的P个除法运算子单元,所述除法运算子单元依次对应初始被除数的i位宽,所述除法运算子单元用于根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数;还用于将获取的余数向高一级移动i位宽与初始被除数的低一级i位宽位拼接以形成下一级除法运算子单元的被除数并输出;P=2j,j为自然数;寄存单元,包括级联的P-1个寄存器,除最后一级除法运算子单元外,每级除法运算子单元连接一个所述寄存器,所述寄存器用于将与所述寄存器连接的所述除法运算子单元输出的商和上一级寄存器输出的商进行位拼接并传输至下一级寄存器;输出单元,用于对最后一级除法运算子单元输出的商和最后一级寄存器输出的商进行位拼接并输出。
可选的,所述除法运算子单元包括:分路单元、处理单元和计算单元,所述分路单元的每个输入端连接不同的所述处理单元;所述分路单元包括至少一级第一判断模块,上一级每个第一判断模块的两个输入端分别连接下一级第一判断模块的输出端,第一级判断模块的输出端连接商输出端和所述计算单元;所述处理单元包括多个级联的第二判断模块,所述处理单元的第一级第二判断模块的输出端连接所述分路单元的最后一级第一判断模块的输入端,除第一级第二判断模块外,其他每级第二判断模块的输出端连接上一级第二判断模块的第二输入端;最后一级第二判断模块的第二输入端和第一输入端均用于输入表征商Q,其他每级第二判断模块的第一输入端用于输入表征商Q;每个所述第一判断模块和所述第二判断模块的第三输入端和第四输入端分别用于输入被除数和除数倍数;每个所述处理单元中,多个级联的第二判断模块输入的除数倍数依次减小;所述分路单元中,当前级第一判断模块输入的除数倍数小于与当前级第一判断模块的第一输入端连接的下一级第一判断模块或第二判断模块输入的除数倍数,大于与当前级第一判断模块的第二输入端连接的下一级第一判断模块或第二判断模块输入的除数倍数;所述分路单元中,在所述第一判断模块输入的被除数大于或等于该第一判断模块输入的除数倍数的情况下,所述第一判断模块用于从该第一判断模块的第一输入端输入信号,反之,从该第一判断模块的第二输入端输入信号;所述处理单元中,在所述第二判断模块输入的被除数大于或等于该第二判断模块输入的除数倍数的情况下,每一所述第二判断模块用于从该第二判断模块的第一输入端输入表征商Q,所述表征商Q等于该第二判断模块输入的除数的倍数M;反之,最后一级第二判断模块用于从该第二判断模块的第二输入端输入表征商Q,所述表征商Q等于该第二判断模块输入的除数的倍数减一,其余级第二判断模块用于从该第二判断模块的第二输入端输入信号;所述计算单元用于根据第一级第一判断模块的输出端输出的表征商Q,生成位拼接后的被除数。
可选的,级联的P个除法运算子单元中,第O级除法运算子单元连接第O级寄存器,O按从P-2逐级减一的方式取值,第P级除法运算子单元与所述数据预处理单元连接;所述计算单元生成的位拼接后的被除数=[(所述计算单元所在的所述除法运算子单元输入的被除数-初始除数的Q倍)<<4]+初始被除数[4O-1:4O-4],其中,<<为左移运算符。
可选的,所述第一判断模块和所述第二判断模块均包括相互连接的比较器和多路选择器,所述比较器用于比较第三输入端和第四输入端输入的被除数和除数倍数;所述多路选择器用于在被除数大于或等于除数倍数的情况下从输出端输出第一输入端输入的信号,反之,从输出端输出第二输入端输入的信号。
可选的,i=4,N=15,P=2。
可选的,所述分路单元包括两级第一判断模块,第一级判断模块输入初始除数的八倍,与第一级判断模块的第二输入端连接的第二级分路模块一输入初始除数的四倍,与第一级判断模块的第一输入端连接的第二级分路模块二输入初始除数的十二倍;包括四个所述处理单元,所述处理单元包括三个级联的第二判断模块,第一处理单元中,三个第二判断模块依次输入初始除数的三倍、二倍、一倍;第二处理单元中,三个第二判断模块依次输入初始除数的七倍、六倍、五倍;第三处理单元中,三个第二判断模块依次输入初始除数的十一倍、十倍、九倍;第四处理单元中,三个第二判断模块依次输入初始除数的十五倍、十四倍、十三倍;所述第一处理单元连接第二级第一判断模块一的第二输入端,所述第二处理单元连接第二级第一判断模块一的第一输入端;所述第三处理单元连接第二级第一判断模块二的第二输入端,所述第四处理单元连接第二级第一判断模块二的第一输入端。
可选的,所述除法器还包括:使能单元,用于控制所述数据预处理单元开始工作。
可选的,所述除法器还包括:结束单元,用于标记所述除法器结束工作。
可选的,所述除法器还包括:复位单元,用于对所述除法器的各单元进行复位。
可选的,所述除法器还包括:时钟单元,用于为所述除法器提供时钟信号。
可选的,与所述数据预处理单元连接的除法运算子单元接收所述数据预处理单元输出的N个除数倍数和被除数,其他级除法运算子单元接收上一级除法运算子单元输出的N个除数倍数和被除数;最后一级除法运算子单元输出的2i位宽的被除数中的高i位宽的数为所述除法运算单元最终输出的余数。
第二方面,提供一种除法器的运算方法,所述运算方法包括:读取阶段:读入初始除数和初始被除数,生成初始除数的M倍,输出N个除数倍数和被除数,M按从1~N逐级加一的方式取值,其中,初始除数非零,M为整数,N=2i-1,i为偶数;包括P个计算阶段,每个计算阶段包括:每次对应初始被除数的i位宽,根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数,输出i位宽的商,且将获取的余数向高一级移动i位宽与被除数的低一级i位宽位拼接以形成新的被除数并输出,P=2j,j为自然数;将每个计算阶段输出的i位宽的商进行位拼接并输出。
可选的,一个时钟周期输入一组初始除数和初始被除数,所述读取阶段和所述计算阶段分别在一个时钟周期内完成。
可选的,i=4,N=15,P=2;所述计算阶段包括:在被除数大于或等于初始除数的八倍的情况下,对比被除数与初始除数的十二倍;反之,对比被除数与初始除数的四倍;在被除数大于或等于初始除数的十二倍的情况下,对比被除数与初始除数的十五倍,在被除数大于或等于初始除数的十五倍的情况下,表征商Q=15;反之,对比被除数与初始除数的十四倍;在被除数大于或等于初始除数的十四倍的情况下,表征商Q=14;反之,对比被除数与初始除数的十三倍;在被除数大于或等于初始除数的十三倍的情况下,表征商Q=13;反之,表征商Q=13;在被除数小于初始除数的十二倍的情况下,对比被除数与初始除数的十一倍,在被除数大于或等于初始除数的十一倍的情况下,表征商Q=11;反之,对比被除数与初始除数的十倍;在被除数大于或等于初始除数的十倍的情况下,表征商Q=10;反之,对比被除数与初始除数的九倍;在被除数大于或等于初始除数的九倍的情况下,表征商Q=9;反之,表征商Q=8;在被除数大于或等于初始除数的四倍的情况下,对比被除数与初始除数的七倍,在被除数大于或等于初始除数的七倍的情况下,表征商Q=7;反之,对比被除数与初始除数的六倍;在被除数大于或等于初始除数的六倍的情况下,表征商Q=6;反之,对比被除数与初始除数的五倍;在被除数大于或等于初始除数的五倍的情况下,表征商Q=5;反之,表征商Q=4;在被除数小于初始除数的四倍的情况下,对比被除数与初始除数的三倍,在被除数大于或等于初始除数的三倍的情况下,表征商Q=3;反之,对比被除数与初始除数的二倍;在被除数大于或等于初始除数的二倍的情况下,表征商Q=2;反之,对比被除数与初始除数的一倍;在被除数大于或等于初始除数的一倍的情况下,表征商Q=1;反之,表征商Q=0;获取的商等于表征商Q,位拼接后的被除数=[(输出表征商时的被除数-初始除数的Q倍)<<4]+初始被除数[3:0]。
第三方面,提供一种电子设备,包括第一方面所述的除法器。
本发明提供一种除法器及其运算方法、电子设备,该除法器采用若干除法运算子单元级联而成,每个除法运算子单元获得i位宽的商和余数,并且在计算过程中可以支持“流水(pipeline)”运算的架构,即初始除数和初始被除数可以连续进入除法器,无需等到上一对初始除数和初始被除数的数据彻底运算结束之后再输入下一对初始除数和初始被除数,提高了数据的处理速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种8bit的除法器;
图2为本发明实施例提供的一种16bit的除法器;
图3为本发明实施例提供的一种除法器中数据预处理单元与除法运算子单元的连接关系示意图;
图4为本发明实施例提供的一种相邻除法运算子单元之间的连接关系示意图;
图5为本发明实施例提供的一种除法运算子单元的结构示意图;
图6为本发明实施例提供的一种第一判断模块和第二判断模块的结构示意图;
图7为本发明实施例提供的另一种除法运算子单元的结构示意图;
图8为本发明实施例提供的一种除法器的端口示意图;
图9为本发明实施例提供的一种除法器的运算方法的流程图;
图10为本发明实施例提供的一种8bit的除法器的仿真波形图;
图11为本发明实施例提供的一种除法运算子单元的运算算法流程图;
图12为本发明实施例提供的一种16bit的除法器的仿真波形图;
图13本发明实施例提供的一种除法式示意图。
10-数据预处理单元;20-除法运算单元;21-除法运算子单元;21_4-第四级除法运算子单元;21_3-第三级除法运算子单元;21_2-第二级除法运算子单元;21_1-第一级除法运算子单元;213-计算单元;211-分路单元;212-处理单元;2111-第一判断模块;2121-第二判断模块;30-寄存单元;31-寄存器;31_3-第三级寄存器;31_2-第二级寄存器;31_1-第一级寄存器;40-输出单元。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种除法器,如图1(8位宽(bit)的除法器)和图2(16bit的除法器)所示,包括数据预处理单元10,用于读入初始除数和初始被除数,生成初始除数的M倍,M按从1~N逐级加一的方式取值,以获得N个除数倍数并输出,还用于输出被除数;其中,初始除数非零,M为整数,N=2i-1,i为偶数。
这样一来,数据预处理单元10包括初始除数输入端、初始被除数输入端,还包括N个除数倍数输出端和被除数输出端。
初始被除数与初始除数加载后,对初始除数进行分级处理,例如可以通过移位相加方式,同时获得初始除数的1-N倍的数据,M按从1-N逐级加一的方式取值,即获得初始除数的1倍、2倍、3倍、4倍、5倍、……、N倍,最终生成N个除数倍数。N例如可以是3、15等。
示例性的,以N=15为例,分级处理获得15个除数倍数,分别记为div_1、div_2……div_15。分级算法为:
初始除数的一倍div_1=初始除数。
初始除数的二倍div_2=初始除数<<1,其中,“<<”表示左移。
初始除数的三倍div_3=(初始除数<<1)+初始除数。
初始除数的四倍div_4=(初始除数<<2)。
初始除数的五倍div_5=(初始除数<<2)+初始除数。
初始除数的六倍div_6=(初始除数<<2)+(初始除数<<1)。
初始除数的七倍div_7=(初始除数<<2)+(初始除数<<1)+初始除数。
初始除数的八倍div_8=(初始除数<<3)。
初始除数的九倍div_9=(初始除数<<3)+初始除数。
初始除数的十倍div_10=(初始除数<<3)+(初始除数<<1)。
初始除数的十一倍div_11=(初始除数<<3)+(初始除数<<1)+初始除数。
初始除数的十二倍div_12=(初始除数<<3)+(初始除数<<2)。
初始除数的十三倍div_13=(初始除数<<3)+(初始除数<<2)+初始除数。
初始除数的十四倍div_14=(初始除数<<3)+(初始除数<<2)+(初始除数<<1)。
初始除数的十五倍div_15=(初始除数<<3)+(初始除数<<2)+(初始除数<<1)+初始除数。
除法运算单元20,包括级联的P个除法运算子单元21,除法运算子单元21依次对应初始被除数的i位宽(bit),除法运算子单元21用于根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数;还用于将获取的余数向高一级移动i位宽与初始被除数的低一级i位宽位拼接以形成下一级除法运算子单元21的被除数并输出;P=2j,j为自然数。
此处,对于除法运算子单元21根据输入的N个除数倍数和被除数进行比较获取i位宽的商和余数的方法不做限定,例如可以通过分级比较除法算法实现。此时的被除数对应初始被除数的4bit,当然,移位拼接后的被除数仅是将初始被除数的下一个4bit与余数拼接。每个除法运算子单元21对应的被除数不同。
其中,P*i等于初始被除数的位宽,示例性的,初始被除数为8位宽的数,除法运算单元20包括级联的2个除法运算子单元21,除法运算子单元21的高级为处理初始被除数的高位数据,即,第二级除法运算子单元21_2对应初始被除数的高4bit,第一级除法运算子单元21_1对应初始被除数的低4bit。
除法运算子单元21包括N个除数倍数接收端、被除数接收端,还包括N个除数倍数传输端、被除数传输端、商传输端。
对于同一组操作数(即被除数、除数)来说,数据流经过每个除法运算子单元21中,所对应的输入的N个除数倍数都是相同的,输入的被除数不同,获得的i位宽的商对应不同的位。对于任何一个除法运算子单元21来说,每经过一个时钟周期,其都会更新一组新的操作数。对于同一组操作数来说,每次基于除法运算子单元21所获得的4bit的商,都同步传递给与其连接的寄存器31寄存,因此,待操作数经过最后一级除法运算子单元21处理之后,即可将最后一级除法运算子单元21所产生的4bit商与前面若干级除法运算子单元21所产生的若干个4bit商通过位拼接获得最终的商的结果。
以8bit的除法器为例,数据预处理单元10和除法运算子单元21的连接关系如图3所示,数据预处理单元10需要将被除数、除数的倍数div_1-15传递给除法运算子单元21模块,其中图3中的除数分级数据总线divisor_level并行传递共计15个参数,因此数据预处理单元10和除法运算子单元21直接需要15根数据总线,分别对应div_1……div_15,上图简化为两根总线。
在一些实施例中,与数据预处理单元10连接的除法运算子单元21接收数据预处理单元10输出的N个除数倍数和被除数,其他级除法运算子单元21接收上一级除法运算子单元21输出的N个除数倍数和被除数。
最后一级除法运算子单元21输出的2i位宽的被除数中的高i位宽的数为除法运算单元20最终输出的余数。
两级除法运算子单元21之间的连接关系如图4所示,第二级除法运算子单元21_2需要将被除数、除数的倍数div_1-15传递给第一级除法运算子单元21_1,另外,第二级除法运算子单元21_2所产生的4bit的商不会传递给第一级除法运算子单元21_1,而是需要传递给与第二级除法运算子单元21_2连接的寄存器31进行存储。
寄存单元30,包括级联的P-1个寄存器31,除最后一级除法运算子单元外,每级除法运算子单元21连接一个寄存器31,寄存器31用于将与寄存器31连接的除法运算子单元21输出的商和上一级寄存器输出的商进行位拼接并传输至下一级寄存器。
示例性的,如图2所示,第四级寄存器31_4将存储的4bit的商传输至第三级寄存器31_3,第三级寄存器31_3将接收的第四级寄存器31_4传输的4bit的商和第三级除法运算子单元21_3产生的4bit的商进行位拼接后传输至第二级寄存器31_2。
输出单元40,用于对最后一级除法运算子单元21输出的商和最后一级寄存器31输出的商进行位拼接并输出。
示例性的,如图2所示,第二级寄存器31_2将位拼接后的8bit的商再一次和第二级除法运算子单元21_2产生的4bit的商进行位拼接后传输至输出单元40,输出单元40将12bit的商与第一级除法运算子单元21_1产生的4bit的商进行位拼接后输出,输出的商为16bit。
本发明提出一种除法器,该除法器采用若干除法运算子单元21级联而成,每个除法运算子单元21获得i位宽的商和余数,并且在计算过程中可以支持“流水(pipeline)”运算的架构,即初始除数和初始被除数可以连续进入除法器,无需等到上一对初始除数和初始被除数的数据彻底运算结束之后再输入下一对初始除数和初始被除数,提高了数据的处理速度。
另外,本发明提供的除法器不涉及任何IP核(intellectual property core,知识产权核),不但适用于FPGA(Field-Programmable Gate Array,现场可编程门阵列)芯片,还适用于定制化IC(integrated circuit,集成电路),可以当做驱动IC内部的IP核使用。
在一些实施例中,如图5所示,除法运算子单元21包括:分路单元211、处理单元212和计算单元213,分路单元211的每个输入端连接不同的处理单元212。
分路单元211包括至少一级第一判断模块2111(图5中以包括两级第一判断模块2111进行示意),上一级每个第一判断模块2111的两个输入端分别连接下一级第一判断模块2111的输出端,第一级判断模块的输出端连接商输出端和计算单元213。
其中,本领域技术人员应该明白,上一级第一判断模块2111的两个输入端分别连接有两个下一级第一判断模块2111,因此,后一级中第一判断模块2111的数量是前一级第一判断模块2111数量的二倍。
第一级判断模块的输出端输出的表征商即为除法运算子单元21输出的商。
处理单元212包括多个级联的第二判断模块2121,处理单元212的第一级第二判断模块2121的输出端连接分路单元211的最后一级第一判断模块2111的输入端,除第一级第二判断模块2121外,其他每级第二判断模块2121的输出端连接上一级第二判断模块2121的第二输入端;最后一级第二判断模块2121的第二输入端和第一输入端均用于输入表征商Q,其他每级第二判断模块2121的第一输入端用于输入表征商Q。
其中,本领域技术人员应该明白,分路单元211的最后一级第一判断模块2111的两个输入端各自连接一个处理单元212,因此,处理单元的个数是分路单元211的最后一级第一判断模块2111数量的二倍。
当然,每个处理单元212中包括的第二判断模块2121的级数可以相同也可以不同,图5中以相同进行示意但不做限定。
如图5所示,每个第一判断模块2111和第二判断模块2121的第三输入端和第四输入端分别用于输入被除数和除数倍数div_1-15,每个第一判断模块2111和第二判断模块2121输入的除数倍数不相同。
每个处理单元212中,多个级联的第二判断模块2121输入的除数倍数依次减小;分路单元211中,当前级第一判断模块2111输入的除数倍数小于与当前级第一判断模块2111的第一输入端连接的下一级第一判断模块2111或第二判断模块2121输入的除数倍数,大于与当前级第一判断模块2111的第二输入端连接的下一级第一判断模块2111或第二判断模块2121输入的除数倍数。
其中,本领域技术人员应该明白,只有在当前级第一判断模块2111的输入端连接下一级第一判断模块2111的情况下,当前级第一判断模块2111输入的除数倍数小于与当前级第一判断模块2111的第一输入端连接的下一级第一判断模块2111输入的除数倍数,大于与当前级第一判断模块2111的第二输入端连接的下一级第一判断模块2111输入的除数倍数;而在当前级第一判断模块2111的输出端连接处理单元212的第一级第二判断模块2121的情况下,当前级第一判断模块2111输入的除数倍数小于与当前级第一判断模块2111的第一输入端连接的第一级第二判断模块2121输入的除数倍数,大于与当前级第一判断模块2111的第二输入端连接的第一级第二判断模块2121输入的除数倍数。
也就是说,如图5所示,输入除数的八倍div_8的第一判断模块2111,其第二输入端以后连接的无论是第一判断模块2111还是第二判断模块2121,输入的除数倍数均小于八倍,只能在div_1-7中选取;第一输入端以后连接的无论是第一判断模块2111还是第二判断模块2121,输入的除数倍数均大于八倍,只能在div_9-15中选取。
同理,输入除数的四倍div_4的第一判断模块2111,其第二输入端以后连接第二判断模块2121,输入的除数倍数均小于四倍,只能在div_1-3中选取;第一输入端以后连接的第二判断模块2121,输入的除数倍数均大于四倍但小于八倍,只能在div_5-7中选取。
同理,输入除数的十二倍div_12的第一判断模块2111,其第二输入端以后连接第二判断模块2121,输入的除数倍数均小于十二倍但大于八倍,只能在div_9-12中选取;第一输入端以后连接的第二判断模块2121,输入的除数倍数均大于十二倍,只能在div_13-15中选取。
分路单元211中,在第一判断模块2111输入的被除数大于或等于该第一判断模块2111输入的除数倍数的情况下,第一判断模块2111用于从该第一判断模块2111的第一输入端输入信号,反之,从该第一判断模块2111的第二输入端输入信号。
也就是说,通过第一判断模块2111通过判断被除数与除数倍数的大小,确定是从第二输入端输入信号还是从第一输入端输入信号,不会第二输入端和第一输入端同时输入信号。
此处的反之,是指在被除数小于该判断模块输入的除数倍数的情况下。
处理单元212中,在第二判断模块2121输入的被除数大于或等于该第二判断模块2121输入的除数倍数的情况下,每一第二判断模块2121用于从该第二判断模块2121的第一输入端输入表征商Q,表征商Q等于该第二判断模块2121输入的除数的倍数M;反之,最后一级第二判断模块2121用于从该第二判断模块2121的第二输入端输入表征商Q,表征商Q等于该第二判断模块2121输入的除数的倍数减一,其余级第二判断模块2121用于从该第二判断模块2121的第二输入端输入信号。
也就是说,最后一级第二判断模块2121的两个输入端均会输入表征商Q,其他级第二判断模块2121只有第一输入端才会输入表征商Q。第一输入端输入的表征商Q等于除数的倍数M,第二输入端输入的表征商Q等于除数的倍数减一(M-1)。
计算单元213用于根据第一级第一判断模块的输出端输出的表征商Q,生成拼接后的被除数。
本发明实施例通过采用分路对比的方法确定i位宽的商,可以进一步提高计算效率。
在一些实施例中,如图2所示,级联的P个除法运算子单元21中,第O级除法运算子单元21_O连接第O级寄存器31_O,O按从P-2逐级减一的方式取值,第P级除法运算子单元21_P与数据预处理单元10连接。
在此基础上,计算单元获取的商等于表征商Q,位拼接后的被除数=[(计算单元213所在的除法运算子单元21输入的被除数-初始除数的Q倍)<<4]+初始被除数[4O-1:4O-4]其中,<<为左移运算符。
O为除法运算子单元21所处的级数,示例性的,当O=2时,初始被除数[4O-1:4O-4]是指初始被除数的[7:4]位。计算单元213将计算出的下一级的被除数传输至下一级除法运算子单元21。
该第一判断模块2111输入的除数倍数div_0~div_15的值:div_0为0,div_1~div_15分别对应初始除数的1~15倍,该数值由数据预处理单元10运算得出,依次传递给除法运算子单元21,而div_1~div_15的值对应图3中的除数分级数据总线divisor_level,该除数分级数据总线包括divisor_level1~divisor_level15,共计15根数据总线。
在一些实施例中,如图6所示,第一判断模块2111和第二判断模块2121均包括相互连接的比较器和多路选择器,比较器用于比较第三输入端和第四输入端输入的被除数和除数倍数;多路选择器用于在被除数大于或等于除数倍数的情况下从输出端输出第一输入端输入的信号,反之,从输出端输出第二输入端输入的信号。
此处的反之,是指在被除数小于除数倍数的情况下。
示例性的,比较器在被除数大于或等于除数倍数的情况下输出1,否则输出0,多路选择器如果输入1则从输出端输出第一输入端输入的信号,如果输入0,则从输出端输出第二输入端输入的信号。
在一些实施例中,i=4,N=15,P=2。
也就是说,除法器为8bit的除法器,每次获得4bit的商,设置有两个除法运算子单元21。
示例性的,如图7所示,分路单元211包括两级第一判断模块2111,第一级判断模块输入初始除数的八倍,与第一级判断模块的第二输入端连接的第二级分路模块一输入初始除数的四倍,与第一级判断模块的第一输入端连接的第二级分路模块二输入初始除数的十二倍。
包括四个处理单元212,处理单元212包括三个级联的第二判断模块2121,第一处理单元中,三个第二判断模块2121依次输入初始除数的三倍、二倍、一倍;第二处理单元中,三个第二判断模块2121依次输入初始除数的七倍、六倍、五倍;第三处理单元中,三个第二判断模块2121依次输入初始除数的十一倍、十倍、九倍;第四处理单元中,三个第二判断模块2121依次初始输入除数的十五倍、十四倍、十三倍。
第一处理单元连接第二级第一判断模块一(图7中第二级位于上边的第一判断模块2111)的第二输入端,第二处理单元连接第二级第一判断模块一的第一输入端;第三处理单元连接第二级第一判断模块二(图7中第二级位于下边的第一判断模块2111)的第二输入端,第四处理单元连接第二级第一判断模块二的第一输入端。
在一些实施例中,如图8所示,除法器包括:
使能信号端,连接至使能单元,用于控制数据预处理单元开始工作。
时钟信号端,连接至时钟单元,用于为除法器提供时钟信号。
复位信号端,连接至复位单元,用于对除法器中的各单元进行复位。
结束信号端,连接至结束单元,用于标记除法器结束工作。
初始被除数输入端,用于接收初始被除数。
初始除数输入端,用于接收初始除数。
商输出端,用于输出商。
余数输出端,用于输出余数。本发明实施例还提供一种除法器的运算方法,如图9所示,包括:
S10、读取阶段:读入初始除数和初始被除数,生成初始除数的M倍,输出N个除数倍数和被除数,M按从1~N逐级加一的方式取值,其中,初始除数非零,M为整数,N=2i-1,i为偶数。
S20、计算阶段:每次对应初始被除数的i位宽,根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数,输出i位宽的商,且将获取的余数向高一级移动i位宽与被除数的低一级i位宽位拼接以形成新的被除数并输出。
以流水的方式执行步骤S20P次,P=2j,j为自然数。例如,由多个级联的除法运算子单元21依次执行步骤S20。
其中,根据初始被除数的位宽不同,所需除法运算子单元21的数量也不同:P=初始被除数位宽/i。
S30、将每个计算阶段输出的i位宽的商进行位拼接并输出。
本发明实施例提供的除法器的运算方法的有益效果与除法器的有益效果相同,此处不再赘述。
在一些实施例中,一个时钟周期输入一组初始除数和初始被除数,读取阶段和计算阶段分别在一个时钟周期内完成。
也就是说,一个时钟周期完成数据的预处理,每次的计算阶段耗时一个时钟周期,若整个除法器包括2个除法运算子单元21,则三个时钟周期之后即可产生结果。由于每个时钟周期输入一组初始除数和初始被除数,因此,三个时钟周期后,每个时钟周期即可产生一个计算结果。
此处,单个时钟周期即可产生ibit商的结果,由于采用流水的电路架构,对于每个时钟周期来说,若干个除法运算子单元21并行运算,因此可实现单个时钟周期即可完成一次除法运算,数据处理速度快。本发明非常适用于对运算实时性要求较高的数字图像处理、数字信号处理以及数字通信等相关领域,尤其适用于运算量较大的批量除法运算。
以图1所示的8bit的除法器为例,在一些实施例中,数据预处理单元10主要实现数据的加载以及将初始除数进行分级处理;两个除法运算子单元21的功能是一致的,对各自输入端口所对应的除数倍数与被除数实现除法运算,获得4bit的商与余数;寄存器,将与其连接的除法运算子单元21所获得的4bit商延迟一个时钟,使下一级除法运算子单元21进行除法运算。
每次开始运算,初始被除数与初始除数预先加载至初始被除数输入端和初始除数输入端,使能信号端置位(输入开启信号)后即开始进行除法运算。使能信号端置位后,初始被除数与初始除数分别被加载进入数据预处理单元10,其后进行流水除法运算,除法运算的基本流程如下所示:
S1:数据预处理单元10:初始被除数与初始除数加载,并且对初始除数进行分级处理,即通过移位相加,同时获得初始除数的1~15倍的数据,采用div_1~div_15表示,即初始除数的分级数据。完成S1需要1个时钟周期,进入S2。
S2:第二级除法运算子单元21_2接收数据预处理单元10输出的被除数和初始除数的分级数据,并且通过图7所示的电路结构获得第二级除法运算子单元21_2所对应的4bit的商,并存储至寄存器31;产生的余数与初始被除数的低4bit拼接形成下一级的被除数,传递给下一级,即第一级除法运算子单元21_1。完成S2需要1个时钟周期,进入S3。
S3:第一级除法运算子单元21_1接收第二级除法运算子单元21_2输出的被除数和初始除数的分级数据,并且通过图7所示的电路结构获得第一级除法运算子单元21_1所对应的4bit的商,并且产生余数,结束信号端置位,将寄存器31中的4bit数据与第一级除法运算子单元21_1所对应的4bit商进行位拼接,由除法器的商输出端输出,而第一级除法运算子单元21_1所产生的余数由除法器的余数输出端输出。完成S3需要1个时钟周期,共计需要S1~S3三个步骤,实现1次除法运算。
因此,实现一次除法运算需要S1~S3共计3个步骤,对应3个时钟周期,但是每个步骤分别对应一个流水节点,每个流水节点对应一个时钟周期,因此对于每个流水节点来说,只需要一个时钟周期即可对应一次除法运算,因此,8bit除法器的仿真波形如图10所示,操作数(初始除数和初始被除数)可以连续加载进入除法器,每次加载的输入数据,需要经过三个时钟周期之后产生结果,操作数是连续加载的,而除法器的输出结果也是连续输出的,因此,本发明的除法器,延迟三个时钟周期输出计算结果,自输出结果开启,单个时钟周期即可输出一次除法运算结果的功能。
其中,第二级除法运算子单元21_2和第一级除法运算子单元21_1获取4bit商的过程如图11所示,在被除数大于或等于初始除数的八倍div_8的情况下,对比被除数与初始除数的十二倍div_12;反之,对比被除数与初始除数的四倍div_4。
在被除数大于或等于初始除数的十二div_12倍的情况下,对比被除数与初始除数的十五倍div_15,在被除数大于或等于初始除数的十五倍div_15的情况下,表征商Q=15;反之,对比被除数与初始除数的十四倍div_14;在被除数大于或等于初始除数的十四倍div_14的情况下,表征商Q=14;反之,对比被除数与初始除数的十三倍div_13;在被除数大于或等于初始除数的十三倍div_13的情况下,表征商Q=13;反之,表征商Q=12。
在被除数小于初始除数的十二倍div_12的情况下,对比被除数与初始除数的十一倍div_11,在被除数大于或等于初始除数的十一倍div_11的情况下,表征商Q=11;反之,对比被除数与初始除数的十倍div_10;在被除数大于或等于初始除数的十倍div_10的情况下,表征商Q=10;反之,对比被除数与初始除数的九倍div_9;在被除数大于或等于初始除数的九倍div_9的情况下,表征商Q=9;反之,表征商Q=8。
在被除数大于或等于初始除数的四倍div_4的情况下,对比被除数与初始除数的七倍div_7,在被除数大于或等于初始除数的七倍div_7的情况下,表征商Q=7;反之,对比被除数与初始除数的六倍div_6;在被除数大于或等于初始除数的六倍div_6的情况下,表征商Q=6;反之,对比被除数与初始除数的五倍div_5;在被除数大于或等于初始除数的五倍div_5的情况下,表征商Q=5;反之,表征商Q=4。
在被除数小于初始除数的四倍div_4的情况下,对比被除数与初始除数的三倍div_3,在被除数大于或等于初始除数的三倍div_3的情况下,表征商Q=3;反之,对比被除数与初始除数的二倍div_2;在被除数大于或等于初始除数的二倍div_2的情况下,表征商Q=2;反之,对比被除数与初始除数的一倍div_1;在被除数大于或等于初始除数的一倍div_1的情况下,表征商Q=1;反之,表征商Q=0。
获取的商等于表征商Q,位拼接后的被除数=[(输出表征商时的被除数-初始除数的Q倍)<<4]+初始被除数[3:0]。
当然,图11仅为一种示意过程,不做限定。
以图2所示的16bit的除法器为例,在一些实施例中,基于上文所示的运算算法,也可以将数据预处理单元10、四个除法运算子单元21以及三个寄存器31通过级联构成如图2所示的16bit除法器。各个模块的工作原理与上文所介绍的工作原理相同,只是位宽不同而已。16bit除法器的仿真波形如图12所示,在此不做赘述。
本发明实施例中对8bit与16bit的除法器进行了详细说明,也可基于同样的基本运算单元,配置成32bit以及64bit等的除法器,工作原理与上文中所介绍的完全一致,其结构图也与图1和图2所示的除法器类似,在此不做赘述。
示例性的:
如图13所示,以初始被除数=8’b1111_1011、初始除数=8’b0000_0011为例,对8bit除法器的工作原理进行具体示意:
初始数据经过数据预处理单元10,获得除数的分级参数div_1~div15。
处理后的数据经过第二级除法运算子单元21_2进行运算,参考图11,由于初始被除数≤div_15,因此Q=15,可知第二级除法运算子单元21_2的输出结果为:
余数为4’b0000,因此位拼接后传输至下一级的被除数=((4’b1111–4’b1111)<<4)+4’b1011=8’b0000_1011,商=4’b0101。
其中被除数8’b0000_1011传递给第一级除法运算子单元21_1;而商4’b0101寄存寄存器31。
对于第一级除法运算子单元21_1,被除数为8’b0000_1011,除数=8’b0000_0011,由于被除数≤div_3,因此执行Q=3,可知第一级除法运算子单元21_1的输出结果为:
被除数=((4’b1011–4’b1001)<<4)+4’b0000=8’b0010_0000,商=4’b0011。
数据经过第一级除法运算子单元21_1之后,整个除法运算结束,获得8bit除法器的商与余数:
商={4’b0101,4’b0011}=8’b0101_0011,余数=8’b0000_0010。
此处可以看出,第一级除法运算子单元21_1是整个除法器的最后一级,它输出的余数并不是整个除法器的余数,而是整个除法器的余数左移了4bit的结果,因此整个除法器的的余数只需要取8’b0010_0000的高4bit即可,即8’b0000_0010;而第二级除法运算子单元21_2不是整个除法器的最后一级,因此它所得出的余数,必须还得与原始被除数的后4bit进行拼接,以得到下一级的被除数。
第二级除法运算子单元21_2与第一级除法运算子单元21_1是完全相同的结构,包括输入输出端口以及内部的电路的逻辑结构,都是相同的,因此,对于整个除法器来说,其余数一定要取第一级除法运算子单元21_1的被除数的高4bit。
本发明实施例还提供一种电子设备,包括上述除法器,其有益效果与除法器的有益效果相同,此处不再赘述。
其中,本发明中的电子设备可以与外部设备进行通信交互。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (12)
1.一种除法器,其特征在于,包括:
数据预处理单元,用于读入初始除数和初始被除数,生成初始除数的M倍,M按从1~N逐级加一的方式取值,以获得N个除数倍数并输出,还用于输出被除数;其中,初始除数非零,M为整数,N=2i-1,i为偶数;
除法运算单元,包括级联的P个除法运算子单元,所述除法运算子单元依次对应初始被除数的i位宽,所述除法运算子单元用于根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数;还用于将获取的余数向高一级移动i位宽与初始被除数的低一级i位宽位拼接以形成下一级除法运算子单元的被除数并输出;P=2j,j为自然数;
寄存单元,包括级联的P-1个寄存器,除最后一级除法运算子单元外,每级除法运算子单元连接一个所述寄存器,所述寄存器用于将与所述寄存器连接的所述除法运算子单元输出的商和上一级寄存器输出的商进行位拼接并传输至下一级寄存器;
输出单元,用于对最后一级除法运算子单元输出的商和最后一级寄存器输出的商进行位拼接并输出。
2.根据权利要求1所述的除法器,其特征在于,所述除法运算子单元包括:分路单元、处理单元和计算单元,所述分路单元的每个输入端连接不同的所述处理单元;
所述分路单元包括至少一级第一判断模块,上一级每个第一判断模块的两个输入端分别连接下一级第一判断模块的输出端,第一级判断模块的输出端连接商输出端和所述计算单元;
所述处理单元包括多个级联的第二判断模块,所述处理单元的第一级第二判断模块的输出端连接所述分路单元的最后一级第一判断模块的输入端,除第一级第二判断模块外,其他每级第二判断模块的输出端连接上一级第二判断模块的第二输入端;最后一级第二判断模块的第二输入端和第一输入端均用于输入表征商Q,其他每级第二判断模块的第一输入端连接用于输入所述表征商Q;
每个所述第一判断模块和所述第二判断模块的第三输入端和第四输入端分别用于输入被除数和除数倍数;
每个所述处理单元中,多个级联的第二判断模块输入的除数倍数依次减小;所述分路单元中,当前级第一判断模块输入的除数倍数小于与当前级第一判断模块的第一输入端连接的下一级第一判断模块或第二判断模块输入的除数倍数,大于与当前级第一判断模块的第二输入端连接的下一级第一判断模块或第二判断模块输入的除数倍数;
所述分路单元中,在所述第一判断模块输入的被除数大于或等于该第一判断模块输入的除数倍数的情况下,所述第一判断模块用于从该第一判断模块的第一输入端输入信号,反之,从该第一判断模块的第二输入端输入信号;
所述处理单元中,在所述第二判断模块输入的被除数大于或等于该第二判断模块输入的除数倍数的情况下,每一所述第二判断模块用于从该第二判断模块的第一输入端输入表征商Q,所述表征商Q等于该第二判断模块输入的除数的倍数M;反之,最后一级第二判断模块用于从该第二判断模块的第二输入端输入表征商Q,所述表征商Q等于该第二判断模块输入的除数的倍数减一,其余级第二判断模块用于从该第二判断模块的第二输入端输入信号;
所述计算单元用于根据第一级第一判断模块的输出端输出的表征商Q,生成位拼接后的被除数。
3.根据权利要求2所述的除法器,其特征在于,级联的P个除法运算子单元中,第O级除法运算子单元连接第O级寄存器,O按从P-2逐级减一的方式取值,第P级除法运算子单元与所述数据预处理单元连接;
所述计算单元生成的位拼接后的被除数=[(所述计算单元所在的所述除法运算子单元输入的被除数-初始除数的Q倍)<<4]+初始被除数[4O-1:4O-4],其中,<<为左移运算符。
4.根据权利要求2所述的除法器,其特征在于,所述第一判断模块和所述第二判断模块均包括相互连接的比较器和多路选择器,所述比较器用于比较第三输入端和第四输入端输入的被除数和除数倍数;所述多路选择器用于在被除数大于或等于除数倍数的情况下从输出端输出第一输入端输入的信号,反之,从输出端输出第二输入端输入的信号。
5.根据权利要求2所述的除法器,其特征在于,i=4,N=15,P=2。
6.根据权利要求5所述的除法器,其特征在于,所述分路单元包括两级第一判断模块,第一级判断模块输入初始除数的八倍,与第一级判断模块的第二输入端连接的第二级分路模块一输入初始除数的四倍,与第一级判断模块的第一输入端连接的第二级分路模块二输入初始除数的十二倍;
包括四个所述处理单元,所述处理单元包括三个级联的第二判断模块,第一处理单元中,三个第二判断模块依次输入初始除数的三倍、二倍、一倍;第二处理单元中,三个第二判断模块依次输入初始除数的七倍、六倍、五倍;第三处理单元中,三个第二判断模块依次输入初始除数的十一倍、十倍、九倍;第四处理单元中,三个第二判断模块依次输入初始除数的十五倍、十四倍、十三倍;
所述第一处理单元连接第二级第一判断模块一的第二输入端,所述第二处理单元连接第二级第一判断模块一的第一输入端;所述第三处理单元连接第二级第一判断模块二的第二输入端,所述第四处理单元连接第二级第一判断模块二的第一输入端。
7.根据权利要求1所述的除法器,其特征在于,所述除法器还包括:使能单元,用于控制所述数据预处理单元开始工作;
和/或,
结束单元,用于标记所述除法器结束工作;
和/或,
复位单元,用于对所述除法器的各单元进行复位;
和/或,
时钟单元,用于为所述除法器提供时钟信号。
8.根据权利要求1所述的除法器,其特征在于,与所述数据预处理单元连接的除法运算子单元接收所述数据预处理单元输出的N个除数倍数和被除数,其他级除法运算子单元接收上一级除法运算子单元输出的N个除数倍数和被除数;
最后一级除法运算子单元输出的2i位宽的被除数中的高i位宽的数为所述除法运算单元最终输出的余数。
9.一种如权利要求1-8任一项所述的除法器的运算方法,其特征在于,所述运算方法包括:
读取阶段:读入初始除数和初始被除数,生成初始除数的M倍,输出N个除数倍数和被除数,M按从1~N逐级加一的方式取值,其中,初始除数非零,M为整数,N=2i-1,i为偶数;
包括P个计算阶段,每个计算阶段包括:每次对应初始被除数的i位宽,根据输入的N个除数倍数和被除数进行比较,获取i位宽的商和余数,输出i位宽的商,且将获取的余数向高一级移动i位宽与被除数的低一级i位宽位拼接以形成新的被除数并输出,P=2j,j为自然数;
将每个计算阶段输出的i位宽的商进行位拼接并输出。
10.根据权利要求9所述的运算方法,其特征在于,一个时钟周期输入一组初始除数和初始被除数,所述读取阶段和所述计算阶段分别在一个时钟周期内完成。
11.根据权利要求9所述的运算方法,其特征在于,i=4,N=15,P=2;
所述计算阶段包括:在被除数大于或等于初始除数的八倍的情况下,对比被除数与初始除数的十二倍;反之,对比被除数与初始除数的四倍;
在被除数大于或等于初始除数的十二倍的情况下,对比被除数与初始除数的十五倍,在被除数大于或等于初始除数的十五倍的情况下,表征商Q=15;反之,对比被除数与初始除数的十四倍;在被除数大于或等于初始除数的十四倍的情况下,表征商Q=14;反之,对比被除数与初始除数的十三倍;在被除数大于或等于初始除数的十三倍的情况下,表征商Q=13;反之,表征商Q=13;
在被除数小于初始除数的十二倍的情况下,对比被除数与初始除数的十一倍,在被除数大于或等于初始除数的十一倍的情况下,表征商Q=11;反之,对比被除数与初始除数的十倍;在被除数大于或等于初始除数的十倍的情况下,表征商Q=10;反之,对比被除数与初始除数的九倍;在被除数大于或等于初始除数的九倍的情况下,表征商Q=9;反之,表征商Q=8;
在被除数大于或等于初始除数的四倍的情况下,对比被除数与初始除数的七倍,在被除数大于或等于初始除数的七倍的情况下,表征商Q=7;反之,对比被除数与初始除数的六倍;在被除数大于或等于初始除数的六倍的情况下,表征商Q=6;反之,对比被除数与初始除数的五倍;在被除数大于或等于初始除数的五倍的情况下,表征商Q=5;反之,表征商Q=4;
在被除数小于初始除数的四倍的情况下,对比被除数与初始除数的三倍,在被除数大于或等于初始除数的三倍的情况下,表征商Q=3;反之,对比被除数与初始除数的二倍;在被除数大于或等于初始除数的二倍的情况下,表征商Q=2;反之,对比被除数与初始除数的一倍;在被除数大于或等于初始除数的一倍的情况下,表征商Q=1;反之,表征商Q=0;
获取的商等于表征商Q,位拼接后的被除数=[(输出表征商时的被除数-初始除数的Q倍)<<4]+初始被除数[3:0]。
12.一种电子设备,其特征在于,包括权利要求1-8任一项所述的除法器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810709734.5A CN108897523B (zh) | 2018-07-02 | 2018-07-02 | 一种除法器及其运算方法、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810709734.5A CN108897523B (zh) | 2018-07-02 | 2018-07-02 | 一种除法器及其运算方法、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108897523A CN108897523A (zh) | 2018-11-27 |
CN108897523B true CN108897523B (zh) | 2021-01-26 |
Family
ID=64347418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810709734.5A Expired - Fee Related CN108897523B (zh) | 2018-07-02 | 2018-07-02 | 一种除法器及其运算方法、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108897523B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783053A (zh) * | 2019-01-16 | 2019-05-21 | 中科亿海微电子科技(苏州)有限公司 | 一种fpga实现可变位宽除法的方法及装置 |
JP7036075B2 (ja) * | 2019-03-26 | 2022-03-15 | 日本電産株式会社 | 整数除算装置およびモータ制御装置 |
CN113254072B (zh) * | 2021-05-27 | 2023-04-07 | 上海阵量智能科技有限公司 | 数据处理器、数据处理方法、芯片、计算机设备及介质 |
CN116028013B (zh) * | 2023-02-20 | 2023-07-04 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0530936A1 (en) * | 1991-09-05 | 1993-03-10 | Cyrix Corporation | Method and apparatus for performing prescaled division |
CN1287307A (zh) * | 1999-06-04 | 2001-03-14 | 索尼株式会社 | 高基除法器及方法 |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
CN105955706A (zh) * | 2016-06-16 | 2016-09-21 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
CN106354473A (zh) * | 2015-07-16 | 2017-01-25 | 浙江大华技术股份有限公司 | 一种除法器和求商和余数的方法 |
CN107766031A (zh) * | 2017-11-14 | 2018-03-06 | 京东方科技集团股份有限公司 | 分段式除法器、分段式除法运算方法、以及电子设备 |
-
2018
- 2018-07-02 CN CN201810709734.5A patent/CN108897523B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0530936A1 (en) * | 1991-09-05 | 1993-03-10 | Cyrix Corporation | Method and apparatus for performing prescaled division |
CN1287307A (zh) * | 1999-06-04 | 2001-03-14 | 索尼株式会社 | 高基除法器及方法 |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
CN106354473A (zh) * | 2015-07-16 | 2017-01-25 | 浙江大华技术股份有限公司 | 一种除法器和求商和余数的方法 |
CN105955706A (zh) * | 2016-06-16 | 2016-09-21 | 武汉芯泰科技有限公司 | 一种除法器及除法运算方法 |
CN107766031A (zh) * | 2017-11-14 | 2018-03-06 | 京东方科技集团股份有限公司 | 分段式除法器、分段式除法运算方法、以及电子设备 |
Non-Patent Citations (1)
Title |
---|
高速除法器设计及ASIC实现;黄秀荪等;《微电子学与计算机》;20080205;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108897523A (zh) | 2018-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108897523B (zh) | 一种除法器及其运算方法、电子设备 | |
US7853636B2 (en) | Digital signal processing circuit having a pattern detector circuit for convergent rounding | |
US7865542B2 (en) | Digital signal processing block having a wide multiplexer | |
US7860915B2 (en) | Digital signal processing circuit having a pattern circuit for determining termination conditions | |
US7844653B2 (en) | Digital signal processing circuit having a pre-adder circuit | |
US7840627B2 (en) | Digital signal processing circuit having input register blocks | |
US7882165B2 (en) | Digital signal processing element having an arithmetic logic unit | |
US7849119B2 (en) | Digital signal processing circuit having a pattern detector circuit | |
US7853632B2 (en) | Architectural floorplan for a digital signal processing circuit | |
US7870182B2 (en) | Digital signal processing circuit having an adder circuit with carry-outs | |
US7853634B2 (en) | Digital signal processing circuit having a SIMD circuit | |
US20210349692A1 (en) | Multiplier and multiplication method | |
US20060206557A1 (en) | Arithmetic logic unit circuit | |
US9098332B1 (en) | Specialized processing block with fixed- and floating-point structures | |
US5023827A (en) | Radix-16 divider using overlapped quotient bit selection and concurrent quotient rounding and correction | |
CN111008003A (zh) | 数据处理器、方法、芯片及电子设备 | |
JP4883251B1 (ja) | 半導体集積回路及び指数算出方法 | |
CN111931441B (zh) | Fpga快速进位链时序模型的建立方法、装置以及介质 | |
CN209879493U (zh) | 乘法器 | |
Kafi et al. | An efficient design of FSM based 32-bit unsigned high-speed pipelined multiplier using Verilog HDL | |
US20140046996A1 (en) | Unified computation systems and methods for iterative multiplication and division, efficient overflow detection systems and methods for integer division, and tree-based addition systems and methods for single-cycle multiplication | |
CN110647307A (zh) | 数据处理器、方法、芯片及电子设备 | |
Thamizharasi | Design and implementation of efficient carry select adder using novel logic algorithm | |
JPH07141148A (ja) | パイプライン並列乗算器 | |
CN105071928A (zh) | 一种基于fpga的大素数暨大素数族的快速生成方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210126 |