一种Booth编码器及乘法器的制作方法

文档序号:6423833阅读:413来源:国知局
专利名称:一种Booth编码器及乘法器的制作方法
技术领域
本发明属于计算机和集成电路领域,尤其涉及一种高速乘法器的设计。
背景技术
在介绍乘法器之前,先对余数系统(RNS,Residue Number Systems)做一说明。余数系统RNS是一种通过一组两两互质余数基的余数来描述数字的数值表征系统。由Itvm2, L,mL}组成的L个余数基,整数X,0彡X < M,其中M = Hi1Xm2XLXmL,在RNS系统中有唯一
的表示方式为X= Ix1, x2,L,XjA=^Om,,其中〈Z〉m,表示X对于模Hii的余数。在余数系
统中两个操作数进行操作,操作符为 ,可以定义为Iz1, Z2, L,zL} = Ix1, x2, L,xL} Θ {Yl,
%丄,3^},其中=〈Χ;Θ兄〉 ,这里Θ可以是模加法,模减法或模乘法。在余数系统中这些
算术运算都是并行执行的,而且处理的都是很小的余数而不是一个很大的数。对于余数基的选择,{2η,2η_1,2η+1}和{2^2^1,2^-1}这两组余数基得到了广泛的应用,因为当考虑areaXtime2时,它们提供了最有效的电路,并且在余数系统与二进制的互转过程中也是最有效的。由此可见,对于模On-D乘法器的研究是非常有意义的。模Qn-I)乘法器已经广泛应用于format数值转换和余数系统以及数字信号处理中。近年来一些模On-I)乘法器已经被提出,比较有效的是由A. Skavantzos和P. B. Rao 在文献“New Multipliers Modulo 2n_l,IEEE Trans. Computers, vol. 41, no. 8,957-961, Aug. 1992”中提出的基于查找表的模(2n-l)乘法器。但是随着模的增大,ROM的大小也成指数增长,因此对于不是很大的模来说,建立组合硬件的方法更合适。Z. Wang,GA. Jullien, 和 W. C.Miller 在文献“An Algorithm for Multiplication Modulo (2n-l), Proc. 39th Midwest Synp. Circuits and Systems,1301-1304,1997” 提出了基于 Wallace trees 的模 (2n-l)乘法器,但其中的部分项与操作数长度是成比例关系,耗费资源,降低了乘法器的运算速度。

发明内容
本发明的目的是为了解决现有的面向模On-I)乘法器耗费资源,速度较低的问题,提出了一种用于模On-DBooth乘法器的Booth编码器,以及基于该Booth编码器的模 (2n-l)乘法器。本发明的技术方案是一种Booth编码器,由Booth译码器和Booth选择器组成, 其中,所述Booth译码器包括第一异或门;所述Booth选择器包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器;设A = Bn^1LaiLa0, B = Iv1LbiLbtl为基于模 (2n-l)表示的需要相乘操作的两个操作数;所述第一异或门包括两个输入端,用于输入操作数B相邻的两位b2k、b^^ ;所述第一二选一反相多路复用器和第二二选一反相多路复用器分别包括两个数据输入端和一个片选输入端,其中,所述第一二选一反相多路复用器的两个数据输入端分别用于输入操作数B相邻的两位l32k+1、b2k,所述第一二选一反相多路复用器的片选输入端用于输入操作数A中的取一位^v1 ;所述第一同或门包括两个输入端,用于输入操作数A中的%和操作数B中的l32k+1 ;所述第二二选一反相多路复用器的两个数据输入端分别用于输入所述第一二选一反相多路复用器的输出端信号和所述第一同或门的输出端信号;所述第二二选一反相多路复用器的片选输入端用于输入所述第一异或门的输出端信号;所述第二二选一反相多路复用器的输出端信号即是第k个部分积的第i位的逻辑值。基于上述Booth编码器,本发明还提出了一种模Qn-I)Booth乘法器,包括Booth 译码器阵列、Booth选择器阵列、压缩阵列和模Qn-I)加法器,设A和B为基于模Qn-I)表示的需要相乘操作的两个操作数,Y为模(2n_l)Booth乘法器的输出,具体连接方式如下操作数A和B作为Booth选择器阵列的输入连接到Booth选择器阵列,操作数B作为Booth译码器阵列的输入连接到Booth译码器阵列,Booth译码器阵列的输出作为输入连接到Booth
选择器阵列,Booth选择器阵列输出的*个部分积作为输入连接到压缩阵列,压缩阵列的
两个输出作为输入连接到模On-D加法器,模On-D加法器的输出为模On-D乘法器的输出Y。本发明的有益效果本发明提供了一种Booth编码器以及基于此Booth编码器实现的模On-I)乘法器,在运算过程中,需要i个部分积,进而把模On-I)乘法器的中间部
分积从η个减少为i个,大大减少了运算量,从而减少了资源的耗费和关键路径的延迟。


图1是本发明的Booth译码器的结构示意图,其中100为第一异或门。图2是本发明的Booth选择器的结构示意图,其中400为第一同或门,200和300 分别为第一二选一反相多路复用器和第二二选一反相多路复用器。图3是本发明的Booth编码器组合结构示意图。图4是本发明的二选一反相多路复用器结构示意图,其逻辑表达式为 X = (D0-S + D\-S)。图5是本发明的模(2n_l)乘法器结构示意图。图6是本发明实施例的模O8-I)乘法器结构示意图。
具体实施例方式下面结合附图和具体的实例对本发明做进一步的说明。如图3所示,一种Booth编码器,由Booth译码器和Booth选择器组成,其中,Booth 译码器如图1所示,包括第一异或门,其中100为第一异或门;Booth选择器如图2所示,包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器,其中400为第一同或门,200和300分别为第一二选一反相多路复用器和第二二选一反相多路复用器,二选一反相多路复用器的结构示意图如图4所示,其逻辑表达式为Ζ =。设A = Bn^1LaiLa0, B = V1LbiLbtl为基于模Qn-I)表示的需要相乘操作的两个操作数,其中η为不小于1的自然数。所述第一异或门100包括两个输入端,用于输入操作数B相邻的两位l32k、 1 ^ ;所述第一二选一反相多路复用器200和第二二选一反相多路复用器300分别包括两个数据输入端和一个片选输入端,其中,所述第一二选一反相多路复用器200的两个数据输入端分别用于输入操作数B相邻的两位b2k+1、b2k,所述第一二选一反相多路复用器200的片选输入端用于输入操作数A中的任一位^v1 ;所述第一同或门400包括两个输入端,用于输入操作数A中的 和操作数B中的l32k+1 ;所述第二二选一反相多路复用器300的两个数据输入端分别用于输入所述第一二选一反相多路复用器200的输出端信号和所述第一同或门400的输出端信号;所述第二二选一反相多路复用器300的片选输入端用于输入所述第一异或门100的输出端信号;所述第二二选一反相多路复用器300的输出端信号即是第 k个部分积的第i位的逻辑值,记为ppk, i。这里i,k为整数。基于上述Booth编码器,本发明乘法器的具体结构如图5所示,包括Booth译码器阵列、Booth选择器阵列、压缩阵列和模Qn-I)加法器,设A和B为基于模Qn-I)表示的需要相乘操作的两个操作数,Y为模On-D乘法器的输出,具体连接方式操作数A和B作为 Booth选择器阵列的输入输入到Booth选择器阵列,操作数B作为Booth译码器阵列的输入输入到Booth译码器阵列,Booth译码器阵列的输出H输入到Booth选择器阵列,Booth选
择器阵列的输出\个部分积,记为^^ JAl,,+J^jy,输入到压缩阵列,压缩阵列
的输出4和&输入到模On-D加法器,模On-D加法器的输出即为模On-D乘法器的输出Y。这里「1表示大于或者等于*的最小整数。这里的Booth译码器阵列是由数个Booth译码器组成,Booth选择器阵列是由数个Booth选择器阵列组成,其数目由具体的操作数A和B决定。根据上述Booth编码器的具体结构,可以看出操作数与Booth译码器和Booth选择器连接关系任选其中一个作为Booth操作数,假设为B,按照{b2j+1,b2J, b2J_J对其进行
分组,共有\组,任选择一组{b2k+1,b2k, I32kJ,然后根据{b2k+1,b2k, b2k_J以及另一个操作
数A的对应信号IaiWiJ通过Booth译码器和Booth选择器产生对应部分积的输出,记为
PPk,i,为第k个部分积的第i位的逻辑值,易知一个Booth译码器产生一个部分积,共有*
个部分积。可以看出,在运算过程中,本发明的模Qn-I)乘法器需要*个部分积,进而把模
(2n-l)乘法器的中间部分积从η个减少为*个,大大减少了运算量,从而减少了耗费的资源和关键路径的延迟。下面以模Q8-I)乘法器为例来说明模On-I)乘法器的具体实现方式。图6所示为模Q8-I)乘法器的结构图,其中1、2、3和4为由Booth译码器组成的 Booth译码器阵列,5-36为由Booth选择器组成的Booth选择器阵列,37_52为全加器组成的压缩阵列,53为模Q8-I)的加法器。1-4的Booth译码器阵列、5-36的Booth选择器阵列和操作数A = Bn^1LaiLa0, 一起用来产生部分积,部分积的每个字节通过Booth选择器生成,产生的部分积通过几级相加最后简化为2个。每一级最高位的进位输出权为2n,它通过模O8-D运算后,变为1,因此这些最高位的进位通过循环操作的形式被加到下一级操作数的最低位。压缩部分积的方法有多种,其中最常用的是CSA序列和WallaceTree结构。一个全加器可以被看作是一个(3:2)的压缩器,压缩产生的两个操作数通过53模Q8-I)加法器得到最后的结果,其它模O8-D乘法器可以通过相同或者相似的实现方法实现。本发明提出了一种新的Booth编码器,并基于提出的Booth编码器,设计了一种高速模Qn-I)乘法器。在本发明的实施中,需要采用硬件描述语言按照Booth编码器的结构设计相应的Booth编码器,进而按照模Qn-I)乘法器的结构设计出所需的模On-I)乘法器,便可进行仿真和综合。该乘法器采用CSA或者Wallace Tree结构可以进一步提高运算速度。此乘法器在一个时钟周期内可以完成所需运算,简单高速高效。本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。本发明专利未做详细说明的内容属于本领域技术人员的公知技术。
权利要求
1.一种Booth编码器,由Booth译码器和Booth选择器组成,其特征在于,所述Booth 译码器包括第一异或门;所述Booth选择器包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器;设A = ^1LaiLa05B = Iv1LbiLbtl为基于模Qn-I)表示的需要相乘操作的两个操作数;所述第一异或门包括两个输入端,用于输入操作数B相邻的两位1%、b^-!;所述第一二选一反相多路复用器和第二二选一反相多路复用器分别包括两个数据输入端和一个片选输入端,其中,所述第一二选一反相多路复用器的两个数据输入端分别用于输入操作数B相邻的两位l32k+1、b2k,所述第一二选一反相多路复用器的片选输入端用于输入操作数A中的任一位^v1 ;所述第一同或门包括两个输入端,用于输入操作数A 中的%和操作数B中的l32k+1 ;所述第二二选一反相多路复用器的两个数据输入端分别用于输入所述第一二选一反相多路复用器的输出端信号和所述第一同或门的输出端信号;所述第二二选一反相多路复用器的片选输入端用于输入所述第一异或门的输出端信号;所述第二二选一反相多路复用器的输出端信号即是第k个部分积的第i位的逻辑值。
2.—种模Qn-I)乘法器,包括Booth译码器阵列、Booth选择器阵列、压缩阵列和模 (2n-l)加法器,设A和B为基于模Qn-I)表示的需要相乘操作的两个操作数,具体连接关系如下操作数A和B作为Booth选择器阵列的输入输入到Booth选择器阵列,操作数B作为 Booth译码器阵列的输入输入到Booth译码器阵列,Booth译码器阵列的输出输入到Booth选择器阵列,Booth选择器阵列输出*个部分积到压缩阵列,压缩阵列的输出输入到模On-D加法器,模On-D加法器的输出即为模On-D乘法器的输出。
全文摘要
本发明公开了一种Booth编码器以及基于该Booth编码器的模(2n-1)乘法器。本发明是针对现有的模(2n-1)乘法器耗费资源,速度较低而提出的。其中,Booth编码器由Booth译码器和Booth选择器组成,Booth译码器包括第一异或门;Booth选择器包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器。一种模(2n-1)乘法器,包括Booth译码器阵列、Booth选择器阵列、压缩阵列和模(2n-1)加法器。本发明的面向模(2n-1)Booth乘法器,在运算过程中,需要个部分积,进而把模(2n-1)乘法器的中间部分积从n个减少为个,大大减少了运算量,从而减少了资源的耗费和关键路径的延迟。
文档编号G06F7/72GK102184086SQ20111012055
公开日2011年9月14日 申请日期2011年5月11日 优先权日2011年5月11日
发明者刘辉华, 周婉婷, 敖思远, 李磊 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1