CN105955706B - 一种除法器及除法运算方法 - Google Patents
一种除法器及除法运算方法 Download PDFInfo
- Publication number
- CN105955706B CN105955706B CN201610435062.4A CN201610435062A CN105955706B CN 105955706 B CN105955706 B CN 105955706B CN 201610435062 A CN201610435062 A CN 201610435062A CN 105955706 B CN105955706 B CN 105955706B
- Authority
- CN
- China
- Prior art keywords
- jth
- divisor
- value
- initial
- quotient
- 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
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)
- Executing Machine-Instructions (AREA)
Abstract
本发明公开了一种除法器及除法运算方法,属于数字信号处理电路技术领域,所述除法器采用基数N算法,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于‑N小于等于N;所述除法器包括:符号位确定单元(1),用于判定初始被除数与初始除数的商值结果的符号位;除数倍数计算单元(2),用于计算非零初始除数的数值位的P倍,以获得第P个除数倍数值;令P依次在区间1~N内取整数值,以获得N个除数倍数值;迭代计算单元(3),用于对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,以获得完整商值结果。实现了在除法器迭代计算时灵活地选择每次产生的商的位数,在快速运算的同时不占用过多的硬件面积。
Description
技术领域
本发明涉及数字信号处理电路技术领域,尤其涉及一种除法器及除法运算方法。
背景技术
随着现代信息处理技术的迅猛发展,除法器作为微处理器的一个重要运算部件,在电子电路设计中得到了广泛应用。除法器的运算速度、性能、功耗等都会影响到整个微处理器的性能,所以提高除法器的性能是提高整个微处理器性能的关键因素。
除法器的硬件实现方法有多种:一、使用阵列除法器,可以在一个时钟周期内做完整个除法运算,但是硬件面积大,逻辑延时长;二、用乘法器实现,先通过求除数的倒数,然后乘上被除数,这种方法主要应用在浮点运算中,是一种近似算法,但其运算精度受到位宽的限制;三、循环相减的多周期除法器,该方法在硬件面积和运算速度上有所优化,且现在大多数通用除法器都基于这种基本算法原理开发,但是这种除法器通常需要经过多次迭代计算,且每次迭代计算只产生一位商数字,若被除数与除数相差较大,则需要进行较多次的迭代计算,耗时较长。
发明内容
本发明针对现有技术中存在的,循环相减的多周期除法器每次迭代计算只产生一位商数字,在被除数与除数相差较大时,需要耗费大量时间计算获得完整的商值,而无法实现硬件面积与运算速度的有效折衷的技术问题,提供了一种除法器及除法运算方法,可根据实际应用中硬件面积与运算速度的要求,通过选取不同的N值,灵活地选择每次迭代计算产生的商的位数,且在每次迭代计算时至少产生三位商数字,缩短了除法的计算时间。该除法器能够实现在除法运算时的硬件面积与运算速度的有效折衷,即在快速运算的同时不占用过多的硬件面积。
一方面,本发明提供了一种除法器,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;所述除法器包括:
符号位确定单元,用于读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;
除数倍数计算单元,用于读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值,其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;
迭代计算单元,用于读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定。
可选的,所述除数倍数计算单元包括:
第一除数倍数计算模块,用于当P取值为2的m次方倍时,通过将所述初始除数的数值位左移m位,以获得第一组除数倍数值;其中,m为大于等于0小于等于i的整数;
第二除数倍数计算模块,用于当P取值为大于等于3的奇数时,通过将所述第一组除数倍数值与所述初始除数的数值位进行加、减法运算,以获得第二组除数倍数值;
第三除数倍数计算模块,用于当P取值为偶数且不为2的m次方倍时,通过将所述第二组除数倍数值进行移位,以获得第三组除数倍数值;
其中,所述第一组除数倍数值、所述第二组除数倍数值和所述第三组除数倍数值组成所述N个除数倍数值。
可选的,所述迭代计算单元包括:
迭代控制模块,用于控制j依次在区间1~K内取值;还用于当j取定一值时,控制P依次在区间1~N内取值;
被除数移位模块,用于当j大于等于2且小于等于K时,基于所述原始被除数的数值位确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数;
余数获取模块,用于当j取值为1时,对所述原始被除数的数值位与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;还用于当j在区间2~K内取定一值时,对所述第j移位被除数与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;
部分商值确定模块,用于当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,获得第j比较结果,并基于所述第j比较结果确定第j部分商值;其中,所述第j部分商值的二进制位数为i位;
完整商值确定模块,用于当j依次在区间1~K内取值时,将第j部分商值从寄存器的高位到低位依次写入商值寄存器中,并添加所述商值结果的符号位,以获得完整商值结果。
可选的,所述被除数移位模块具体用于当j大于等于2且小于等于K时,且在进行第j次迭代计算时,基于第j-1次迭代计算获得的第j-1比较结果,确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数。
可选的,所述部分商值确定模块具体用于当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,当所述N个第j余数中第一个第j余数小于零时,确定第j部分商值为零;或者
当P大于等于2,在所述N个第j余数中第P-1个第j余数大于等于零、且第P个第j余数小于零时,确定第j部分商值为P-1。
另一方面,本发明还提供了一种除法运算方法,应用于除法器中,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;所述方法包括以下步骤:
S1、读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;
S2、读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值;其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;
S3、读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定。
可选的,所述步骤S2包括:
当P取值为2的m次方倍时,通过将所述初始除数的数值位左移m位,以获得第一组除数倍数值;其中,m为大于等于0小于等于i的整数;
当P取值为大于等于3的奇数时,通过将所述第一组除数倍数值与所述初始除数的数值位进行加、减法运算,以获得第二组除数倍数值;
当P取值为偶数且不为2的m次方倍时,通过将所述第二组除数倍数值进行移位,以获得第三组除数倍数值;其中,所述第一组除数倍数值、所述第二组除数倍数值、所述第三组除数倍数值和所述单倍除数值组成所述N个除数倍数值。
可选的,所述步骤S3包括:
控制j依次在区间1~K内取值;并且当j取定一值时,控制P依次在区间1~N内取值;
当j大于等于2且小于等于K时,基于所述原始被除数的数值位确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数;
当j取值为1时,对所述原始被除数的数值位与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;并且当j在区间2~K内取定一值时,对所述第j移位被除数与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;
当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,获得第j比较结果,并基于所述第j比较结果确定第j部分商值;其中,所述第j部分商值的二进制位数为i位;
当j依次在区间1~K内取值时,将第j部分商值从寄存器的高位到低位依次写入商值寄存器中,并添加所述商值结果的符号位,以获得完整商值结果。
可选的,当j大于等于2且小于等于K时,且在进行第j次迭代计算时,基于第j-1次迭代计算获得的第j-1比较结果,确定第j迭代被除数。
可选的,当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,当所述N个第j余数中第一个第j余数小于零时,确定第j部分商值为零;或者当P大于等于2,在所述N个第j余数中第P-1个第j余数大于等于零、且第P个第j余数小于零时,确定第j部分商值为P-1。
本发明中提供的一个或多个技术方案,至少具有如下技术效果或优点:
由于在本发明中,除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;该除法器包括:符号位确定单元,用于读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;除数倍数计算单元,用于读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值,其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;迭代计算单元,用于读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定。也就是说,本除法器可根据实际应用中硬件面积与运算速度的要求,通过选取不同的N值,灵活地选择每次产生的商的位数,且在每次迭代计算时产生至少三位商数字,缩短了除法的计算时间。有效地解决了现有技术中循环相减的多周期除法器每次迭代计算只产生一位商数字,在被除数与除数相差较大时,需要耗费大量时间计算获得完整的商值,而无法实现硬件面积与运算速度的有效折衷的技术问题,实现了除法器在除法运算时的硬件面积与运算速度的有效折衷,能够在快速运算的同时不占用过多的硬件面积。另外,本方案除法器适用于在专用集成电路(ASIC,Application Specific Integrated Circuit)上实现。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。
图1为本发明实施例提供的一种除法器结构示意图;
图2为本发明实施例提供的另一种除法器结构示意图;
图3为本发明实施例提供的一种除法运算方法流程图。
具体实施方式
本发明实施例通过提供一种除法器,解决了现有技术中存在的,循环相减的多周期除法器每次迭代计算只产生一位商数字,在被除数与除数相差较大时,需要耗费大量时间计算获得完整的商值,而无法实现硬件面积与运算速度的有效折衷的技术问题。可根据实际应用中硬件面积与运算速度的要求,通过选取不同的N值,灵活地选择每次迭代计算产生的商的位数,且在每次迭代计算时至少产生三位商数字,缩短了除法的计算时间。该除法器能够实现在除法运算时的硬件面积与运算速度的有效折衷,即在快速运算的同时不占用过多的硬件面积。
本发明实施例的技术方案为解决上述技术问题,总体思路如下:
本发明实施例提供了一种除法器,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;所述除法器包括:符号位确定单元,用于读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;除数倍数计算单元,用于读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值,其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;迭代计算单元,用于读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定。
可见,在本发明方案中的除法器可根据实际应用中硬件面积与运算速度的要求,通过选取不同的N值,灵活地选择每次产生的商的位数,且在每次迭代计算时产生至少三位商数字,缩短了除法的计算时间。有效地解决了现有技术中循环相减的多周期除法器每次迭代计算只产生一位商数字,在被除数与除数相差较大时,需要耗费大量时间计算获得完整的商值,而无法实现硬件面积与运算速度的有效折衷的技术问题,实现了除法器在除法运算时的硬件面积与运算速度的有效折衷,能够在快速运算的同时不占用过多的硬件面积。另外,本方案除法器适用于在专用集成电路(ASIC,Application Specific IntegratedCircuit)上实现。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
实施例一
请参考图1,本发明实施例提供了一种除法器,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;所述除法器包括:
符号位确定单元1,用于读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;
具体的,符号位确定单元1读取所述初始被除数的最高位和所述初始除数的最高位,并判断所述初始被除数的最高位和所述初始除数的最高位分别为0或1;当所述初始被除数的最高位为0时,确定所述初始被除数为负数,当所述初始被除数的最高位为1时,确定所述初始被除数为正数,当所述初始除数的最高位为0时,确定所述初始除数为负数,当所述初始除数的最高位为1时,确定所述初始除数为正数;进一步,当所述初始被除数和所述初始除数同为正数或负数时,确定所述初始被除数与所述初始除数的商值结果的符号位为1,当所述初始被除数和所述初始除数一个为正数、一个为负数时,确定所述初始被除数与所述初始除数的商值结果的符号位为0。
除数倍数计算单元2,用于读入初始除数的数值位Ds,并计算初始除数的数值位Ds的P倍,以获得第P个除数倍数值P×Ds,其中,初始除数的数值位Ds非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;
例如,所述除法器采用基数8算法,则N=8且i=3,P依次在区间1~8内取值,除数倍数计算单元2读入初始除数的数值位Ds,在判断确定初始除数的数值位Ds非零时,依次计算获得初始除数的数值位Ds的1~8倍(即:Ds,2×Ds,3×Ds,...,8×Ds)。
迭代计算单元3,用于读入初始被除数的数值位Dd和所述N个除数倍数值(P×Ds,P依次在区间1~N内取值),并对初始被除数的数值位Dd和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和初始被除数的数值位Dd的二进制位数Q而定。具体的,K=Q/i,当Q与i相除后存在小数点后的余数时直接进位。
具体的,仍以基数8算法为例,迭代计算单元3读入初始被除数的数值位Dd和初始除数的数值位Ds的1~8倍(Ds,2×Ds,3×Ds,...,8×Ds),对其进行K次迭代计算,每次迭代计算获得3位的部分商值。其中,当初始被除数的数值位Dd的二进制位数为15位时,在每次迭代计算获得3位的部分商值时,需要进行K=15/3=5次迭代计算;当初始被除数的数值位Dd的二进制位数为31位时,在每次迭代计算获得3位的部分商值时,需要进行K=31/3≈11次迭代计算。当然,在具体实施过程中,当初始被除数的数值位Dd的位数较大时,可选择不同的N值,来减小迭代次数,如选择N=31,则i=5,在每次迭代计算获得5位的部分商值时,对于上述31位的初始被除数的数值位Dd而言,则只需进行K=31/5≈7次迭代计算即可,相比于N=8时,迭代计算的次数减少了4次,缩短了运算时间。
需要指出的是,本方案也适用于无符号数之间的除法运算,当初始被除数和初始除数为无符号数时,初始被除数和初始除数各自的二进制位数即分别为二者的数值位。
进一步,在具体实施过程中,在进行除数倍数的计算时,为了避免或减少使用乘法器,并通过移位器和加法器来计算除数倍数,从而减少硬件资源消耗,请参考图2,除数倍数计算单元2包括:
第一除数倍数计算模块21,用于当P取值为2的m次方倍时,通过将初始除数的数值位Ds左移m位,以获得第一组除数倍数值;其中,m为大于等于0小于等于i的整数;
第二除数倍数计算模块22,用于当P取值为大于等于3的奇数时,通过将所述第一组除数倍数值与所述初始除数的数值位Ds进行加、减法运算,以获得第二组除数倍数值;
第三除数倍数计算模块23,用于当P取值为偶数且不为2的m次方倍时,通过将所述第二组除数倍数值进行移位以获得第三组除数倍数值;
其中,所述第一组除数倍数值、所述第二组除数倍数值和所述第三组除数倍数值组成所述N个除数倍数值。
具体的,仍以所述除法器采用基数8算法为例,P依次在区间1~8内取值。m为大于等于0小于等于3的整数,P取值为20=1、21=2、22=4、23=8(即2的m次方倍)时,将Ds左移0位、1位、2位或3位来获得Ds、2×Ds、4×Ds、8×Ds(即所述第一组除数倍数值);当P取值为3、5、7(即大于等于3的奇数)时,通过2×Ds+Ds、4×Ds-Ds、8×Ds-Ds来获得3×Ds、5×Ds、7×Ds(即所述第二组除数倍数值);当P取值为6(即偶数且不为2的m次方倍)时,通过对3×Ds进行移位来获得6×Ds(即所述第三组除数倍数值)。
在具体实施过程中,仍请参考图2,迭代计算单元3包括:
迭代控制模块31,用于控制j依次在区间1~K内取值;还用于当j取定一值时,控制P依次在区间1~N内取值;
被除数移位模块32,用于当j大于等于2且小于等于K时,基于所述原始被除数的数值位确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数;
余数获取模块33,用于当j取值为1时,对所述原始被除数的数值位与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;还用于当j在区间2~K内取定一值时,对所述第j移位被除数与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;
部分商值确定模块34,用于当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,获得第j比较结果,并基于所述第j比较结果确定第j部分商值;其中,所述第j部分商值的二进制位数为i位;
完整商值确定模块35,用于当j依次在区间1~K内取值时,将第j部分商值从寄存器的高位到低位依次写入商值寄存器中,并添加所述商值结果的符号位,以获得完整商值结果。
其中,当j大于等于2且小于等于K时,在进行第j次迭代计算时,基于第j-1次迭代计算获得的第j-1比较结果,确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数。
具体的,在j等于2时,1)当所述N个第一余数中第一个第一余数小于零时,重新进行第一次迭代计算;2)当P大于等于2,在所述N个第一余数中第P-1个第j-1余数大于等于零、且第P个第一余数小于零时,确定第二部分商值为第P-1个第一余数。
在j大于等于3时,可通过以下两种实施方案来确定第j迭代被除数:1)当所述N个第j-1余数中第一个第j-1余数小于零时,确定第j迭代被除数等于第j-1迭代被除数;2)当P大于等于2,在所述N个第j-1余数中第P-1个第j-1余数大于等于零、且第P个第j-1余数小于零时,确定第j部分商值为第P-1个第j-1余数。
进一步,在具体实施过程中,当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,当所述N个第j余数中第一个第j余数小于零时,确定第j部分商值为零;或者当P大于等于2,在所述N个第j余数中第P-1个第j余数大于等于零、且第P个第j余数小于零时,确定第j部分商值为P-1。
具体的,以所述除法器采用基数8算法、原始被除数的数值位Dd为16位有符号数为例,可确定在进行除法运算时的迭代计算次数K为5。迭代计算单元3的处理流程如下:
(1)在进行第一次迭代计算时:
余数获取模块33对原始被除数的数值位Dd与第P个除数倍数值求差,获得第P个第一余数,令P依次在区间1~8内取值,以获得8个第一余数(Re11~Re18),其中,Re11=Dd-Ds,Re12=Dd-2×Ds,Re13=Dd-3×Ds,...,Re18=Dd-8×Ds;
部分商值确定模块34依次将8个第一余数(Re11~Re18)与零进行比较,获得第一比较结果;当所述第一比较结果表明第1个第一余数Re11小于零时,确定第一次迭代计算获得的第一部分商值为0(二进制表示为000);或者当该比较结果表明第4个第一余数Re14小于零且第3个第一余数Re13大于等于零时,确定第一次迭代计算获得的第一部分商值为3(二进制表示为011);或者当该比较结果表明第7个第一余数Re17小于零且第6个第一余数Re16大于等于零时,确定第一次迭代计算获得的第一部分商值为6(二进制表示为110);...;其它情况依次类推,这里不再一一赘述。
(2)在进行第二次迭代计算时:
被除数移位模块32基于第一次迭代计算的第一比较结果,确定第二迭代被除数。当所述第一比较结果表明第1个第一余数Re11小于0时,重新进行第一次迭代计算;或者当该比较结果表明第4个第一余数Re14小于零且第3个第一余数Re13大于等于零时,确定第二次迭代计算时的第二迭代被除数Dd2’等于Re13;或者当该比较结果表明第7个第一余数Re17小于零且第6个第一余数Re16大于等于零时,确定第二次迭代计算时的第二迭代被除数Dd2’等于Re16;...;其它情况依次类推,这里不再一一赘述;进一步,被除数移位模块32将第二迭代被除数Dd2’左移3位,获得第二移位被除数Dd2”;
余数获取模块33对第二移位被除数Dd2”与第P个除数倍数值求差,获得第P个第二余数,令P依次在区间1~8内取值,以获得8个第二余数(Re21~Re28),其中,Re21=Dd2”-Ds,Re22=Dd2”-2×Ds,Re23=Dd2”-3×Ds,...,Re28=Dd2”-8×Ds;
部分商值确定模块34依次将8个第二余数(Re21~Re28)与零进行比较,获得第二比较结果;当所述第二比较结果表明第1个第二余数Re21小于零时,确定第二次迭代计算获得的第二部分商值为0(二进制表示为000);或者当该比较结果表明第4个第二余数Re24小于零且第3个第二余数Re23大于等于零时,确定第二次迭代计算获得的第二部分商值为3(二进制表示为011);或者当该比较结果表明第7个第二余数Re27小于零且第6个第二余数Re26大于等于零时,确定第二次迭代计算获得的第二部分商值为6(二进制表示为110);...;其它情况依次类推,这里不再一一赘述;
(3)第三至第五次迭代计算获得第三至第五部分商值的流程可依照上述第二次迭代计算流程进行类推,这里不再一一赘述;
(4)完整商值确定模块35将5次迭代计算获得的第一至第五部分商值,从寄存器的高位到低位依次写入商值寄存器中,以获得完整商值结果。例如,第一部分商值为“001”、第二部分商值为“011”、第三部分商值为“101”、第四部分商值为“001”、第五部分商值为“100”,则所述完整的商值结果的数值位二进制序列为“001011101001100”。进一步,将通过符号位确定单元1确定的商值结果的符号位添加在该二进制序列的最高位,即获得完整商值结果。
在具体实施过程中,在进行除法运算时,为了采用本方案除法器对被除数和除数进行除法计算,需满足被除数和除数的商大于等于-N小于等于N的条件,若被除数和除数的商不满足此条件,可通过将被除数或除数进行移位,以使获得满足此条件的初始被除数和初始除数,并在通过初始被除数和初始除数获得商值结果后,将该商值结果进行逆向移位,以获得移位前的被除数和除数的商。
综上所述,在本发明方案中的除法器可根据实际应用中硬件面积与运算速度的要求,通过选取不同的N值,灵活地选择每次产生的商的位数,且在每次迭代计算时产生至少三位商数字,缩短了除法的计算时间。有效地解决了现有技术中循环相减的多周期除法器每次迭代计算只产生一位商数字,在被除数与除数相差较大时,需要耗费大量时间计算获得完整的商值,而无法实现硬件面积与运算速度的有效折衷的技术问题,实现了除法器在除法运算时的硬件面积与运算速度的有效折衷,能够在快速运算的同时不占用过多的硬件面积。另外,本方案除法器适用于在专用集成电路(ASIC,Application SpecificIntegrated Circuit)上实现。
实施例二
基于同一发明构思,请参考图3,本发明实施例还提供了一种除法运算方法,应用于除法器中,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;所述方法包括以下步骤:
S1、读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;
S2、读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值;其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;
S3、读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定。
在具体实施过程中,所述步骤S2包括:
当P取值为2的m次方倍时,通过将所述初始除数的数值位左移m位,以获得第一组除数倍数值;其中,m为大于等于0小于等于i的整数;
当P取值为大于等于3的奇数时,通过将所述第一组除数倍数值与所述初始除数的数值位进行加、减法运算,以获得第二组除数倍数值;
当P取值为偶数且不为2的m次方倍时,通过将所述第二组除数倍数值进行移位,以获得第三组除数倍数值;
其中,所述第一组除数倍数值、所述第二组除数倍数值、所述第三组除数倍数值和所述单倍除数值组成所述N个除数倍数值。
在具体实施过程中,所述步骤S3包括:
控制j依次在区间1~K内取值;并且当j取定一值时,控制P依次在区间1~N内取值;
当j大于等于2且小于等于K时,基于所述原始被除数的数值位确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数;
当j取值为1时,对所述原始被除数的数值位与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;并且当j在区间2~K内取定一值时,对所述第j移位被除数与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;
当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,获得第j比较结果,并基于所述第j比较结果确定第j部分商值;其中,所述第j部分商值的二进制位数为i位;
当j依次在区间1~K内取值时,将第j部分商值从寄存器的高位到低位依次写入商值寄存器中,并添加所述商值结果的符号位,以获得完整商值结果。
在具体实施过程中,
当j大于等于2且小于等于K时,且在进行第j次迭代计算时,基于第j-1次迭代计算获得的第j-1比较结果,确定第j迭代被除数。
在具体实施过程中,当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,当所述N个第j余数中第一个第j余数小于零时,确定第j部分商值为零;或者
当P大于等于2,在所述N个第j余数中第P-1个第j余数大于等于零、且第P个第j余数小于零时,确定第j部分商值为P-1。
根据上面的描述,上述除法运算方法应用于上述除法器中,所以,该除法运算方法与上述除法器的一个或多个实施例一致,在此就不再一一赘述了。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.一种除法器,其特征在于,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;所述除法器包括:
符号位确定单元(1),用于读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;
除数倍数计算单元(2),用于读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值,其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;
迭代计算单元(3),用于读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定;
其中,所述迭代计算单元(3)包括:
迭代控制模块(31),用于控制j依次在区间1~K内取值;还用于当j取定一值时,控制P依次在区间1~N内取值;
被除数移位模块(32),用于当j大于等于2且小于等于K时,基于所述初始被除数的数值位确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数;
余数获取模块(33),用于当j取值为1时,对所述初始被除数的数值位与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;还用于当j在区间2~K内取定一值时,对所述第j移位被除数与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;
部分商值确定模块(34),用于当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,获得第j比较结果,并基于所述第j比较结果确定第j部分商值;其中,所述第j部分商值的二进制位数为i位;
完整商值确定模块(35),用于当j依次在区间1~K内取值时,将第j部分商值从寄存器的高位到低位依次写入商值寄存器中,并添加所述商值结果的符号位,以获得完整商值结果。
2.如权利要求1所述的除法器,其特征在于,所述除数倍数计算单元(2)包括:
第一除数倍数计算模块(21),用于当P取值为2的m次方倍时,通过将所述初始除数的数值位左移m位,以获得第一组除数倍数值;其中,m为大于等于0小于等于i的整数;
第二除数倍数计算模块(22),用于当P取值为大于等于3的奇数时,通过将所述第一组除数倍数值与所述初始除数的数值位进行加、减法运算,以获得第二组除数倍数值;
第三除数倍数计算模块(23),用于当P取值为偶数且不为2的m次方倍时,通过将所述第二组除数倍数值进行移位,以获得第三组除数倍数值;
其中,所述第一组除数倍数值、所述第二组除数倍数值和所述第三组除数倍数值组成所述N个除数倍数值。
3.如权利要求1所述的除法器,其特征在于,所述被除数移位模块(32)具体用于当j大于等于2且小于等于K时,且在进行第j次迭代计算时,基于第j-1次迭代计算获得的第j-1比较结果,确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数。
4.如权利要求1所述的除法器,其特征在于,所述部分商值确定模块(34)具体用于当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,当所述N个第j余数中第一个第j余数小于零时,确定第j部分商值为零;或者
当P大于等于2,在所述N个第j余数中第P-1个第j余数大于等于零、且第P个第j余数小于零时,确定第j部分商值为P-1。
5.一种除法运算方法,应用于除法器中,所述除法器采用基数N算法,其中,N为2i且i为大于等于3的正整数,初始被除数和初始除数的商大于等于-N小于等于N;其特征在于,所述方法包括以下步骤:
S1、读入初始被除数的符号位和初始除数的符号位,分别判断所述初始被除数和所述初始除数为正数或负数,获得一判断结果,并基于所述判断结果确定所述初始被除数与所述初始除数的商值结果的符号位;
S2、读入初始除数的数值位,并计算所述初始除数的数值位的P倍,以获得第P个除数倍数值;其中,所述初始除数非零,P为整数;令P依次在区间1~N内取值,以获得N个除数倍数值;
S3、读入初始被除数的数值位和所述N个除数倍数值,并对所述初始被除数的数值位和所述N个除数倍数值进行K次迭代计算,每次迭代计算获得i位的部分商值,在K次迭代计算之后,获得K组i位的部分商值,并基于所述商值结果的符号位和所述K组i位的部分商值获得完整商值结果;其中,K为正整数且依据i值和所述初始被除数的二进制位数而定;
所述步骤S3具体包括:
控制j依次在区间1~K内取值;并且当j取定一值时,控制P依次在区间1~N内取值;
当j大于等于2且小于等于K时,基于所述初始被除数的数值位确定第j迭代被除数,并将所述第j迭代被除数左移i位,获得第j移位被除数;
当j取值为1时,对所述初始被除数的数值位与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;并且当j在区间2~K内取定一值时,对所述第j移位被除数与第P个除数倍数值求差,获得第P个第j余数,并当P依次在区间1~N内取值完成后,获得N个第j余数;
当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,获得第j比较结果,并基于所述第j比较结果确定第j部分商值;其中,所述第j部分商值的二进制位数为i位;
当j依次在区间1~K内取值时,将第j部分商值从寄存器的高位到低位依次写入商值寄存器中,并添加所述商值结果的符号位,以获得完整商值结果。
6.如权利要求5所述的除法运算方法,其特征在于,所述步骤S2包括:
当P取值为2的m次方倍时,通过将所述初始除数的数值位左移m位,以获得第一组除数倍数值;其中,m为大于等于0小于等于i的整数;
当P取值为大于等于3的奇数时,通过将所述第一组除数倍数值与所述初始除数的数值位进行加、减法运算,以获得第二组除数倍数值;
当P取值为偶数且不为2的m次方倍时,通过将所述第二组除数倍数值进行移位,以获得第三组除数倍数值;
其中,所述第一组除数倍数值、所述第二组除数倍数值、所述第三组除数倍数值组成所述N个除数倍数值。
7.如权利要求6所述的除法运算方法,其特征在于,
当j大于等于2且小于等于K时,且在进行第j次迭代计算时,基于第j-1次迭代计算获得的第j-1比较结果,确定第j迭代被除数。
8.如权利要求6所述的除法运算方法,其特征在于,当j在区间1~K内取定一值、且获得N个第j余数后,依次将所述N个第j余数与零进行比较,当所述N个第j余数中第一个第j余数小于零时,确定第j部分商值为零;或者当P大于等于2,在所述N个第j余数中第P-1个第j余数大于等于零、且第P个第j余数小于零时,确定第j部分商值为P-1。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610435062.4A CN105955706B (zh) | 2016-06-16 | 2016-06-16 | 一种除法器及除法运算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610435062.4A CN105955706B (zh) | 2016-06-16 | 2016-06-16 | 一种除法器及除法运算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105955706A CN105955706A (zh) | 2016-09-21 |
CN105955706B true CN105955706B (zh) | 2018-06-26 |
Family
ID=56905930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610435062.4A Active CN105955706B (zh) | 2016-06-16 | 2016-06-16 | 一种除法器及除法运算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105955706B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10209959B2 (en) * | 2016-11-03 | 2019-02-19 | Samsung Electronics Co., Ltd. | High radix 16 square root estimate |
CN107766031B (zh) | 2017-11-14 | 2020-06-19 | 京东方科技集团股份有限公司 | 分段式除法器、分段式除法运算方法、以及电子设备 |
CN108334305B (zh) * | 2018-01-18 | 2020-06-30 | 上海达梦数据库有限公司 | 一种除法运算方法、装置、设备和存储介质 |
CN108897523B (zh) * | 2018-07-02 | 2021-01-26 | 京东方科技集团股份有限公司 | 一种除法器及其运算方法、电子设备 |
CN111610960B (zh) * | 2018-08-30 | 2022-09-27 | 合肥工业大学 | 一种基于lms的除法器模块及其求除方法 |
CN109992241B (zh) * | 2019-03-22 | 2020-12-08 | 广州大学 | Dna分子螺旋除法器的构建方法及dna分子螺旋除法器 |
CN110069237B (zh) * | 2019-04-19 | 2021-03-26 | 哈尔滨理工大学 | 一种基于查找表的基-8除法器信号处理方法 |
CN110851110B (zh) * | 2019-11-15 | 2022-04-01 | 北京智芯微电子科技有限公司 | 无除法器的除三电路 |
CN111309286B (zh) * | 2020-01-20 | 2023-03-28 | 西安电子科技大学 | 一种数字求模运算的数据处理方法、数字求模运算电路 |
CN111813372B (zh) * | 2020-07-10 | 2021-05-18 | 上海擎昆信息科技有限公司 | 一种高精度低时延实现32位整数除法的方法及装置 |
CN111813375A (zh) * | 2020-08-14 | 2020-10-23 | Oppo广东移动通信有限公司 | 求模运算处理方法及相关产品 |
CN112181357A (zh) * | 2020-09-02 | 2021-01-05 | 大连理工大学 | 除法运算方法、装置、电子设备和介质 |
CN113625992B (zh) * | 2021-06-28 | 2023-07-14 | 山东云海国创云计算装备产业创新中心有限公司 | 基于除法器的任务处理方法、装置、除法器及存储介质 |
CN113721885B (zh) * | 2021-09-06 | 2023-10-03 | 深圳智微电子科技有限公司 | 一种基于cordic算法的除法器 |
CN116028013B (zh) * | 2023-02-20 | 2023-07-04 | 辰星(天津)自动化设备有限公司 | 一种fpga除法运算的优化方法、装置、除法器和介质 |
CN116088935B (zh) * | 2023-04-06 | 2023-06-16 | 坎德拉(深圳)新能源科技有限公司 | 应用于磁轴承转子参数辨识的数据的处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1287307A (zh) * | 1999-06-04 | 2001-03-14 | 索尼株式会社 | 高基除法器及方法 |
CN1833220A (zh) * | 2003-07-28 | 2006-09-13 | 英特尔公司 | 用于求出整数余数的方法和装置 |
CN101324836A (zh) * | 2007-06-11 | 2008-12-17 | 三洋电机株式会社 | 除法电路 |
CN102231101A (zh) * | 2011-07-29 | 2011-11-02 | 电子科技大学 | 一种除法器及除法处理方法 |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
CN205899527U (zh) * | 2016-06-16 | 2017-01-18 | 武汉芯泰科技有限公司 | 一种除法器 |
-
2016
- 2016-06-16 CN CN201610435062.4A patent/CN105955706B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1287307A (zh) * | 1999-06-04 | 2001-03-14 | 索尼株式会社 | 高基除法器及方法 |
CN1833220A (zh) * | 2003-07-28 | 2006-09-13 | 英特尔公司 | 用于求出整数余数的方法和装置 |
CN101324836A (zh) * | 2007-06-11 | 2008-12-17 | 三洋电机株式会社 | 除法电路 |
CN102231101A (zh) * | 2011-07-29 | 2011-11-02 | 电子科技大学 | 一种除法器及除法处理方法 |
CN102314331A (zh) * | 2011-08-02 | 2012-01-11 | 深圳市国微电子股份有限公司 | 除法器及其实现方法 |
CN205899527U (zh) * | 2016-06-16 | 2017-01-18 | 武汉芯泰科技有限公司 | 一种除法器 |
Non-Patent Citations (3)
Title |
---|
SRT Division algorithms as dynamical systems;Mark McCann M et al.;《Proceedings 1 6th IEEE Symposium》;20031231;第46-53页 * |
一种基于SRT-8算法的SIMD 浮点除法器的设计与实现;邓子椰 等;《计算机工程与科学》;20150531;第36卷(第5期);第797-803页 * |
基于SRT-16 算法的单精度浮点除法器的设计与实现;苑佳红 等;《第十九届计算机工程与工艺年会暨第五届微处理器技术论坛论文集》;20151018;第140-145页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105955706A (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105955706B (zh) | 一种除法器及除法运算方法 | |
EP0411491B1 (en) | Method and apparatus for performing division using a rectangular aspect ratio multiplier | |
CN106897046B (zh) | 一种定点乘累加器 | |
CN106951211B (zh) | 一种可重构定浮点通用乘法器 | |
US5307303A (en) | Method and apparatus for performing division using a rectangular aspect ratio multiplier | |
CN104375802B (zh) | 一种乘除法器及运算方法 | |
CN101295237B (zh) | 求商和余数的高速除法器 | |
US6182100B1 (en) | Method and system for performing a logarithmic estimation within a data processing system | |
Takagi | Generating a power of an operand by a table look-up and a multiplication | |
CN113837365A (zh) | 实现sigmoid函数逼近的模型、FPGA电路及工作方法 | |
Asadi et al. | CORLD: In-stream correlation manipulation for low-discrepancy stochastic computing | |
Niwal et al. | Design of radix 4 divider circuit using SRT algorithm | |
CN110069237B (zh) | 一种基于查找表的基-8除法器信号处理方法 | |
CN205899527U (zh) | 一种除法器 | |
Chang et al. | Softsign function hardware implementation using piecewise linear approximation | |
Dixit et al. | FPGA accomplishment of a 16-bit divider | |
Bajger et al. | Low-error, high-speed approximation of the sigmoid function for large FPGA implementations | |
CN204143432U (zh) | 一种乘除法器 | |
Mitra et al. | Development of Noise Tolerant Document Image Binarization Technique Employing an Accurate Square Root Circuit | |
Chang et al. | Fixed-point computing element design for transcendental functions and primary operations in speech processing | |
Ranjan et al. | A New VLSI Architecture of Parallel Multiplier Based on Radix-4 Modified Booth Algorithm using VHDL | |
CN108459839A (zh) | 一种除法运算方法及除法器电路 | |
Iyer et al. | Generalised Algorithm for Multiplying Binary Numbers Via Vedic Mathematics | |
Bowlyn et al. | A novel distributed arithmetic multiplierless approach for computing complex inner products | |
Kumar et al. | An aproach to manage delay in signal processing via selected multiplier algorithms |
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 |