CN102184086A - 一种Booth编码器及乘法器 - Google Patents
一种Booth编码器及乘法器 Download PDFInfo
- Publication number
- CN102184086A CN102184086A CN2011101205556A CN201110120555A CN102184086A CN 102184086 A CN102184086 A CN 102184086A CN 2011101205556 A CN2011101205556 A CN 2011101205556A CN 201110120555 A CN201110120555 A CN 201110120555A CN 102184086 A CN102184086 A CN 102184086A
- Authority
- CN
- China
- Prior art keywords
- booth
- mould
- input
- alternative
- array
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种Booth编码器以及基于该Booth编码器的模(2n-1)乘法器。本发明是针对现有的模(2n-1)乘法器耗费资源,速度较低而提出的。其中,Booth编码器由Booth译码器和Booth选择器组成,Booth译码器包括第一异或门;Booth选择器包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器。一种模(2n-1)乘法器,包括Booth译码器阵列、Booth选择器阵列、压缩阵列和模(2n-1)加法器。本发明的面向模(2n-1)Booth乘法器,在运算过程中,需要个部分积,进而把模(2n-1)乘法器的中间部分积从n个减少为个,大大减少了运算量,从而减少了资源的耗费和关键路径的延迟。
Description
技术领域
本发明属于计算机和集成电路领域,尤其涉及一种高速乘法器的设计。
背景技术
在介绍乘法器之前,先对余数系统(RNS,Residue Number Systems)做一说明。余数系统RNS是一种通过一组两两互质余数基的余数来描述数字的数值表征系统。由{m1,m2,L,mL}组成的L个余数基,整数X,0≤X<M,其中M=m1×m2×L×mL,在RNS系统中有唯一的表示方式为X={x1,x2,L,xL},其中表示X对于模mi的余数。在余数系统中两个操作数进行操作,操作符为Θ,可以定义为:{z1,z2,L,zL}={x1,x2,L,xL}Θ{y1,y2,L,yL},其中这里Θ可以是模加法,模减法或模乘法。在余数系统中这些算术运算都是并行执行的,而且处理的都是很小的余数而不是一个很大的数。
对于余数基的选择,{2n,2n-1,2n+1}和{2n,2n-1,2n-1-1}这两组余数基得到了广泛的应用,因为当考虑area×time2时,它们提供了最有效的电路,并且在余数系统与二进制的互转过程中也是最有效的。由此可见,对于模(2n-1)乘法器的研究是非常有意义的。
模(2n-1)乘法器已经广泛应用于Fermat数值转换和余数系统以及数字信号处理中。近年来一些模(2n-1)乘法器已经被提出,比较有效的是由A.Skavantzos和P.B.Rao在文献“New Multipliers Modulo 2n-1,IEEE Trans.Computers,vol.41,no.8,957-961,Aug.1992”中提出的基于查找表的模(2n-1)乘法器。但是随着模的增大,ROM的大小也成指数增长,因此对于不是很大的模来说,建立组合硬件的方法更合适。Z.Wang,GA.Jullien,和W.C.Miller在文献“An Algorithm for Multiplication Modulo(2n-1),Proc.39th Midwest Synp.Circuits and Systems,1301-1304,1997”提出了基于Wallace trees的模(2n-1)乘法器,但其中的部分项与操作数长度是成比例关系,耗费资源,降低了乘法器的运算速度。
发明内容
本发明的目的是为了解决现有的面向模(2n-1)乘法器耗费资源,速度较低的问题,提出了一种用于模(2n-1)Booth乘法器的Booth编码器,以及基于该Booth编码器的模(2n-1)乘法器。
本发明的技术方案是:一种Booth编码器,由Booth译码器和Booth选择器组成,其中,所述Booth译码器包括第一异或门;所述Booth选择器包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器;设A=an-1LaiLa0,B=bn-1LbiLb0为基于模(2n-1)表示的需要相乘操作的两个操作数;所述第一异或门包括两个输入端,用于输入操作数B相邻的两位b2k、b2k-1;所述第一二选一反相多路复用器和第二二选一反相多路复用器分别包括两个数据输入端和一个片选输入端,其中,所述第一二选一反相多路复用器的两个数据输入端分别用于输入操作数B相邻的两位b2k+1、b2k,所述第一二选一反相多路复用器的片选输入端用于输入操作数A中的取一位ai-1;所述第一同或门包括两个输入端,用于输入操作数A中的ai和操作数B中的b2k+1;所述第二二选一反相多路复用器的两个数据输入端分别用于输入所述第一二选一反相多路复用器的输出端信号和所述第一同或门的输出端信号;所述第二二选一反相多路复用器的片选输入端用于输入所述第一异或门的输出端信号;所述第二二选一反相多路复用器的输出端信号即是第k个部分积的第i位的逻辑值。
基于上述Booth编码器,本发明还提出了一种模(2n-1)Booth乘法器,包括Booth译码器阵列、Booth选择器阵列、压缩阵列和模(2n-1)加法器,设A和B为基于模(2n-1)表示的需要相乘操作的两个操作数,Y为模(2n-1)Booth乘法器的输出,具体连接方式如下:操作数A和B作为Booth选择器阵列的输入连接到Booth选择器阵列,操作数B作为Booth译码器阵列的输入连接到Booth译码器阵列,Booth译码器阵列的输出作为输入连接到Booth选择器阵列,Booth选择器阵列输出的个部分积作为输入连接到压缩阵列,压缩阵列的两个输出作为输入连接到模(2n-1)加法器,模(2n-1)加法器的输出为模(2n-1)乘法器的输出Y。
附图说明
图1是本发明的Booth译码器的结构示意图,其中100为第一异或门。
图2是本发明的Booth选择器的结构示意图,其中400为第一同或门,200和300分别为第一二选一反相多路复用器和第二二选一反相多路复用器。
图3是本发明的Booth编码器组合结构示意图。
图5是本发明的模(2n-1)乘法器结构示意图。
图6是本发明实施例的模(28-1)乘法器结构示意图。
具体实施方式
下面结合附图和具体的实例对本发明做进一步的说明。
如图3所示,一种Booth编码器,由Booth译码器和Booth选择器组成,其中,Booth译码器如图1所示,包括第一异或门,其中100为第一异或门;Booth选择器如图2所示,包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器,其中400为第一同或门,200和300分别为第一二选一反相多路复用器和第二二选一反相多路复用器,二选一反相多路复用器的结构示意图如图4所示,其逻辑表达式为设A=an-1LaiLa0,B=bn-1LbiLb0为基于模(2n-1)表示的需要相乘操作的两个操作数,其中n为不小于1的自然数。所述第一异或门100包括两个输入端,用于输入操作数B相邻的两位b2k、b2k-1;所述第一二选一反相多路复用器200和第二二选一反相多路复用器300分别包括两个数据输入端和一个片选输入端,其中,所述第一二选一反相多路复用器200的两个数据输入端分别用于输入操作数B相邻的两位b2k+1、b2k,所述第一二选一反相多路复用器200的片选输入端用于输入操作数A中的任一位ai-1;所述第一同或门400包括两个输入端,用于输入操作数A中的ai和操作数B中的b2k+1;所述第二二选一反相多路复用器300的两个数据输入端分别用于输入所述第一二选一反相多路复用器200的输出端信号和所述第一同或门400的输出端信号;所述第二二选一反相多路复用器300的片选输入端用于输入所述第一异或门100的输出端信号;所述第二二选一反相多路复用器300的输出端信号即是第k个部分积的第i位的逻辑值,记为ppk,i。这里i,k为整数。
基于上述Booth编码器,本发明乘法器的具体结构如图5所示,包括Booth译码器阵列、Booth选择器阵列、压缩阵列和模(2n-1)加法器,设A和B为基于模(2n-1)表示的需要相乘操作的两个操作数,Y为模(2n-1)乘法器的输出,具体连接方式:操作数A和B作为Booth选择器阵列的输入输入到Booth选择器阵列,操作数B作为Booth译码器阵列的输入输入到Booth译码器阵列,Booth译码器阵列的输出H输入到Booth选择器阵列,Booth选择器阵列的输出个部分积,记为输入到压缩阵列,压缩阵列的输出Z1和Z2输入到模(2n-1)加法器,模(2n-1)加法器的输出即为模(2n-1)乘法器的输出Y。这里表示大于或者等于*的最小整数。
这里的Booth译码器阵列是由数个Booth译码器组成,Booth选择器阵列是由数个Booth选择器阵列组成,其数目由具体的操作数A和B决定。
根据上述Booth编码器的具体结构,可以看出操作数与Booth译码器和Booth选择器连接关系:任选其中一个作为Booth操作数,假设为B,按照{b2j+1,b2j,b2j-1}对其进行分组,共有组,任选择一组{b2k+1,b2k,b2k-1},然后根据{b2k+1,b2k,b2k-1}以及另一个操作数A的对应信号{ai,ai-1}通过Booth译码器和Booth选择器产生对应部分积的输出,记为ppk,i,为第k个部分积的第i位的逻辑值,易知一个Booth译码器产生一个部分积,共有个部分积。
下面以模(28-1)乘法器为例来说明模(2n-1)乘法器的具体实现方式。
图6所示为模(28-1)乘法器的结构图,其中1、2、3和4为由Booth译码器组成的Booth译码器阵列,5-36为由Booth选择器组成的Booth选择器阵列,37-52为全加器组成的压缩阵列,53为模(28-1)的加法器。1-4的Booth译码器阵列、5-36的Booth选择器阵列和操作数A=an-1LaiLa0,一起用来产生部分积,部分积的每个字节通过Booth选择器生成,产生的部分积通过几级相加最后简化为2个。每一级最高位的进位输出权为2n,它通过模(28-1)运算后,变为1,因此这些最高位的进位通过循环操作的形式被加到下一级操作数的最低位。压缩部分积的方法有多种,其中最常用的是CSA序列和WallaceTree结构。一个全加器可以被看作是一个(3:2)的压缩器,压缩产生的两个操作数通过53模(28-1)加法器得到最后的结果,其它模(28-1)乘法器可以通过相同或者相似的实现方法实现。
本发明提出了一种新的Booth编码器,并基于提出的Booth编码器,设计了一种高速模(2n-1)乘法器。在本发明的实施中,需要采用硬件描述语言按照Booth编码器的结构设计相应的Booth编码器,进而按照模(2n-1)乘法器的结构设计出所需的模(2n-1)乘法器,便可进行仿真和综合。该乘法器采用CSA或者Wallace Tree结构可以进一步提高运算速度。此乘法器在一个时钟周期内可以完成所需运算,简单高速高效。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。本发明专利未做详细说明的内容属于本领域技术人员的公知技术。
Claims (2)
1.一种Booth编码器,由Booth译码器和Booth选择器组成,其特征在于,所述Booth译码器包括第一异或门;所述Booth选择器包括第一同或门、第一二选一反相多路复用器和第二二选一反相多路复用器;设A=an-1LaiLa0,B=bn-1LbiLb0为基于模(2n-1)表示的需要相乘操作的两个操作数;所述第一异或门包括两个输入端,用于输入操作数B相邻的两位b2k、b2k-1;所述第一二选一反相多路复用器和第二二选一反相多路复用器分别包括两个数据输入端和一个片选输入端,其中,所述第一二选一反相多路复用器的两个数据输入端分别用于输入操作数B相邻的两位b2k+1、b2k,所述第一二选一反相多路复用器的片选输入端用于输入操作数A中的任一位ai-1;所述第一同或门包括两个输入端,用于输入操作数A中的ai和操作数B中的b2k+1;所述第二二选一反相多路复用器的两个数据输入端分别用于输入所述第一二选一反相多路复用器的输出端信号和所述第一同或门的输出端信号;所述第二二选一反相多路复用器的片选输入端用于输入所述第一异或门的输出端信号;所述第二二选一反相多路复用器的输出端信号即是第k个部分积的第i位的逻辑值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101205556A CN102184086B (zh) | 2011-05-11 | 2011-05-11 | 一种Booth编码器及乘法器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011101205556A CN102184086B (zh) | 2011-05-11 | 2011-05-11 | 一种Booth编码器及乘法器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102184086A true CN102184086A (zh) | 2011-09-14 |
CN102184086B CN102184086B (zh) | 2012-11-07 |
Family
ID=44570266
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011101205556A Expired - Fee Related CN102184086B (zh) | 2011-05-11 | 2011-05-11 | 一种Booth编码器及乘法器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102184086B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622466A (zh) * | 2012-02-17 | 2012-08-01 | 浙江大学 | 一种基于标准单元库扩展的乘法器的eco优化方法 |
CN102722352A (zh) * | 2012-05-21 | 2012-10-10 | 华南理工大学 | 一种Booth乘法器 |
CN103412737A (zh) * | 2013-06-27 | 2013-11-27 | 清华大学 | 基4-Booth编码方法及门电路和流水线大数乘法器 |
CN106126190A (zh) * | 2015-05-04 | 2016-11-16 | 三星电子株式会社 | 部分余数/除数表拆分实现 |
WO2019128763A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种极化码译码器及译码方法 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530085B (zh) * | 2013-09-16 | 2016-06-22 | 电子科技大学 | 一种Booth编码器及乘法器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030196177A1 (en) * | 2002-04-10 | 2003-10-16 | Broadcom Corporation | Low-error fixed-width modified booth multiplier |
CN101122850A (zh) * | 2007-09-21 | 2008-02-13 | 清华大学 | 基于二次Booth编码的大数乘法器 |
CN101382882A (zh) * | 2008-09-28 | 2009-03-11 | 宁波大学 | 一种基于CTGAL的Booth编码器及绝热补码乘累加器 |
-
2011
- 2011-05-11 CN CN2011101205556A patent/CN102184086B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030196177A1 (en) * | 2002-04-10 | 2003-10-16 | Broadcom Corporation | Low-error fixed-width modified booth multiplier |
CN101122850A (zh) * | 2007-09-21 | 2008-02-13 | 清华大学 | 基于二次Booth编码的大数乘法器 |
CN101382882A (zh) * | 2008-09-28 | 2009-03-11 | 宁波大学 | 一种基于CTGAL的Booth编码器及绝热补码乘累加器 |
Non-Patent Citations (4)
Title |
---|
LEI LI ETC.: "Modified Booth encoding modulo (2n-1)multipliers", 《IEICE ELECTRONICS EXPRESS》, vol. 9, no. 5, 10 March 2012 (2012-03-10), pages 352 - 358 * |
应琦钢 等: "基于优化电路的高性能乘法器设计", 《微电子学与计算机》, vol. 28, no. 4, 30 April 2011 (2011-04-30), pages 52 - 56 * |
敖思远 等: "一种改进的模2n-1乘法器", 《微电子学与计算机》, vol. 28, no. 4, 30 April 2011 (2011-04-30), pages 107 - 110 * |
李磊 等: "高速Booth编码模(2n-1)乘法器的设计", 《微电子学与计算机》, vol. 28, no. 11, 30 November 2011 (2011-11-30), pages 191 - 193 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102622466A (zh) * | 2012-02-17 | 2012-08-01 | 浙江大学 | 一种基于标准单元库扩展的乘法器的eco优化方法 |
CN102622466B (zh) * | 2012-02-17 | 2014-01-29 | 浙江大学 | 一种基于标准单元库扩展的乘法器的eco优化方法 |
CN102722352A (zh) * | 2012-05-21 | 2012-10-10 | 华南理工大学 | 一种Booth乘法器 |
CN102722352B (zh) * | 2012-05-21 | 2015-06-03 | 华南理工大学 | 一种Booth乘法器 |
CN103412737A (zh) * | 2013-06-27 | 2013-11-27 | 清华大学 | 基4-Booth编码方法及门电路和流水线大数乘法器 |
CN106126190A (zh) * | 2015-05-04 | 2016-11-16 | 三星电子株式会社 | 部分余数/除数表拆分实现 |
WO2019128763A1 (zh) * | 2017-12-29 | 2019-07-04 | 华为技术有限公司 | 一种极化码译码器及译码方法 |
CN109995382A (zh) * | 2017-12-29 | 2019-07-09 | 华为技术有限公司 | 一种极化码译码器 |
CN109995382B (zh) * | 2017-12-29 | 2021-01-05 | 华为技术有限公司 | 一种极化码译码器 |
Also Published As
Publication number | Publication date |
---|---|
CN102184086B (zh) | 2012-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102184086B (zh) | 一种Booth编码器及乘法器 | |
Cao et al. | A residue-to-binary converter for a new five-moduli set | |
CN101685385A (zh) | 一种复数乘法器 | |
CN105183425B (zh) | 一种具有高精度低复杂度特性的固定位宽乘法器 | |
CN104090737A (zh) | 一种改进型部分并行架构乘法器及其处理方法 | |
CN116450217A (zh) | 一种多功能定点乘法和乘累加运算装置及方法 | |
Gupta et al. | Han–Carlson adder based high-speed Vedic multiplier for complex multiplication | |
CN102253822B (zh) | 一种模(2^n-3)乘法器 | |
CN103955585B (zh) | 一种适用于低功耗容错电路的fir滤波器结构 | |
Daud et al. | Hybrid modified booth encoded algorithm-carry save adder fast multiplier | |
CN103699729B (zh) | 模乘法器 | |
Baba et al. | Design and implementation of advanced modified booth encoding multiplier | |
CN102929575B (zh) | 一种模(2n+3)乘法器 | |
Bokade et al. | CLA based 32-bit signed pipelined multiplier | |
Hossain et al. | A fast and compact binary to BCD converter circuit | |
CN103530085A (zh) | 一种Booth编码器及乘法器 | |
Kalaiselvi et al. | Area efficient high speed and low power MAC unit | |
Li | A Single Precision Floating Point Multiplier for Machine Learning Hardware Acceleration | |
Moses et al. | Design of high speed and low power dadda multiplier using different compressors | |
Lv et al. | A novel high performance SIMD 54-bit multiply array | |
Patronik et al. | Design of an RNS reverse converter for a new five-moduli special set | |
Kambhampati | Power efficient modulo convolution | |
CN103324785B (zh) | 一种模加法器 | |
Waghmare | Vedic Multiplier Implementation for High Speed Factorial Computation | |
CN103577638B (zh) | 一种模乘法器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121107 Termination date: 20150511 |
|
EXPY | Termination of patent right or utility model |