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

文档序号:6511780阅读:465来源:国知局
一种Booth编码器及乘法器的制造方法
【专利摘要】本发明公开了一种Booth编码器及乘法器。针对现有的面向模(2n-2p-1)乘法器耗费资源,速度较低的问题,提出了一种针对模(2n-2p-1)Booth乘法器的Booth编码器,以及基于该Booth编码器的模(2n-2p-1)乘法器。本发明的乘法器,在运算过程中,直接把个部分积和修正项C进行同时压缩,从而实现在运算过程中就实现了修正,大大减少了运算量,从而减少了资源的耗费和关键路径的延迟。
【专利说明】—种Booth编码器及乘法器
【技术领域】
[0001]本发明属于计算机和集成电路领域,尤其涉及一种高速乘法器的设计。
【背景技术】
[0002]在介绍乘法器之前,先对余数系统(RNS, Residue Number Systems)做一说明。余数系统RNS是一种通过一组两两互质余数基的余数来描述数字的数值表征系统。由Im1, m2,...,mj组成的L个余数基,整数X,0≤X〈M,其中M=Hi1Xm2X...XmL,在RNS系统中
有唯一的表示方式为X=U1, χ2,…,xj,a; _〉〃,.,其中〈气表示X对于模Hli的余数。在
余数系统中两个操作数进行操作,操作符为O,可以定义为:(Z1, Z2,..., ZL} = {x1, X2,…,X1J
Θ {yi, y2,…,yj,其中z = {χβ>? )ll:i,这里?可以是模加法,模减法或模乘法。在余数系
统中这些算术运算都是并行执行的,而且处理的都是很小的余数而不是一个很大的数。模(2η-2ρ-1)乘法器可以广泛应用于Fermat数值转换和余数系统以及数字信号处理中,在余数系统中具有非常重要的意义。
[0003]在文献 L.Li, J.Hu, Y.Chen, “An universal architecture for designingmodulo (2n_2p_l) multipliers,,,IEICE Electronics Express, vol.9, n0.3, pp.193-199,Feb.2012提出的乘法器结构需要一个n位Xn位的乘法器,CSA压缩器,一个p位的加法器,三个 η 位的加法器;在文献 A.A.Hiasat, “New Efficient Structure for a ModularMultiplier for RNS”,IEEE Trans.Computers, vol.49,n0.2,pp.170-174,Feb.2000 提出的乘法器结构需要一个n位Xn位的乘法器,一个(n-p-2)位X (p+1)位的乘法器,CSA压缩器,2个η位的加法器,还有复杂的组合逻辑。因此它们耗费资源较多,速度较低。这两种结构都是先进行二进制的乘法运算,再在二进制的乘法运算结果上进行修正,这两种结构都存在修正逻辑过于复杂的问题。

【发明内容】

[0004]本发明的目的是为了解决现有的面向模(2η-2ρ_1)乘法器耗费资源,速度较低的问题,提出了一种针对模(2n_2p-l)B00th乘法器的Booth编码器,以及基于该Booth编码器的模(2n-2p-l)乘法器。
[0005]本发明的技术方案是:一种Booth编码器,由Booth译码器和Booth选择器组成,其中,所述Booth译码器包括第一异或门、第一同或门、第一或非门、第一与门、第二与门和第一或门;所述Booth选择器包括第三与门、第四与门、第二或非门和第二同或门;
[0006]设4=&1^"&^"&(|,8=1311_1"4^"13(|为基于模(2n-2p_l)表示的需要相乘操作的两个操作数;
[0007]Booth译码器:所述第一异或门包括两个输入端,用于输入操作数B相邻的两位b[2k]和b[2k_l],所述第一异或门的输出为Ix [k],作为Booth译码器的第一输出,输入到Booth选择器中;所述第一同或门包括两个输入端,用于输入操作数B相邻的两位b [2k]和b[2k+l],所述第一同或门的输出输入到所述第一或非门;所述第一或非门包括两个输入端,分别用于输入所述第一异或门和所述第一同或门的输出,所述第一或非门的输出为2x [k],输入到所述第二与门,作为Booth译码器的第二输出,并输入到Booth选择器中;所述第一与门的两个输入端,分别用于输入所述第一异或门的输出lx[k]和操作数B的对应位b[2k+l],所述第一与门的输出为s[k].Ix [k],作为Booth译码器的第三输出;所述第二与门的两个输入端,分别用于输入第一或非门的输出2x[k]和操作数B的对应位b[2k+l],所述第二与门的输出为 s[k] *2X[k],作为Booth译码器的第四输出;所述第一或门的两个输入端,分别用于输入所述第一与门和所述第二与门的输出,所述第一或门的输出为zp [k],作为Booth译码器的第五输出输入到Booth选择器中;
[0008]Booth选择器:所述第三与门的两个输入端,分别用于输入操作数A的对应位a [i]和从Booth译码器输出的Ix [k],所述第三与门的输出输入到所述第二或非门的第一输入端;所述第四与门的两个输入端,分别用于输入操作数A的对应位a[i_l]和从Booth译码器输出的2x[k],所述第四与门的输出输入到所述第二或非门第二输入端;所述第二或非门的两个输入端,分别用于输入第三与门和第四与门的输出,所述第二或非门的输出输入到所述第二同或门;所述第二同或门的两个输入端,分别用于输入所述第二或非门的输入和从Booth译码器输出的zp [k],所述第二同或门的输出记为pp [k] [i],作为所述Booth选择器的输出端。
[0009]基于上述Booth编码器,本发明还提出了一种模(2n-2p-l)Booth乘法器,包括:Booth译码器阵列、Booth选择器阵列、压缩阵列和第一模(2n-2p-l)加法器,第二模(2n-2p-l)加法器和第三模(2n-2p-l)加法器,设A和B为基于模(2n_2p_l)表示的需要相乘操作的两个操作数,Y为模(2n-2p-l) Booth乘法器的输出,具体连接方式如下:操作数A作为Booth选择器阵列的输入连接到Booth选择器阵列,操作数B作为Booth译码器阵列的输入连接到Booth译码器阵列,Booth译码器阵列的输出作为输入连接到Booth选择器阵
列,Booth选择器阵列输出
【权利要求】
1.一种Booth编码器,由Booth译码器和Booth选择器组成,其中,所述Booth译码器包括第一异或门、第一同或门、第一或非门、第一与门、第二与门和第一或门;所述Booth选择器包括第三与门、第四与门、第二或非门和第二同或门;(2n-2p-l)表示的需要相乘操作的两个操作数; Booth译码器:所述第一异或门包括两个输入端,用于输入操作数B相邻的两位b [2k]和b[2k-l],所述第一异或门的输出为lx[k],作为Booth译码器的第一输出,输入到Booth选择器中;所述第一同或门包括两个输入端,用于输入操作数B相邻的两位b[2k]和b[2k+l],所述第一同或门的输出输入到所述第一或非门;所述第一或非门包括两个输入端,分别用于输入所述第一异或门和所述第一同或门的输出,所述第一或非门的输出为2x [k],输入到所述第二与门,作为Booth译码器的第二输出并输入到Booth选择器中;所述第一与门的两个输入端,分别用于输入所述第一异或门的输出lx[k]和操作数B的对应位b[2k+l],所述第一与门的输出为s[k].Ix [k],作为Booth译码器的第三输出;所述第二与门的两个输入端,分别用于输入第一或非门的输出2x[k]和操作数B的对应位b[2k+l],所述第二与门的输出为s[k] *2X[k],作为Booth译码器的第四输出;所述第一或门的两个输入端,分别用于输入所述第一与门和所述第二与门的输出,所述第一或门的输出为zp [k],作为Booth译码器的第五输出输入到Booth选择器中; Booth选择器:所述第三与门的两个输入端,分别用于输入操作数A的对应位a[i]和从Booth译码器输出的lx[k],所述第三与门的输出输入到所述第二或非门的第一输入端;所述第四与门的两个输入端,分别用于输入操作数A的对应位a [1-1]和从Booth译码器输出的2x[k],所述第四与门的输出输入到所述第二或非门的第二输入端;所述第二或非门的两个输入端,分别用于输入第三与门和第四与门的输出,所述第二或非门的输出输入到所述第二同或门;所述第二同或门的两个输入端,分别用于输入所述第二或非门的输入和从Booth译码器输出的zp [k],所述第二同或门的输出记为pp [k] [i],作为所述Booth选择器的输出端。
2.基于权利要求1所述Booth编码器的模(2n-2p-l)Booth乘法器,包括:Booth译码器阵列、Booth选择器阵列、压缩阵列和第一模(2n-2p-l)加法器,第二模(2n-2p-l)加法器和第三模(2n-2p-l)加法器,设A和B为基于模(2n-2p-l)表示的需要相乘操作的两个操作数,Y为模(2n-2p-l) Booth乘法器的输出,具体连接方式如下:操作数A作为Booth选择器阵列的输入连接到Booth选择器阵列,操作数B作为Booth译码器阵列的输入连接到Booth译码器阵列,Booth译码器阵列的输出作为输入连接到Booth选择器阵列,Booth选择器阵列输出的$个部分积作为输入连接到压缩阵列,Booth译码器阵列输出的修正项C输入到压缩阵列,其中,
^ r n + l\ ^ r n + l~\ n π, 「η + 1] 、ι1「η + 1
C = s[ — -2].2χ[ — -2]) #(4 — -2].1χ[ — -2])#...#(s[k].2x[k])#(s[k].lx[k])#***#(s[0].2x[0])#(s[0].1χ[0])s [k].Ix [k]和 s[k] *2x[k]
【文档编号】G06F7/533GK103530085SQ201310421299
【公开日】2014年1月22日 申请日期:2013年9月16日 优先权日:2013年9月16日
【发明者】李磊, 李赛野, 杨鹏, 尹鹏胜, 周婉婷 申请人:电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1