CN104375802A - 一种乘除法器及运算方法 - Google Patents

一种乘除法器及运算方法 Download PDF

Info

Publication number
CN104375802A
CN104375802A CN201410490083.7A CN201410490083A CN104375802A CN 104375802 A CN104375802 A CN 104375802A CN 201410490083 A CN201410490083 A CN 201410490083A CN 104375802 A CN104375802 A CN 104375802A
Authority
CN
China
Prior art keywords
remainder
division
multiplier
result
unit
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.)
Granted
Application number
CN201410490083.7A
Other languages
English (en)
Other versions
CN104375802B (zh
Inventor
严伟
杨维
张文荣
陆健
王成
王鹏
沈骅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Produces Study Grinds Cooperation Education Base Of Peking University Software & Microelectronic College
SHANGHAI SINOMCU MICROELECTRONICS Co Ltd
Original Assignee
Wuxi Produces Study Grinds Cooperation Education Base Of Peking University Software & Microelectronic College
SHANGHAI SINOMCU MICROELECTRONICS Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Produces Study Grinds Cooperation Education Base Of Peking University Software & Microelectronic College, SHANGHAI SINOMCU MICROELECTRONICS Co Ltd filed Critical Wuxi Produces Study Grinds Cooperation Education Base Of Peking University Software & Microelectronic College
Priority to CN201410490083.7A priority Critical patent/CN104375802B/zh
Publication of CN104375802A publication Critical patent/CN104375802A/zh
Application granted granted Critical
Publication of CN104375802B publication Critical patent/CN104375802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开一种乘除法器,用于实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,该乘除法器包括:一数据预处理器,该数据预处理器与一第一、第二操作数、一乘除法运算选择信号以及一除法模式选择信号连接,根据该一乘除法运算选择信号以及一除法模式选择信号对该第一、第二操作数进行处理;一迭代运算单元,用于根据该乘除法运算选择信号,进行余数补零及除数移位,或者进行乘数移位及被乘数扩展;一除法运算单元,用于生成一两位商和一余数;一乘法运算单元,用于生成一乘积结果;一运算控制计数器,用于控制该迭代运算单元的运算位数;一结果寄存器,用于存放该商、余数和/或乘积结果。

Description

一种乘除法器及运算方法
技术领域
本发明涉及一种算术运算领域的关键电路实现,特别涉及在自动控制、数字信号处理、通信、视频和图像等领域的芯片设计中的高性能乘除法器及其实现方法。
背景技术
在自动控制、数字信号处理、通信、视频和图像等方面的数据处理中经常会涉及到无符号或有符号的乘除法运算,但是乘除法运算的实现电路复杂,计算周期长,其性能的优劣直接影响着芯片的整体数据处理能力。为了提升芯片的性能,减轻CPU核的计算负担,有效的方法是在微控制器芯片或专用型芯片的内部专门设计用于乘除法及相关算术运算的协处理器或专用乘除法器电路。
目前现有的除法算法有基于加减法操作的算法和采用乘法操作的算法。采用加减法操作的算法,其优点在于可以大大减少电路面积,不足之处在于计算速度慢。采用乘法操作的算法,速度相对较快,但是由于引入了乘法器,从而使电路的实现面积大大增加。在集成电路设计中,目前应用较广的主要是基于加减法操作的算法,其核心思想是通过移位和减法操作来完成除法运算。现有乘法器的实现方法主要是先生成部分积,然后将部分积相加得到乘积。
公开号为CN1423189A的专利“一种除法器”利用减法器、移位加法器、比较器完成除法。然而,这种实现方法的不足在于每次移位和减法操作后只能获得一位商,例如当N位除数A除以N位除数B时,需要执行N次迭代运算才能得到商。所以该方法计算速度慢,只能用在低速数据处理领域。公开号为CN101295237B的专利“求商和余数的高速除法器”利用超前借位减法、并行减法、一次求得多位商的技术实现求商和余数的运算。但是该实现方法也用到了移位器,比较器,以及三组超前借位减法器,电路实现复杂。
一款有竞争力的集成电路芯片不仅要在功能与性能方面满足设计的需求,同时要以较小的硬件资源开销来换取低的生产成本,实现高性价比。因此,设计具有高的运算速度且硬件资源开销小的乘除法器就显得很有意义。
发明内容
为了克服现有技术中存在的缺陷,满足设计需求,本发明提供一种用于芯片中的高性能乘除法器及其实现方法,可以实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算。
为了实现上述发明目的,本发明公开一种乘除法器,用于实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,该乘除法器包括:一数据预处理器,该数据预处理器与一第一、第二操作数、一乘除法运算选择信号以及一除法模式选择信号连接,根据该一乘除法运算选择信号以及一除法模式选择信号对该第一、第二操作数进行处理,当该乘除法运算选择信号为除法时,该第一、第二操作数分别作为除数和被除数;当该乘除法运算选择信号为乘法时,该第一、第二操作数分别作为乘数和被乘数;一迭代运算单元,该迭代运算单元与该数据预处理器连接,用于根据该乘除法运算选择信号,进行余数补零及除数移位,或者进行乘数移位及被乘数扩展;一除法运算单元,该除法运算单元与该迭代运算单元连接,用于生成一两位商和一余数;一乘法运算单元,该乘法运算单元与该迭代运算单元连接,用于生成一乘积结果;一运算控制计数器,该运算控制计数器与该迭代运算单元、除法运算单元、乘法运算单元连接,该运算控制计数器用于控制该迭代运算单元的运算位数及运算过程;一结果寄存器,该结果寄存器与该除法运算单元及乘法运算单元连接,用于存放该商、余数或乘积结果。
更进一步地,当该乘除法运算选择信号为除法时,该数据预处理器对该第一操作数和第二操作数取绝对值,并生成一商符号位;当被除数为零时,产生一溢出标志;当该乘除法运算选择信号为乘法时,该数据预处理器作为一数据缓冲器。
更进一步地,该结果寄存器包括第一寄存器和第二寄存器,该第一寄存器用于存放该商或该乘积结果的高位部分,该第二寄存器用于存放该余数或该乘积结果的低位部分。
更进一步地,该运算控制计数器、除法运算单元以及乘法运算单元的时钟频率是该数据预处理器的m倍,m为自然数。
更进一步地,该迭代运算单元包括一补零单元、移位单元以及一乘数扩展单元,该补零单元及移位单元与该除法运算单元连接,该移位单元与该乘数扩展单元与该乘法运算单元连接;当该乘除法运算选择信号为除法时,该补零单元根据商的位数对当前余数与第一级余数进行补0,产生两个补零结果;该移位单元根据该运算控制计数器的计数值,对新的除数或乘数进行两次左移位,产生两个移位结果;该乘数扩展单元根据用于根据运算控制计数器的计数值,取被乘数的两位,分别对被乘数的每一位数进行扩展,产生与乘数位数相同的两个扩展结果。
更进一步地,该除法运算单元包括:一两位商生成器,用于根据余数补零及除数移位的结果生成一两位商;一商位存储器,用于保存每次迭代运算产生的两位商并产生该商;一余数生成器,用于根据该两位商,分别用余数减去第一次移位结果生成第一级余数,用该第一级余数减去第二次移位结果生成第二级余数;一余数存储器,用于保存该第二级余数并产生该余数。
更进一步地,该乘法运算单元包括:一部分积生成单元,用于根据该乘数移位和被乘数扩展产生第一部分积和第二部分积;一加法器,用于累加该第一部分积、第二部分积以及一部分积累加和存储器的当前值;该部分积累加和存储器存储该加法器的输出值生成一乘积结果。
本发明同时公开一种乘除法器的运算方法,包括:
步骤一、输入N位的第一操作数第二操作数、乘除法运算选择信号以及除法模式选择信号,当该乘除法运算选择信号为除法运算时,该第一第二操作数分别为被除数和除数,当该乘除法运算选择信号为乘法运算时,该第一第二操作数分别为被乘数和乘数,该除法模式包括无符号除法模式和有符号除法模式,其中N是自然数;
步骤二、根据该乘除法运算选择信号进入除法运算步骤或乘法运算步骤,在有符号除法模式下,对该被除数和除数取绝对值并生成一无符号的被除数、除数和一商符号位,当除数为零时,产生一溢出信号;
步骤三、对该第一操作数和第二操作数进行j次循环迭代除法运算或乘法运算,直至生成一N位的商Q、余数R或乘积结果,其中j的初始值为0。
更进一步地,该步骤三的除法运算进一步包括:
A.1根据商Q的位数对当前余数R与第一级余数R1补零,根据循环迭代的值j对该除数进行两次移位;
A.2判断补零后的余数R是否大于第一移位结果,如果大于第一移位结果则商位Q[N-1-j]为1,否则Q[N-1-j]为0;判断判断补零后的第一级余数R1是否大于第二移位结果,如果大于第二移位结果,则商位Q[N-2-j]为1,否则Q[N-2-j]为0;
A.3当前余数R减去Q[N-1-j]倍的新的移位结果1的低N位,生成新的第一级余数R1;通过新的第一级余数R1减去Q[N-2-j]倍的新的移位结果2的低N位,生成新的第二级余数R2,第二级余数R2则为余数R;
A.4输出商位Q[N-1-j]及商位Q[N-2-j];
A.5令j=j+2,判断循环迭代的值j是否等于N-1或N-2,若不是则重复A.1至A.4,直至输出商Q和余数R。
更进一步地,该步骤三的乘法运算进一步包括:
B.1将乘数分别左移N-1-j位、N-2-j位,产生两个移位结果;对被乘数的第N-1-j位、N-2-j位分别进行N位扩展,产生两个扩展结果;
B.2将步骤B.,1中的两个扩展结果分别与两个移位结果进行位与,生成两个部分积;
B.3将当前的部分积累加和该两个部分积相加生成新的部分积累加和,初始计算部分积累加和为0,该新的部分积累加和是乘积结果;
B.4判断循环迭代的值j是否等于N-1或N-2,若不是则重复B.1至B.3,直至输出乘积结果。
与现有技术相比较,本发明的技术效果在于:
第一、本发明所提供的技术方案可以实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,并且乘除法器共用一套运算和控制电路,因此本发明所提供的用于芯片中的高性能乘除法器需要的面积更小。
第二、本发明所提供的技术方案,在硬件资源开销小的前提下,乘除法运算一次处理两位操作数,运算速度快,运算处理模块的时钟频率为数据接收预处理模块的时钟频率的m倍(m为自然数),可使运算速度在现有的基础上提高m倍。
第三、本发明所提供的技术方案,除法器一次迭代运算处理两位除数,生成两位商和两个余数。乘法器一次迭代运算处理两位乘数,生成两个部分积和一个部分积累加和。
附图说明
关于本发明的优点与精神可以通过以下的发明详述及所附图式得到进一步的了解。
图1是本发明所涉及的乘除法器的结构示意图;
图2是本发明所涉及的乘除法器的内部单元的时钟连接关系图;
图3是本发明所涉及的乘除法器的除法运算单元的结构示意图;
图4是本发明所涉及的乘除法器的乘法运算单元的结构示意图;
图5是本发明所涉及的乘除法器的实现方法的除法运算流程图;
图6是本发明所涉及的乘除法器的实现方法的乘法运算流程图。
具体实施方式
下面结合附图详细说明本发明的具体实施例。
为了克服现有技术中存在的缺陷,本发明提供一种用于芯片中的高性能乘除法器及其实现方法。该乘除法器通过用户的选择配置,可以实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,并且乘除法器共用一套运算和控制电路,硬件资源开销小,乘除法运算一次处理两位操作数,运算速度快,运算处理模块的时钟频率为数据接收预处理模块的时钟频率的m倍(m为自然数),可使运算速度在现有的基础上提高m倍。除法器一次迭代运算处理两位除数,生成两位商和两个余数。乘法器一次迭代运算处理两位乘数,生成两个部分积和一个部分积累加和。
为了实现上述发明目的,本发明的提供技术方案包括数据预处理器、迭代运算单元、运算控制计数器、除法运算单元、乘法运算单元、两结果寄存器,其中:数据预处理器、迭代运算单元、运算控制计数器、结果寄存器Q、结果寄存器R是乘法运算与除法运算共用的一套电路。该乘除法器内部运算控制器、除法运算单元、乘法运算单元的时钟频率为数据预处理器模块时钟频率的m倍(m为自然数)。
如图1至4中所示,该乘除法器包括数据预处理器10、迭代运算单元20、运算控制计数器40、除法运算单元50、乘法运算单元60、两结果寄存器。
数据预处理器10用于当乘除法运算器实现除法运算时,根据输入的除法模式选择信号2来选择有符号除法或无符号除法,在不同的除法模式下对被除数与除数取绝对值,使其生成新的被除数、新的除数和商符号位,同时当新的除数为0时产生溢出标志信号。当乘除法器实现乘法运算时(即乘除法运算选择信号1为乘号时),数据预处理器作为数据缓冲器使用。
迭代运算单元20包括补0单元21、移位单元22和乘数扩展单元23。其中,补0单元21包括补0单元1与补0单元2,当乘除法器实现除法运算时,补0单元用于根据商的位数对当前余数与第一级余数进行补0,产生两个补零结果。移位单元22包括移位单元1与移位单元2。移位单元22用于根据当前运算控制计数器40的计数值对新的除数或乘数进行两次左移位,产生两个移位结果。乘数扩展单元23用于根据运算控制计数器40的当前值,取被乘数的两位,分别对该两位进行扩展,产生与乘数位数相同的两个扩展结果。
运算控制计数器40用于控制迭代运算单元20的运算位数、乘除法运算单元的运算、结果的输出。
除法运算单元50包括两位商生成器51、商位存储器53、两余数生成器52、余数存储器54。两位商生成器51包括商位生成器1与商位生成器2,其根据补0单元21与移位单元22生成的两组结果,交叉搭配,通过判断补0结果与移位结果的大小产生两位商。商位存储器53用于保存每次迭代运算产生的两位商,用于最终商的生成。两余数生成器52包括余数生成器1与余数生成器2,其用于根据两位商生成器产生的两位商,分别用当前余数减去移位结果1生成新的第一级余数,用新的第一级余数减去移位结果2生成新的第二级余数。余数存储器54用于存储新的第二级余数以生成本轮运算产生的新余数,初始计算时,当前余数等于数据预处理器生成的新的被除数。
乘法运算单元60包括部分积生成单元61、加法器62、部分积累加和存储器63。
部分积生成单元61包括部分积生成单元1与部分积生成单元2,其用于取乘数扩展单元22产生的两个扩展结果分别与移位单元产生的两个移位结果相与产生两个部分积。
加法器62用于将当前的部分积累加和与部分积生成单元61产生的两个部分积相加生成新的部分积累加和。
部分积累加和存储器63用于存储每次运算产生的新的部分积累加和,最终生成乘积结果。
当乘除法器实现除法运算时,所述的两结果寄存器分别用于存放商和余数;当乘除法器实现乘法运算时,所述的两结果寄存器分别用于存放结果的高位部分与低位部分。
针对上述高性能乘除法器,本发明还提出了一种除法实现方法。图5是本发明所涉及的乘除法器的实现方法的除法运算流程图。如图5所示,假设N位的被除数A除以N位的除数B,商与余数分别为N位的Q与R,运算溢出标志为OV,设循环迭代计数器为j,初始值j=0,具体包括如下步骤:
501.设置乘除法运算选择信号,使该乘除法器实现除法功能。
502.在数据预处理器中检测并判断模式选择信号。
503.若为有符号除法,则数据预处理器输出新的被除数A1与新的除数B1分别等于A与B的绝对值,商符号位为对A与B的最高位进行异或的结果;判断新的除数B1,若为0,则溢出标志OV输出为1。
504.若为无符号除法运算,则数据预处理器输出新的被除数A1与新的除数B1分别等于A与B
505.补零单元1对当前余数R左边补N-1个0,生成新的补零结果1,初始计算时当前余数R等于新的被除数A1。补零单元2对两位余数生成器生成的第一级余数R1左边补N-1个0,生成新的补零结果2。移位单元1对新的除数B1左边补N-1个0,并对其左移N-1-j位,生成新的移位结果1。移位单元2对新的除数B1左边补N-1个0,并对其左移N-2-j位,生成新的移位结果2。
506.商位生成器1对新的补零结果1与新的移位结果1进行判断,如前者大于后者,则商位Q[N-1-j]为1,否则Q[N-1-j]为0。
507.商位生成器2对新的补零结果2与新的移位结果2进行判断,如前者大于后者,则商位Q[N-2-j]为1,否则Q[N-2-j]为0。
508.Q[N-1-j]为0,则新的第一级余数R1等于当前余数R。
509.Q[N-2-j]为1,余数生成器1通过当前余数R减去新的移位结果1的低N位,生成新的第一级余数R1。
510.Q[N-2-j]为1,余数生成器2通过新的第一级余数R1减去新的移位结果2的低N位,生成新的第二级余数R2。
511.Q[N-2-j]为0,则新的第二级余数R2等于新的第一级余数R10。
512.商位存储器通过每次左移的方式,将两位商保存起来,输出商Q[N-1-j]至商位存储器。
513.输出商Q[N-2-j]至商位存储器。余数存储器用于将新的余数R2保存起来,作为本轮计算生成的新余数R。
514.令j=j+2,重复进行以上505至513步骤,直至j=N-1或j=N-2(由N的奇偶性决定)。
输出最终的商Q与余数R。
针对上述高性能乘除法器,本发明还提出了一种乘法实现方法,,乘法器结构如图4所示,图6是本发明所涉及的乘除法器的实现方法的乘法运算流程图。假设N位的乘数A乘以N位的乘数B,乘积的高N位为结果Q,乘积的低N位为结果R,设循环迭代计数器为j,初始值j=0,具体包括如下步骤:
601.设置乘除法运算选择信号,使该乘除法器实现乘法功能。数据预处理器作为数据缓冲器使用,暂存输入的乘数A与乘数B,输出新的乘数A1与新的乘数B1。
602.移位单元1对新的乘数B1左边补N-1个0,并对其左移N-1-j位,生成新的移位结果1。移位单元2对新的乘数B1左边补N-1个0,并对其左移N-2-j位,生成新的移位结果2。
603.乘数A1扩展单元取乘数A1的第N-1-j位与第N-2-j位,分别对这两位进行N位扩展,得到N位的扩展结果1与N位的扩展结果2。
604.部分积生成单元1取新的扩展结果1与移位结果1进行位与生成部分积1。部分积生成单元2取新的扩展结果2与移位结果2进行位与生成部分积2。
605.加法器将当前的部分积累加和与部分积生成单元产生的两个部分积相加生成新的部分积累加和,初始计算部分积累加和为0。部分积累加和存储器存储每次运算产生的新的部分积累加和。
606.令j=j+2,重复进行以上602至605步骤,直至j=N-1或j=N-2(由N的奇偶性决定)。
607.将部分积累加和存储器的乘积结果输出至结果寄存器Q与R。
本发明的乘除法器内部单元的时钟连接关系图如图2所示,数据预处理器采用CLK1作为工作时钟,DIV内核、MUL内核、运算控制计数器共同采用CLK2作为工作时钟,且CLK1与CLK2的工作时钟频率为1:2,这样可以使乘除法运算的速度在现有基础上提高2倍。
在本实施例中,操作数A用N=16位的整数表示,A=a15a14…a1a0,操作数B用16位的整数表示,B=b15b14…b1b0,结果Q用16位的整数表示,Q=q15q14…q1q0,结果R用16位的整数表示,R=r15r14…r1r0。
本发明的高性能乘除法器中的完整的除法器结构如图3所示,其中除法器内核包括两位商生成器、商位存储器、两位余数生成器、余数存储器。该除法器的实现算法流程如图5所示,以下结合图3与图4对本实施例中的高速除法器进行说明。在本除法器中,被除数用操作数A表示,除数用操作B表示,商用结果寄存器Q表示,余数用结果寄存器R表示,运算控制计数器j的初始值为0。
首先向数据预处理器输入16位的被除数A,除数B,除法模式选择信号div_sel,且数据A与B都以原码的形式输入。数据预处理器对div_sel信号进行判断,若为1则说明本除法器实现的是有符号除法运算,若为0则说明本除法器实现的是无符号除法运算。若为有符号除法运算,新的被除数A1的最高位A1[15]为0,A1的低15位A1[14:0]等于A[14:0],新的除数B1的最高位B1[15]为0,B1的低15位B1[14:0]等于B[14:0],商的最高位—符号位Q[15]等于被除数A的最高位A[15]与除数B的最高位B[15]的异或。若为无符号除法运算,新的被除数A1等于A,新的除数B1等于B。若新的除数B1为0,则溢出表示信号OV置1。
迭代运算单元包括补0单元与移位单元,补0单元包括补0单元1与补0单元2,移位单元包括移位单元1与移位单元2。
在补0单元1中,根据商的位数对当前余数R进行补0,由于本实施例中的商为16位,因此根据除法算法需对当前余数R左边补15个0。在补0单元2中,根据商的位数对新的第一级余数R1进行补0,其中R1是用当前余数R和移位单元1产生的移位结果的低16位进行减法运算生成的,由于本实施例中的商为16位,因此根据除法算法需对新的余数R1左边补15个0。
在移位单元1中,根据运算计数器j的值对新的除数B1进行移位,首先将B1左边补15个0,然后对其左移15-j位,生成移位结果1。同理,在移位单元2中,对左边补0后的B1左移14-j位,生成移位结果2。
两位商生成器包括商位生成器1与商位生成器2。在商位生成器1中,判断补0单元1产生的补0后的余数R与移位单元1产生的移位结果1的大小,若前者大于后者,则商Q的对应位Q[15-j]等于1,否则Q[15-j]为0。在商位生成器2中,判断补0单元2产生的补0后的第一级余数R1与移位单元2产生的移位结果2的大小,若前者大于后者,则商Q的对应位Q[14-j]等于1,否则Q[14-j]等于0。
两余数生成器包括余数生成器1与余数生成器2。在余数生成器1中,若商位生成器1产生的商位Q[15-j]为1,则新的第一级余数R1等于当前余数R减去移位单元1产生的移位结果1的低16位。在余数生成器2中,若商位生成器2产生的商Q[14-j]为1,则新的第二级余数R2等于新的第一级余数R1减去移位单元2产生的移位结果2的低16位。
余数存储器在每一次运算结束后保存余数生成器2产生的新的第二级余数R2作为本轮计算生成的新的余数R。
商位存储器在每一次运算结束后保存两位商生成器产生的2位商。
令j=j+2,重复以上步骤,直至j=14,运算结束,商位存储器输出16位的商给结果寄存器Q,余数存储器输出16位的余数给结果寄存器R。
本发明的高性能乘除法器中的完整的乘法器结构如图4所示,其中乘法器内核包括部分积生成单元、加法器、部分积累加和存储器,部分积生成单元包括部分积生成单元1与部分积生成单元2。该乘法器的实现算法流程如图6所示,以下结合图4与图6对本实施例中的乘法器进行说明。在本乘法器中,被乘数用操作数A表示,乘数用操作B表示,乘积的高16位用结果寄存器Q表示,乘积的低16位用结果寄存器R表示,运算控制计数器j的初始值为0。
首先设置乘除法运算选择信号,使该乘除法器实现乘法功能。数据预处理器作为数据缓冲器使用,暂存输入的乘数A与乘数B,输出新的乘数A1与新的乘数B1。
移位单元1对新的乘数B1左边补15个0,并对其左移15-j位,生成新的移位结果1。移位单元2对新的乘数B1左边补15个0,并对其左移14-j位,生成新的移位结果2。
乘数A1扩展单元取乘数A1的第15-j位与第14-j位,分别对这两位进行16位扩展,得到16位的扩展结果1与16位的扩展结果2。
部分积生成单元1取新的扩展结果1与移位结果1相与生成部分积1。部分积生成单元2取新的扩展结果2与移位结果2相与生成部分积2。
加法器将当前的部分积累加和与部分积生成单元产生的两个部分积相加生成新的部分积累加和,初始计算部分积累加和为0。
部分积累加和存储器存储每次运算产生的新的部分积累加和。
令j=j+2,重复进行以上步骤,直至j=14,将部分积累加和存储器的乘积结果输出至结果寄存器Q与R。
在本实施例中,16位的操作数A与16位的操作数B进行运算,每次处理两位操作数,8次迭代即可完成运算,由于运算控制计数器及相关模块的时钟频率是数据预处理模块时钟频率的2倍,而整个乘除法器的运算速度的快慢是以数据预处理模块的时钟为参考的,因此16位的操作数进行运算实际需要4个数据预处理模块时钟周期即可完成。相比现有的乘除法器,本实施例的速度提升了4倍。
本说明书中所述的只是本发明的较佳具体实施例,以上实施例仅用以说明本发明的技术方案而非对本发明的限制。凡本领域技术人员依本发明的构思通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在本发明的范围之内。

Claims (10)

1.一种乘除法器,用于实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,其特征在于,所述乘除法器包括:
一数据预处理器,所述数据预处理器与一第一、第二操作数、一乘除法运算选择信号以及一除法模式选择信号连接,根据所述一乘除法运算选择信号以及一除法模式选择信号对所述第一、第二操作数进行处理,当所述乘除法运算选择信号为除法时,所述第一、第二操作数分别作为除数和被除数;当所述乘除法运算选择信号为乘法时,所述第一、第二操作数分别作为乘数和被乘数;
一迭代运算单元,所述迭代运算单元与所述数据预处理器连接,用于根据所述乘除法运算选择信号,进行余数补零及除数移位,或者进行乘数移位及被乘数扩展;
一除法运算单元,所述除法运算单元与所述迭代运算单元连接,用于生成一两位商和一余数;
一乘法运算单元,所述乘法运算单元与所述迭代运算单元连接,用于生成一乘积结果;
一运算控制计数器,所述运算控制计数器与所述迭代运算单元、除法运算单元、乘法运算单元连接,所述运算控制计数器用于控制所述迭代运算单元的运算位数及运算过程;
一结果寄存器,所述结果寄存器与所述除法运算单元及乘法运算单元连接,用于存放所述商、余数或乘积结果。
2.如权利要求1所述的乘除法器,其特征在于,当所述乘除法运算选择信号为除法时,所述数据预处理器对所述第一操作数和第二操作数取绝对值,并生成一商符号位;当被除数为零时,产生一溢出标志;当所述乘除法运算选择信号为乘法时,所述数据预处理器作为一数据缓冲器。
3.如权利要求1所述的乘除法器,其特征在于,所述结果寄存器包括第一寄存器和第二寄存器,所述第一寄存器用于存放所述商或所述乘积结果的高位部分,所述第二寄存器用于存放所述余数或所述乘积结果的低位部分。
4.如权利要求1所述的乘除法器,其特征在于,所述运算控制计数器、除法运算单元以及乘法运算单元的时钟频率是所述数据预处理器的m倍,m为自然数。
5.如权利要求1所述的乘除法器,其特征在于,所述迭代运算单元包括一补零单元、移位单元以及一乘数扩展单元,所述补零单元及移位单元与所述除法运算单元连接,所述移位单元与所述乘数扩展单元与所述乘法运算单元连接;当所述乘除法运算选择信号为除法时,所述补零单元根据商的位数对当前余数与第一级余数进行补0,产生两个补零结果;所述移位单元根据所述运算控制计数器的计数值,对新的除数或乘数进行两次左移位,产生两个移位结果;所述乘数扩展单元根据用于根据运算控制计数器的计数值,取被乘数的两位,分别对被乘数的每一位数进行扩展,产生与乘数位数相同的两个扩展结果。
6.如权利要求1所述的乘除法器,其特征在于,所述除法运算单元包括:
一两位商生成器,用于根据余数补零及除数移位的结果生成一两位商;
一商位存储器,用于保存每次迭代运算产生的两位商并产生所述商;
一余数生成器,用于根据所述两位商,分别用余数减去第一次移位结果生成第一级余数,用所述第一级余数减去第二次移位结果生成第二级余数;
一余数存储器,用于保存所述第二级余数并产生所述余数。
7.如权利要求1所述的乘除法器,其特征在于,所述乘法运算单元包括:
一部分积生成单元,用于根据所述乘数移位和被乘数扩展产生第一部分积和第二部分积;
一加法器,用于累加所述第一部分积、第二部分积以及一部分积累加和存储器的当前值;所述部分积累加和存储器存储所述加法器的输出值生成一乘积结果。
8.一种乘除法器的运算方法,其特征在于,包括:
步骤一、输入N位的第一操作数第二操作数、乘除法运算选择信号以及除法模式选择信号,当所述乘除法运算选择信号为除法运算时,所述第一第二操作数分别为被除数和除数,当所述乘除法运算选择信号为乘法运算时,所述第一第二操作数分别为被乘数和乘数,所述除法模式包括无符号除法模式和有符号除法模式,其中N是自然数;
步骤二、根据所述乘除法运算选择信号进入除法运算步骤或乘法运算步骤,在有符号除法模式下,对所述被除数和除数取绝对值并生成一无符号的被除数、除数和一商符号位,当除数为零时,产生一溢出信号;
步骤三、对所述第一操作数和第二操作数进行j次循环迭代除法运算或乘法运算,直至生成一N位的商Q、余数R或乘积结果,其中j的初始值为0。
9.如权利要求8所述的乘除法器的运算方法,其特征在于,所述步骤三的除法运算进一步包括:
A.1根据商Q的位数对当前余数R与第一级余数R1补零,根据循环迭代的值j对所述除数进行两次移位;
A.2判断补零后的余数R是否大于第一移位结果,如果大于第一移位结果则商位Q[N-1-j]为1,否则Q[N-1-j]为0;判断判断补零后的第一级余数R1是否大于第二移位结果,如果大于第二移位结果,则商位Q[N-2-j]为1,否则Q[N-2-j]为0;
A.3当前余数R减去Q[N-1-j]倍的新的移位结果1的低N位,生成新的第一级余数R1;通过新的第一级余数R1减去Q[N-2-j]倍的新的移位结果2的低N位,生成新的第二级余数R2,第二级余数R2则为余数R;
A.4输出商位Q[N-1-j]及商位Q[N-2-j];
A.5令j=j+2,判断循环迭代的值j是否等于N-1或N-2,若不是则重复A.1至A.4,直至输出商Q和余数R。
10.如权利要求8所述的乘除法器的运算方法,其特征在于,所述步骤三的乘法运算进一步包括:
B.1将乘数分别左移N-1-j位、N-2-j位,产生两个移位结果;对被乘数的第N-1-j位、N-2-j位分别进行N位扩展,产生两个扩展结果;
B.2将步骤B.,1中的两个扩展结果分别与两个移位结果进行位与,生成两个部分积;
B.3将当前的部分积累加和所述两个部分积相加生成新的部分积累加和,初始计算部分积累加和为0,所述新的部分积累加和是乘积结果;
B.4判断循环迭代的值j是否等于N-1或N-2,若不是则重复B.1至B.3,直至输出乘积结果。
CN201410490083.7A 2014-09-23 2014-09-23 一种乘除法器及运算方法 Active CN104375802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410490083.7A CN104375802B (zh) 2014-09-23 2014-09-23 一种乘除法器及运算方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410490083.7A CN104375802B (zh) 2014-09-23 2014-09-23 一种乘除法器及运算方法

Publications (2)

Publication Number Publication Date
CN104375802A true CN104375802A (zh) 2015-02-25
CN104375802B CN104375802B (zh) 2018-05-08

Family

ID=52554754

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410490083.7A Active CN104375802B (zh) 2014-09-23 2014-09-23 一种乘除法器及运算方法

Country Status (1)

Country Link
CN (1) CN104375802B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406811A (zh) * 2016-08-30 2017-02-15 武汉虹信通信技术有限责任公司 一种基于fpga的数据流除法运行装置及方法
CN107567613A (zh) * 2015-04-21 2018-01-09 高通股份有限公司 高性能除法及根计算单元
CN107632816A (zh) * 2016-07-19 2018-01-26 阿尔特拉公司 通过在设计编制期间替换用于执行除法的部件来改进系统操作的方法和设备
CN108647007A (zh) * 2018-04-28 2018-10-12 天津芯海创科技有限公司 运算系统及芯片
CN110147217A (zh) * 2018-02-12 2019-08-20 北京忆芯科技有限公司 除法器
CN110647309A (zh) * 2019-09-29 2020-01-03 浙江大学 一种高速大位宽乘法器
CN111596888A (zh) * 2020-03-02 2020-08-28 成都优博创通信技术股份有限公司 一种在低位宽mcu上实现32位无符号数整型乘法运算的方法
CN112230886A (zh) * 2020-09-11 2021-01-15 清华大学 免除Toom-Cook的处理装置和基于其的模乘获取方法
CN112256235A (zh) * 2020-10-28 2021-01-22 Oppo广东移动通信有限公司 除运算方法及除法器、除法装置、电子设备、存储介质
CN112955955A (zh) * 2018-10-24 2021-06-11 宁波飞芯电子科技有限公司 计数方法、计数装置以及应用其的计数系统和像素阵列
CN113254072A (zh) * 2021-05-27 2021-08-13 上海阵量智能科技有限公司 数据处理器、数据处理方法、芯片、计算机设备及介质
CN113467752A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 用于隐私计算的除法运算装置、数据处理系统及方法
CN116820388A (zh) * 2023-08-24 2023-09-29 深圳比特微电子科技有限公司 除法器、处理器和计算装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239498A (en) * 1992-08-31 1993-08-24 Intel Corporation Methods and apparatus for improved quotient correction in nonrestoring division computation circuits
CN101685385A (zh) * 2008-09-28 2010-03-31 北京大学深圳研究生院 一种复数乘法器
US20100191788A1 (en) * 2009-01-27 2010-07-29 Laurent Le-Faucheur Multiplier with Shifter
CN101295237B (zh) * 2007-04-25 2012-03-21 四川虹微技术有限公司 求商和余数的高速除法器
CN102722351A (zh) * 2012-05-30 2012-10-10 北京大学 进位保留乘法器
CN204143432U (zh) * 2014-09-23 2015-02-04 上海晟矽微电子股份有限公司 一种乘除法器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5239498A (en) * 1992-08-31 1993-08-24 Intel Corporation Methods and apparatus for improved quotient correction in nonrestoring division computation circuits
CN101295237B (zh) * 2007-04-25 2012-03-21 四川虹微技术有限公司 求商和余数的高速除法器
CN101685385A (zh) * 2008-09-28 2010-03-31 北京大学深圳研究生院 一种复数乘法器
US20100191788A1 (en) * 2009-01-27 2010-07-29 Laurent Le-Faucheur Multiplier with Shifter
CN102722351A (zh) * 2012-05-30 2012-10-10 北京大学 进位保留乘法器
CN204143432U (zh) * 2014-09-23 2015-02-04 上海晟矽微电子股份有限公司 一种乘除法器

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
刘康: "高性能浮点除法单元的设计", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 *
周殿凤,等: "基于FPGA的32位除法器设计", 《信息化研究》 *
庄巍,等: "基数分离的快速定点SIMD除法器", 《第十五届计算机工程与工艺年会暨第一届微处理器技术论坛论文集》 *
胡振波,等: "高效乘除法器的设计研究", 《信息技术》 *
高茁: "高性能数字运算单元设计研究", 《中国优秀硕博士学位论文全文数据库(硕士)信息科技辑(月刊)》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107567613A (zh) * 2015-04-21 2018-01-09 高通股份有限公司 高性能除法及根计算单元
CN107632816A (zh) * 2016-07-19 2018-01-26 阿尔特拉公司 通过在设计编制期间替换用于执行除法的部件来改进系统操作的方法和设备
CN107632816B (zh) * 2016-07-19 2024-04-02 阿尔特拉公司 通过在设计编制期间替换用于执行除法的部件来改进系统操作的方法和设备
CN106406811B (zh) * 2016-08-30 2019-01-04 武汉虹信通信技术有限责任公司 一种基于fpga的数据流除法运行装置及方法
CN106406811A (zh) * 2016-08-30 2017-02-15 武汉虹信通信技术有限责任公司 一种基于fpga的数据流除法运行装置及方法
CN110147217A (zh) * 2018-02-12 2019-08-20 北京忆芯科技有限公司 除法器
CN108647007A (zh) * 2018-04-28 2018-10-12 天津芯海创科技有限公司 运算系统及芯片
CN108647007B (zh) * 2018-04-28 2020-10-16 天津芯海创科技有限公司 运算系统及芯片
CN112955955A (zh) * 2018-10-24 2021-06-11 宁波飞芯电子科技有限公司 计数方法、计数装置以及应用其的计数系统和像素阵列
CN110647309A (zh) * 2019-09-29 2020-01-03 浙江大学 一种高速大位宽乘法器
CN111596888A (zh) * 2020-03-02 2020-08-28 成都优博创通信技术股份有限公司 一种在低位宽mcu上实现32位无符号数整型乘法运算的方法
CN112230886B (zh) * 2020-09-11 2022-11-08 清华大学 免除Toom-Cook的处理装置和基于其的模乘获取方法
CN112230886A (zh) * 2020-09-11 2021-01-15 清华大学 免除Toom-Cook的处理装置和基于其的模乘获取方法
CN112256235A (zh) * 2020-10-28 2021-01-22 Oppo广东移动通信有限公司 除运算方法及除法器、除法装置、电子设备、存储介质
CN113254072A (zh) * 2021-05-27 2021-08-13 上海阵量智能科技有限公司 数据处理器、数据处理方法、芯片、计算机设备及介质
WO2022247193A1 (zh) * 2021-05-27 2022-12-01 上海阵量智能科技有限公司 用于数据处理的装置、方法、芯片、计算机设备及介质
CN113254072B (zh) * 2021-05-27 2023-04-07 上海阵量智能科技有限公司 数据处理器、数据处理方法、芯片、计算机设备及介质
CN113467752A (zh) * 2021-05-31 2021-10-01 深圳致星科技有限公司 用于隐私计算的除法运算装置、数据处理系统及方法
CN113467752B (zh) * 2021-05-31 2022-02-22 深圳致星科技有限公司 用于隐私计算的除法运算装置、数据处理系统及方法
CN116820388A (zh) * 2023-08-24 2023-09-29 深圳比特微电子科技有限公司 除法器、处理器和计算装置
CN116820388B (zh) * 2023-08-24 2023-11-14 深圳比特微电子科技有限公司 除法器、处理器和计算装置

Also Published As

Publication number Publication date
CN104375802B (zh) 2018-05-08

Similar Documents

Publication Publication Date Title
CN104375802A (zh) 一种乘除法器及运算方法
JP5866128B2 (ja) 算術プロセッサ
CN105955706B (zh) 一种除法器及除法运算方法
US11579844B2 (en) Small multiplier after initial approximation for operations with increasing precision
CN102662628B (zh) Rsa加密算法的指令优化处理器
US6728744B2 (en) Wide word multiplier using booth encoding
CN100367191C (zh) 一种快速流水线型除法器
CN109388373B (zh) 用于低功耗内核的乘除法器
Gutub et al. Efficient scalable VLSI architecture for Montgomery inversion in GF (p)
CN111443893A (zh) 一种基于cordic算法的n次根计算装置及方法
CN204143432U (zh) 一种乘除法器
CN101295237A (zh) 求商和余数的高速除法器
Asadi et al. CORLD: In-stream correlation manipulation for low-discrepancy stochastic computing
CN101866278B (zh) 一种异步迭代的64位整型乘法器及其计算方法
US20090013022A1 (en) Multiplier Engine Apparatus and Method
CN104951279A (zh) 一种基于NEON引擎的向量化Montgomery模乘器的设计方法
CN102646033B (zh) 提供了加密和签名功能的rsa算法的实现方法和装置
CN205899527U (zh) 一种除法器
CN111506293A (zh) 一种基于srt算法的高基除法器电路
Murali et al. An optimized implementation of vedic multiplier using barrel shifter in FPGA technology
da Rosa et al. Energy-Efficient VLSI Squarer Unit with Optimized Radix-2 m Multiplication Logic
Chang et al. Fixed-point computing element design for transcendental functions and primary operations in speech processing
Kim et al. Improved Multiplication Algorithm by Clearing Leading Zeros of Binary Numbers based on Big Data Analysis
JP2004226516A (ja) べき乗剰余演算方法及びそのプログラム
Shieh et al. An Efficient Multiplier/Divider Design for Elliptic Curve Cryptosystem over GF (2 m).

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