一种乘除法器及运算方法技术

技术编号:11068882 阅读:89 留言:0更新日期:2015-02-25 09:01
本发明专利技术公开一种乘除法器,用于实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,该乘除法器包括:一数据预处理器,该数据预处理器与一第一、第二操作数、一乘除法运算选择信号以及一除法模式选择信号连接,根据该一乘除法运算选择信号以及一除法模式选择信号对该第一、第二操作数进行处理;一迭代运算单元,用于根据该乘除法运算选择信号,进行余数补零及除数移位,或者进行乘数移位及被乘数扩展;一除法运算单元,用于生成一两位商和一余数;一乘法运算单元,用于生成一乘积结果;一运算控制计数器,用于控制该迭代运算单元的运算位数;一结果寄存器,用于存放该商、余数和/或乘积结果。

【技术实现步骤摘要】
一种乘除法器及运算方法
本专利技术涉及一种算术运算领域的关键电路实现,特别涉及在自动控制、数字信号处理、通信、视频和图像等领域的芯片设计中的高性能乘除法器及其实现方法。
技术介绍
在自动控制、数字信号处理、通信、视频和图像等方面的数据处理中经常会涉及到无符号或有符号的乘除法运算,但是乘除法运算的实现电路复杂,计算周期长,其性能的优劣直接影响着芯片的整体数据处理能力。为了提升芯片的性能,减轻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,该新的本文档来自技高网
...
一种乘除法器及运算方法

【技术保护点】
一种乘除法器,用于实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,其特征在于,所述乘除法器包括:一数据预处理器,所述数据预处理器与一第一、第二操作数、一乘除法运算选择信号以及一除法模式选择信号连接,根据所述一乘除法运算选择信号以及一除法模式选择信号对所述第一、第二操作数进行处理,当所述乘除法运算选择信号为除法时,所述第一、第二操作数分别作为除数和被除数;当所述乘除法运算选择信号为乘法时,所述第一、第二操作数分别作为乘数和被乘数;一迭代运算单元,所述迭代运算单元与所述数据预处理器连接,用于根据所述乘除法运算选择信号,进行余数补零及除数移位,或者进行乘数移位及被乘数扩展;一除法运算单元,所述除法运算单元与所述迭代运算单元连接,用于生成一两位商和一余数;一乘法运算单元,所述乘法运算单元与所述迭代运算单元连接,用于生成一乘积结果;一运算控制计数器,所述运算控制计数器与所述迭代运算单元、除法运算单元、乘法运算单元连接,所述运算控制计数器用于控制所述迭代运算单元的运算位数及运算过程;一结果寄存器,所述结果寄存器与所述除法运算单元及乘法运算单元连接,用于存放所述商、余数或乘积结果。

【技术特征摘要】
1.一种乘除法器,用于实现任意位数无符号或有符号数除法运算和任意位数的无符号乘法运算,其特征在于,所述乘除法器包括:一数据预处理器,所述数据预处理器与一第一、第二操作数、一乘除法运算选择信号以及一除法模式选择信号连接,根据所述一乘除法运算选择信号以及一除法模式选择信号对所述第一、第二操作数进行处理,当所述乘除法运算选择信号为除法时,所述第一、第二操作数分别作为除数和被除数;当所述乘除法运算选择信号为乘法时,所述第一、第二操作数分别作为乘数和被乘数;一迭代运算单元,所述迭代运算单元与所述数据预处理器连接,用于根据所述乘除法运算选择信号,进行余数补零及除数移位,或者进行乘数移位及被乘数扩展;一除法运算单元,所述除法运算单元与所述迭代运算单元连接,用于生成一两位商和一余数;一乘法运算单元,所述乘法运算单元与所述迭代运算单元连接,用于生成一乘积结果;一运算控制计数器,所述运算控制计数器与所述迭代运算单元、除法运算单元、乘法运算单元连接,所述运算控制计数器用于控制所述迭代运算单元的运算位数及运算过程;一结果寄存器,所述结果寄存器与所述除法运算单元及乘法运算单元连接,用于存放所述商、余数或乘积结果;其中,所述迭代运算单元包括一补零单元、移位单元以及一乘数扩展单元,所述补零单元及移位单元与所述除法运算单元连接,所述移位单元与所述乘数扩展单元与所述乘法运算单元连接;当所述乘除法运算选择信号为除法时,所述除法运算单元生成当前余数,并根据所述当前余数、所述除数、所述商生成第一级余数,所述补零单元根据商的位数对所述当前余数与所述第一级余数进行补0,产生两个补零结果;所述移位单元根据所述运算控制计数器的计数值,对新的除数或乘数进行两次左移位,产生两个移位结果;所述乘数扩展单元根据用于根据运算控制计数器的计数值,取被乘数的两位,分别对被乘数的每一位数进行扩展,产生与乘数位数相同的两个扩展结果。2.如权利要求1所述的乘除法器,其特征在于,当所述乘除法运算选择信号为除法时,所述数据预处理器对所述第一操作数和第二操作数取绝对值,并生成一商符号位;当被除数为零时,产生一溢出标志;当所述乘除法运算选择信号为乘法时,所述数据预处理器作为一数据缓冲器。3.如权利要求1所述的乘除法器,其特征在于,所述结果寄存器包括第一寄存器和第二寄存器,所述第一寄存器用于存放所述商或所述乘积结果的高位部分,所述第二寄存器用于存放所述余数或所述乘积结果的低位部分。4.如权利要求1所述的乘除法器,其特征在于,所述运算控制计数器、除法运算单元以及乘法运算单元的时钟频率是所述数据预处理器的m倍,m为自然数。5.如权利要求1所述的乘除法器,其特征在于,所述除法运算单元包括:一两位商生成器,用于根据余数补零及除数移位的结果生成一两位商;一商位存储器,用于保存每次迭代运算产生的两位商并产生所述商;一余数生成器,用于根据所述两位商,分别用余数减去第一次移位结果生成第一级余数,用所述第一级余数减去第二次移位结果生成第二级余...

【专利技术属性】
技术研发人员:严伟杨维张文荣陆健王成王鹏沈骅
申请(专利权)人:上海晟矽微电子股份有限公司北京大学软件与微电子学院无锡产学研合作教育基地
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1