除法器及其实现方法技术

技术编号:7048960 阅读:912 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开一种除法器及其实现方法。其中,除法器包括:被除数寄存器;除数寄存器;中间结果寄存器;数据预处理单元;比较器;三路并行加法器阵列,用于对移入中间结果寄存器中的2位被除数分别与数据预处理单元中的1倍除数、2倍除数和3倍除数分别进行相加或相减的迭代运算,分别产生3个2位商以及3个余数;判定单元;选择单元,用于在判断3个余数的符号与被除数的符号一致时,确定本次运算周期的2位商和相应的部分余数,将2位商被除数寄存器的最低2位,把相应的部分余数左移2位放入至中间结果寄存器中。本发明专利技术适合在微处理器或ASIC中实现,通用性较强;且由于所用器件门数较少,运算效率高。

【技术实现步骤摘要】

本专利技术涉及一种数字信号处理电路,尤其是涉及一种由微处理器或ASIC中实现能快速处理任意32位有符号或无符号的整数除法运算的。
技术介绍
在数字处理的各种运算当中,除法是算法实现最复杂,硬件开销最大的一种运算, 但对于高性能计算同时也是最具挖掘潜力的部分。在数字信号处理中,经常会涉及到除法运算,如归一化最小均方差的计算。但是在现有的芯片中并没有实现除法功能的芯片,在高级硬件描述语言中也没有可综合的除法语句,如新思(SYN0PSY)公司提供的设计软件包。传统的除法算法每次迭代只产生1位商数字,比如MIPS CPU计算32位除法时,便需要至少32个时钟周期。专利号为95107302的中国专利“除法快速运算方法与装置”提供了一种无需硬件的二位元除法运算方法与装置,该方法与装置采用二进制的位移及加法的技巧以减化除法的运算过程,但它是以微处理器为运算平台,由指令实现的除法运算。专利号为89106625的中国专利“冗余高速阵列除法器”采用了二级运算构成的冗余码与二进制混合使用的冗余码加法单元组成除法阵列,并采用二选一的选择器构成将冗余码的商直接转换成二进制形式的阵列转换电路,其电路结构较复杂。专利号为5485414 的美国专利 “Divider circuit which calculates an integral quotient of an integraldivisor”,其电路中包括有乘法运算单元,电路结构较复杂。在塞灵思(XILINX)公司的FPGA开发工具FOUNDATION中提供了实现除法的IP内核,但只给出外部接口定义,未描述内部结构,在使用该IP内核时会出现以下几个缺点1) 由于该内核以黑匣的形式给出,只有端口定义,内部结构不详,因此不便移植,且只能用于 XILINX公司的FPGA上;2)资源消耗大,如果实现一个32位除以16位的除法器,电路门数需要约沈000门,用XILINX公司的XCV50E,还不能放下两个这样的除法器;3)实现时间长, 以32位除以16位的除法器为例,完成一次运算需要沈个时钟周期。
技术实现思路
针对上述问题,本专利技术提出了一种在微处理器或ASIC中实现的,以解决现有技术中除法器较难移植、实现较复杂、硬件资源占用大、运算时间长的缺点ο本专利技术采用如下技术方案实现一种除法器,其包括 用于存储被除数的被除数寄存器;用于存储除数的除数寄存器; 用于存储中间结果的中间结果寄存器;数据预处理单元,用于在数据预处理时同时存储1倍除数、2倍除数和3倍除数,且与被除数寄存器联合左移,从被除数寄存器中被除数的最高位开始,以每周期2位的速率进行左移,并把移出的两位移入中间结果寄存器的最低2位;比较器,通过将被除数与除数的符号进行比较,决定接下来迭代求商过程的比较运算是进行加法还是减法,如果两符号相同,则执行减法操作,如果两符号相异,则执行加法操作;三路并行加法器阵列,用于对移入中间结果寄存器中的2位被除数分别与数据预处理单元中的1倍除数、2倍除数和3倍除数分别进行相加或相减的迭代运算,分别产生3个2 位商以及3个余数;判定单元,用于判断3个余数的符号是否与被除数的符号一致; 选择单元,用于在判断3个余数的符号与被除数的符号一致时,确定本次运算周期的2 位商和相应的部分余数,将2位商被除数寄存器的最低2位,把相应的部分余数左移2位放入至中间结果寄存器中;依次将被除数以每运算周期2位的速率移入中间结果寄存器,直到被除数寄存器中被除数已全部移入中间结果寄存器,则由判定单元判断被除数与除数的最高位是否相同,若是,则存放在被除数寄存器中的值为被除数/除数的商,否则,将被除数寄存器中的值按位取反后,最后加1等到补码,该补码为被除数/除数的商。在一个优选实施例中,数据预处理单元包括输入端连接除数寄存器输出端的移位器,用于通过移位产生2倍的除数; 两个输入端分别连接移位器输出端和除数寄存器输出端的加法器; 并联的第一寄存器、第二寄存器和第三寄存器,用于分别存储1倍除数Bl、2倍除数B2 和3倍除数B3;3个并联连接在比较器输出端的反相器,用于复用比较器的结果,分别输出Cl、C2和C3。在一个优选实施例中,三路并行加法器阵列包括3个并联连接中间结果寄存器的第一加法器、第二加法器和第三加法器,且第一加法器、第二加法器和第三加法器的进位输入端分别连接3个反相器输出的Cl、C2和C3,第一加法器、第二加法器和第三加法器的被加数输入端均连接中间结果寄存器,而第一加法器、第二加法器和第三加法器的加数输入端分别连接第一寄存器输出的1倍除数Bl、第二寄存器输出的2倍除数B2和第三寄存器输出的3倍除数B3。在一个优选实施例中,第一加法器、第二加法器和第三加法器是三个同构的超前进位加法器。在一个优选实施例中,选择单元是根据判定单元所产生的当下优先级最高的商和部分余数的选择信号,确定本运算周期对应的商和部分余数。在一个优选实施例中,选择单元包括输入端均为判定单元产生的选择信号S3/ S2/S1/S0、输出端均为data3/ data2/ datal/ dataO端口的2位商产生单元和部分余数产生单元,用于通过判定单元产生的选择信号S3/S2/S1/S0,选择合适的2位商和部分余数 当 S3/S2/S1/S0=1000 时,均选择 data3 端口 ;当 S3/S2/S1/S0=0100 时,均选择 data2 端口 ; 当 S3/S2/S1/S0=0010 时,选择 datal 端口;当 S3/S2/S1/S0=0001 时,选择 dataO 端口 ;其中,2位商产生单元的data3/ data2/ datal/ dataO端口分别是11、10、01、00 ;余数产生单元的data3/ data2/ datal/ dataO端口分别是由三路并行加法器阵列产生3个余数。另外,本专利技术公开一种除法器的实现方法,其包括步骤A、将被除数存入被除数寄存器,除数存入除数寄存器,将1倍除数、2倍除数和3倍除数均存入数据预处理单元中;B、从被除数寄存器中被除数的最高位开始,以每周期2位的速率进行左移,并把移出的两位移入中间结果寄存器的最低2位;C、由三路并行加法器阵列对移入中间结果寄存器中的2位被除数分别与数据预处理单元中的1倍除数、2倍除数和3倍除数分别进行相加或相减的迭代运算,分别产生3个2 位商以及3个余数;D、由判定单元判断3个余数的符号是否与被除数的符号一致,若是,转入步骤E,否则转入步骤B重复本次运算周期;E、由选择单元确定本次运算周期的2位商和相应的部分余数,将2位商被除数寄存器的最低2位,把相应的部分余数左移2位放入至中间结果寄存器中;F、判断被除数寄存器中被除数是否已全部移入中间结果寄存器,若否,则转入步骤B 执行下一次运算周期,否则,转入步骤G ;G、判断被除数与除数的最高位是否相同,若是,则存放在被除数寄存器中的值为被除数/除数的商,否则,将被除数寄存器中的值按位取反后,最后加1等到补码,该补码为被除数/除数的商。与现有技术相比,本专利技术具有如下有益效果本专利技术所述除法器把除法运算化成移位运算和减法运算,便于硬件电路的实现,适合在微处理器或ASIC中实现,通用性较强;且由于所用器件门数较少,运算时间短,与现有技术相比,运算本文档来自技高网
...

【技术保护点】
1.一种除法器,其特征在于,包括:用于存储被除数的被除数寄存器;用于存储除数的除数寄存器;用于存储中间结果的中间结果寄存器;数据预处理单元,用于在数据预处理时同时存储1倍除数、2倍除数和3倍除数,且与被除数寄存器联合左移,从被除数寄存器中被除数的最高位开始,以每周期2位的速率进行左移,并把移出的两位移入中间结果寄存器的最低2位;比较器,通过将被除数与除数的符号进行比较,决定接下来迭代求商过程的比较运算是进行加法还是减法,如果两符号相同,则执行减法操作,如果两符号相异,则执行加法操作;三路并行加法器阵列,用于对移入中间结果寄存器中的2位被除数分别与数据预处理单元中的1倍除数、2倍除数和3倍除数分别进行相加或相减的迭代运算,分别产生3个2位商以及3个余数;判定单元,用于判断3个余数的符号是否与被除数的符号一致;选择单元,用于在判断3个余数的符号与被除数的符号一致时,确定本次运算周期的2位商和相应的部分余数,将2位商被除数寄存器的最低2位, 把相应的部分余数左移2位放入至中间结果寄存器中;依次将被除数以每运算周期2位的速率移入中间结果寄存器,直到被除数寄存器中被除数已全部移入中间结果寄存器,则由判定单元判断被除数与除数的最高位是否相同,若是,则存放在被除数寄存器中的值为被除数/除数的商,否则,将被除数寄存器中的值按位取反后,最后加1等到补码,该补码为被除数/除数的商。...

【技术特征摘要】
1.一种除法器,其特征在于,包括 用于存储被除数的被除数寄存器; 用于存储除数的除数寄存器;用于存储中间结果的中间结果寄存器;数据预处理单元,用于在数据预处理时同时存储1倍除数、2倍除数和3倍除数,且与被除数寄存器联合左移,从被除数寄存器中被除数的最高位开始,以每周期2位的速率进行左移,并把移出的两位移入中间结果寄存器的最低2位;比较器,通过将被除数与除数的符号进行比较,决定接下来迭代求商过程的比较运算是进行加法还是减法,如果两符号相同,则执行减法操作,如果两符号相异,则执行加法操作;三路并行加法器阵列,用于对移入中间结果寄存器中的2位被除数分别与数据预处理单元中的1倍除数、2倍除数和3倍除数分别进行相加或相减的迭代运算,分别产生3个2 位商以及3个余数;判定单元,用于判断3个余数的符号是否与被除数的符号一致; 选择单元,用于在判断3个余数的符号与被除数的符号一致时,确定本次运算周期的2 位商和相应的部分余数,将2位商被除数寄存器的最低2位,把相应的部分余数左移2位放入至中间结果寄存器中;依次将被除数以每运算周期2位的速率移入中间结果寄存器,直到被除数寄存器中被除数已全部移入中间结果寄存器,则由判定单元判断被除数与除数的最高位是否相同,若是,则存放在被除数寄存器中的值为被除数/除数的商,否则,将被除数寄存器中的值按位取反后,最后加1等到补码,该补码为被除数/除数的商。2.根据权利要求1所述加法器,其特征在于,数据预处理单元包括 输入端连接除数寄存器输出端的移位器,用于通过移位产生2倍的除数; 两个输入端分别连接移位器输出端和除数寄存器输出端的加法器;并联的第一寄存器、第二寄存器和第三寄存器,用于分别存储1倍除数Bl、2倍除数B2 和3倍除数B3 ;3个并联连接在比较器输出端的反相器,用于复用比较器的结果,分别输出C1、C2和C3。3.根据权利要求2所述加法器,其特征在于,三路并行加法器阵列包括3个并联连接中间结果寄存器的第一加法器、第二加法器和第三加法器,且第一加法器、第二加法器和第三加法器的进位输入端分别连接3个反相器输出的Cl、C2和C3,第一加法器、第二加法器和第三加法器的被加数输入端均连接中间结果寄存器,而第一加法器、第二加法器和第三加法器的加数输入端分别连接第一寄存器输出的1倍除数Bi、第二寄存器输出的2倍除数 B2和第三寄存器输出的3倍除数B3。4....

【专利技术属性】
技术研发人员:刘燚
申请(专利权)人:深圳市国微电子股份有限公司
类型:发明
国别省市:94

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

1