CN103412737A - 基4-Booth编码方法及门电路和流水线大数乘法器 - Google Patents

基4-Booth编码方法及门电路和流水线大数乘法器 Download PDF

Info

Publication number
CN103412737A
CN103412737A CN201310261574XA CN201310261574A CN103412737A CN 103412737 A CN103412737 A CN 103412737A CN 201310261574X A CN201310261574X A CN 201310261574XA CN 201310261574 A CN201310261574 A CN 201310261574A CN 103412737 A CN103412737 A CN 103412737A
Authority
CN
China
Prior art keywords
input termination
road input
output
xor gate
partial product
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
Application number
CN201310261574XA
Other languages
English (en)
Other versions
CN103412737B (zh
Inventor
李树国
周怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201310261574.XA priority Critical patent/CN103412737B/zh
Publication of CN103412737A publication Critical patent/CN103412737A/zh
Application granted granted Critical
Publication of CN103412737B publication Critical patent/CN103412737B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明基4-Booth编码方法,乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值Xi等于1表示绝对值是被乘数自身的组合方式,编码值Xi等于0表示其余组合方式;编码值Mi等于1表示部分积为负数的组合方式;编码值Modifyi等于1表示绝对值非零的六种组合方式,本发明同时提供了实现该编码的门电路以及基于该编码的流水线大数乘法器,本发明编码方法可缩短Booth编码的延时,流水线大数乘法器可实现256位大数乘法运算,应用于公钥密码算法模乘运算中,可大幅提高公钥密码芯片的性能。

Description

基4-Booth编码方法及门电路和流水线大数乘法器
技术领域
本发明属于公钥密码算法领域,特别涉及一种基4-Booth编码方法及门电路和流水线大数乘法器。 
背景技术
大数乘法器广泛地应用于信息安全密码算法的运算,它的性能直接决定着公钥密码算法RSA和ECC芯片的性能。公钥密码算法都是建立在大整数运算基础上,模约减、模乘、模幂运算被大量使用,而模乘、模幂运算的引擎就是大数乘法器。一般地,乘法运算可以分为三个步骤:部分积生成、部分积压缩至两行向量、最后将两行向量再相加。在部分积生成中,通常采用基4-Booth编码,基4-Booth编码可使乘法器的部分积数量减少一半,但部分积数量的减少也带来了编码延时的增加。因此,研究缩短Booth编码延时对乘法器整体性能的提升具有重要意义。 
发明内容
如何在不改变逻辑功能的前提下,缩短基4-Booth编码生成部分积的延时,并在此基础上搭建流水线大数乘法器,是本发明要解决的技术问题。 
为了解决上述问题,本发明采用的技术方案是: 
一种基4-Booth编码方法,如下表所示: 
Figure BDA00003418494000011
Figure BDA00003418494000021
乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值Xi等于1表示绝对值是被乘数自身的组合方式,编码值Xi等于0表示其余组合方式;编码值Mi等于1表示部分积为负数的组合方式;编码值Modifyi等于1表示绝对值非零的六种组合方式,所述编码值中的i表示生成第i个部分积所需要的编码值序号,对256位乘法器来说,其范围是0~128; 
所述编码值Xi、Mi、Modifyi的逻辑表达式概括如下: 
X i = B [ 2 i - 1 ] ⊕ B [ 2 i ]
Mi=B[2i+1] 
Modify i = B [ 2 i + 1 ] ⊕ B [ 2 i - 1 ] + B [ 2 i ] ⊕ B [ 2 i - 1 ]
部分积每一比特位的生成如下述逻辑表达式所示: 
p i [ j ] = ( A [ j ] ⊕ M i + ( ~ X i ) ) · ( A [ j - 1 ] ⊕ M i + X i ) · ( X i + Modify i )
其中B[2i]代表乘数的第2i比特位,A[j]表示被乘数A的第j比特位。 
本发明同时提供了实现所述编码方法的门电路,包括: 
第一异或门1,其一路输入端接B[2i-1],另一路输入端接B[2i]; 
第二异或门2,其一路输入端接B[2i-1],另一路输入端接B[2i+1]; 
第一或门3,其一路输入端接第一异或门1的输出Xi,另一路输入端接第二异或门2的输出; 
第三异或门5,其一路输入端接B[2i+1],另一路输入端接A[j]; 
第四异或门4,其一路输入端接B[2i+1],另一路输入端接A[j-1]; 
非门6,其输入端接第一异或门1的输出Xi; 
第二或门7,其一路输入端接第三异或门5的输出,另一路输入端接非门6的输出; 
第三或门8,其一路输入端接第一异或门1的输出Xi,另一路输入端接 第一或门3的输出Modifyi; 
第四或门9,其一路输入端接第一异或门1的输出Xi,另一路输入端接第四异或门4的输出; 
与门10,其输入端分别接第二或门7、第三或门8和第四或门9的输出; 
所述B[2i-1]表示乘数B的第2i-1比特位,B[2i]表示乘数B的第2i比特位,B[2i+1]表示乘数B的第2i+1比特位,A[j]表示乘数A的第j比特位,A[j-1]表示乘数A的第j-1比特位。 
本发明还提供了基于所述基4-Booth编码方法的流水线大数乘法器,实现256位大数乘法运算,包括: 
由基4-Booth编码及部分积生成结构和采用4:2压缩器和3:2压缩器的wallace tree混合压缩结构组成的第一级,其中基4-Booth编码及部分积生成结构根据所述编码方法编码减少时延,并生成部分积阵列,wallace tree混合压缩结构对该部分积阵列由129行压缩至16行; 
由wallace tree混合压缩结构单独构成的第二级,对第一级的压缩结果进一步压缩至2行; 
由超前进位加法器构成的第三级,对第二级的压缩结果相加得最终一行部分积。 
与现有技术相比,本发明基4-Booth编码方法可缩短Booth编码的延时,流水线大数乘法器可实现256位大数乘法运算,应用于公钥密码算法模乘运算中,可大幅提高公钥密码芯片的性能。 
附图说明
图1是实现本发明基4-Booth编码的门电路。 
图2是本发明256位三级流水线大数乘法器整体结构示意图。 
图3是本发明256位三级流水线大数乘法器编码生成部分积结构示意图。 
图4是本发明256位三级流水线大数乘法器4行压缩成2行的模块结构示意图。 
图5是本发明256位三级流水线大数乘法器4行压缩成2行模块的等效表示图。 
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。 
本发明基4-Booth编码方法如表1所示,乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数。用编码值Xi等于1来表示绝对值是被乘数自身的组合方式,其余组合方式时令Xi值为0;用编码值Mi等于1来表示部分积为负数的组合方式;同时,引入另一个编码值Modifyi,它的值为1来指示绝对值非零的六种组合方式,称它为修正位。以上编码值中的i表示生成第i个部分积所需要的编码值序号,对256位乘法器来说,其范围是0~128。 
表1本发明基4-Booth编码方案 
Figure BDA00003418494000041
经过分析和实验,可得出上述的表格中的逻辑关系。编码值Xi、Mi、Modifyi的逻辑表达式可概括为如下式所示,其中B[2i]代表乘数的第2i比特位。 
X i = B [ 2 i - 1 ] ⊕ B [ 2 i ] - - - ( 1 )
Mi=B[2i+1]     
Modify i = B [ 2 i + 1 ] ⊕ B [ 2 i - 1 ] + B [ 2 i ] ⊕ B [ 2 i - 1 ] - - - ( 3 )
部分积每一比特位的生成如下述逻辑表达式所示: 
p i [ j ] = ( A [ j ] ⊕ M i + ( ~ X i ) ) · ( A [ j - 1 ] ⊕ M i + X i ) · ( X i + Modify i ) - - - ( 4 )
经过验证,该逻辑表达式可以正确生成所有的部分积。 
根据以上编码逻辑关系以及部分积生成表达式,可以得到门级电路如图1所示。包括第一异或门1,其一路输入端接B[2i-1],另一路输入端接B[2i];第二异或门2,其一路输入端接B[2i-1],另一路输入端接B[2i+1];第一或门3,其一路输入端接第一异或门1的输出Xi,另一路输入端接第二异或门2的输出;第三异或门5,其一路输入端接B[2i+1],另一路输入端接A[j];第四异或门4,其一路输入端接B[2i+1],另一路输入端接A[j-1];非门6,其输入端接第一异或门1的输出Xi;第二或门7,其一路输入端接第三异或门5的输出,另一路输入端接非门6的输出;第三或门8,其一路输入端接第一异或门1的输出Xi,另一路输入端接第一或门3的输出Modifyi;第四或门9,其一路输入端接第一异或门1的输出Xi,另一路输入端接第四异或门4的输出;与门10,其输入端分别接第二或门7、第三或门8和第四或门9的输出;在电路实现中,其关键路径包含一个异或门、两个或门、一个与门共四个门,门数及延时均小于传统基4-Booth编码算法。 
大数乘法器的设计核心问题就是降低大数乘法器的关键路径时延。在分析了Booth编码、部分积阵列压缩的方案后,本发明又提出了一种三级流水线乘法器结构来实现256位大数乘法运算。其中:第一级包括Booth编码以及采用4:2压缩器和3:2压缩器的wallace tree混合压缩结构,此级的输出部分积数量由129行压缩至16行;第二级继续混合使用4:2和3:2压缩器进行阵列压缩,此级输出部分积数量由16行压缩至2行;第三级使用超前进位加法器对两行部分积相加得最终一行部分积,即最终的乘法结果。其三级流水 线乘法器结构如图2所示。 
在这样三级流水线结构中,第一级成为关键路径,其中Booth编码延时较大,在这级设计中,采用了本发明基4-Booth编码方案来减少Booth编码延时。Booth编码生成部分积阵列如图3。图3中被乘数及乘数分别用multiplicand A和multiplier B表示,encoder表示编码逻辑,即对乘数每相邻三位编码得到编码值Xi,Mi,Modifyi;Celli,j代表生成第i个部分积的第j比特位的生成逻辑;pi代表第i个部分积,每个部分积是256位(不含符号位),共129个部分积。由于部分积中存在负的部分积,符号位扩展过程中会产生大量的符号位,占据多余的硬件资源并增加了功耗。为了实现减少资源消耗,可使用符号扩展位消除技术。 
采用的4:2压缩器对4行每行位长为n位部分积进行压缩,需要使用n个这样的4:2压缩器并行压缩组成。其实现结构如图4所示。压缩所得的两行向量S[n-1:0]和C[n-1:0]位长都是n位,考虑到最终输出的Cout[n-1]位,可以用两个向量Sum={Cout[n-1],S[n-1:0]}以及Carry={C[n-1:0],1’b0}来表示4:2压缩的结果,即两个位宽n+1的向量。为了方便引用此模块作等效替换,将图4所示的功能模块用图5等效地表示,模块命名为“Module4_2”。 
同样道理可以构造n位长的3行压成2行模块,命名为“Module3_2”。对Booth编码生成的129行的部分积阵列进行树形压缩,第一层次的压缩部分中,129行部分积分成120行和9行,其中的120行分成30组“Module 4_2”压缩,剩余的9行采用3组“Module3_2”压缩;共分为7层压缩,这7层压缩分在两级流水线中进行,这样做是为了避免流水线的第一级形成更长关键路径,以保持流水线的每级延时均衡。 

Claims (3)

1.一种基4-Booth编码方法,其特征在于,如下表所示:
Figure FDA00003418493900011
乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值Xi等于1表示绝对值是被乘数自身的组合方式,编码值Xi等于0表示其余组合方式;编码值Mi等于1表示部分积为负数的组合方式;编码值Modifyi等于1表示绝对值非零的六种组合方式,所述编码值中的i表示生成第i个部分积所需要的编码值序号,对256位乘法器来说,其范围是0~128;
所述编码值Xi、Mi、Modifyi的逻辑表达式概括如下:
X i = B [ 2 i - 1 ] ⊕ B [ 2 i ]
Mi=B[2i+1]
Modify i = B [ 2 i + 1 ] ⊕ B [ 2 i - 1 ] + B [ 2 i ] ⊕ B [ 2 i - 1 ]
部分积每一比特位的生成如下述逻辑表达式所示:
p i [ j ] = ( A [ j ] ⊕ M i + ( ~ X i ) ) · ( A [ j - 1 ] ⊕ M i + X i ) · ( X i + Modify i )
其中B[2i]代表乘数的第2i比特位,A[j]表示被乘数A的第j比特位。
2.实现权利要求1所述编码方法的门电路,其特征在于,包括:
第一异或门(1),其一路输入端接B[2i-1],另一路输入端接B[2i];
第二异或门(2),其一路输入端接B[2i-1],另一路输入端接B[2i+1];
第一或门(3),其一路输入端接第一异或门(1)的输出Xi,另一路输入端接第二异或门(2)的输出;
第三异或门(5),其一路输入端接B[2i+1],另一路输入端接A[j];
第四异或门(4),其一路输入端接B[2i+1],另一路输入端接A[j-1];
非门(6),其输入端接第一异或门(1)的输出Xi
第二或门(7),其一路输入端接第三异或门(5)的输出,另一路输入端接非门(6)的输出;
第三或门(8),其一路输入端接第一异或门(1)的输出Xi,另一路输入端接第一或门(3)的输出Modifyi
第四或门(9),其一路输入端接第一异或门(1)的输出Xi,另一路输入端接第四异或门(4)的输出;
与门(10),其输入端分别接第二或门(7)、第三或门(8)和第四或门(9)的输出;
所述B[2i-1]表示乘数B的第2i-1比特位,B[2i]表示乘数B的第2i比特位,B[2i+1]表示乘数B的第2i+1比特位,A[j]表示乘数A的第j比特位,A[j-1]表示乘数A的第j-1比特位。
3.基于权利要求1所述基4-Booth编码方法的流水线大数乘法器,实现256位大数乘法运算,其特征在于,包括:
由基4-Booth编码及部分积生成结构和采用4:2压缩器和3:2压缩器的wallace tree混合压缩结构组成的第一级,其中基4-Booth编码及部分积生成结构根据所述编码方法编码减少时延,并生成部分积阵列,wallace tree混合压缩结构对该部分积阵列由129行压缩至16行;
由wallace tree混合压缩结构单独构成的第二级,对第一级的压缩结果进一步压缩至2行;
由超前进位加法器构成的第三级,对第二级的压缩结果相加得最终一行部分积。
CN201310261574.XA 2013-06-27 2013-06-27 实现基4-Booth编码方法的门电路和基于该方法的流水线大数乘法器 Expired - Fee Related CN103412737B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310261574.XA CN103412737B (zh) 2013-06-27 2013-06-27 实现基4-Booth编码方法的门电路和基于该方法的流水线大数乘法器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310261574.XA CN103412737B (zh) 2013-06-27 2013-06-27 实现基4-Booth编码方法的门电路和基于该方法的流水线大数乘法器

Publications (2)

Publication Number Publication Date
CN103412737A true CN103412737A (zh) 2013-11-27
CN103412737B CN103412737B (zh) 2016-08-10

Family

ID=49605751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310261574.XA Expired - Fee Related CN103412737B (zh) 2013-06-27 2013-06-27 实现基4-Booth编码方法的门电路和基于该方法的流水线大数乘法器

Country Status (1)

Country Link
CN (1) CN103412737B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653240A (zh) * 2015-12-30 2016-06-08 深圳市正东源科技有限公司 一种用于rfid安全芯片的乘法器及实现方法
CN105739945A (zh) * 2016-01-22 2016-07-06 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器
CN107977191A (zh) * 2016-10-21 2018-05-01 中国科学院微电子研究所 一种低功耗并行乘法器
CN111258542A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN112068800A (zh) * 2020-08-10 2020-12-11 清华大学 阵列压缩器及具有其的大数乘法器

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065032A (en) * 1998-02-19 2000-05-16 Lucent Technologies Inc. Low power multiplier for CPU and DSP
CN1556467A (zh) * 2004-01-09 2004-12-22 上海汉芯半导体科技有限公司 采用混合压缩两级流水乘加单元的数字信号处理器
US20070203962A1 (en) * 2006-02-28 2007-08-30 Sony Computer Entertainment Inc. Methods and apparatus for providing a booth multiplier
CN101482808A (zh) * 2009-01-23 2009-07-15 清华大学 用于大数乘法器的(7:2)压缩器
CN102184086A (zh) * 2011-05-11 2011-09-14 电子科技大学 一种Booth编码器及乘法器
CN103092560A (zh) * 2013-01-18 2013-05-08 中国科学院自动化研究所 一种基于Bypass技术的低功耗乘法器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6065032A (en) * 1998-02-19 2000-05-16 Lucent Technologies Inc. Low power multiplier for CPU and DSP
CN1556467A (zh) * 2004-01-09 2004-12-22 上海汉芯半导体科技有限公司 采用混合压缩两级流水乘加单元的数字信号处理器
US20070203962A1 (en) * 2006-02-28 2007-08-30 Sony Computer Entertainment Inc. Methods and apparatus for providing a booth multiplier
CN101482808A (zh) * 2009-01-23 2009-07-15 清华大学 用于大数乘法器的(7:2)压缩器
CN102184086A (zh) * 2011-05-11 2011-09-14 电子科技大学 一种Booth编码器及乘法器
CN103092560A (zh) * 2013-01-18 2013-05-08 中国科学院自动化研究所 一种基于Bypass技术的低功耗乘法器

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
GENSUKE GOTO等: "A 4.1-ns Compact 54×54-b multiplier utilizing sign select booth encoders", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》 *
周婉婷等: "基4BOOTH编码的高速32_32乘法器的设计与实现", 《电子科技大学学报》 *
董兰飞等: "64位子字并行整数乘法器", 《计算机应用》 *
颜晓东等: "二次Booth编码的大数乘法器设计", 《清华大学学报(自然科学版)》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105653240A (zh) * 2015-12-30 2016-06-08 深圳市正东源科技有限公司 一种用于rfid安全芯片的乘法器及实现方法
CN105739945A (zh) * 2016-01-22 2016-07-06 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器
CN105739945B (zh) * 2016-01-22 2018-10-16 南京航空航天大学 一种基于改进部分积阵列的修正Booth编码乘法器
CN107977191A (zh) * 2016-10-21 2018-05-01 中国科学院微电子研究所 一种低功耗并行乘法器
CN107977191B (zh) * 2016-10-21 2021-07-27 中国科学院微电子研究所 一种低功耗并行乘法器
CN111258542A (zh) * 2018-11-30 2020-06-09 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN111258542B (zh) * 2018-11-30 2022-06-17 上海寒武纪信息科技有限公司 乘法器、数据处理方法、芯片及电子设备
CN112068800A (zh) * 2020-08-10 2020-12-11 清华大学 阵列压缩器及具有其的大数乘法器
CN112068800B (zh) * 2020-08-10 2022-10-25 北京草木芯科技有限公司 阵列压缩器及具有其的大数乘法器

Also Published As

Publication number Publication date
CN103412737B (zh) 2016-08-10

Similar Documents

Publication Publication Date Title
CN107977191B (zh) 一种低功耗并行乘法器
CN100552620C (zh) 基于二次Booth编码的大数乘法器
CN103092560B (zh) 一种基于Bypass技术的低功耗乘法器
CN102866875B (zh) 多操作数加法器
CN103412737A (zh) 基4-Booth编码方法及门电路和流水线大数乘法器
Sasao Linear decomposition of index generation functions
CN103227635A (zh) 一种高速低功耗的cmos全加器及其运算方法
Xie et al. High-throughput finite field multipliers using redundant basis for FPGA and ASIC implementations
Zhang et al. Parallel hybrid stochastic-binary-based neural network accelerators
CN106775577A (zh) 一种高性能非精确冗余二进制乘法器及其设计方法
CN112764712B (zh) 一种高性能近似Booth乘法器及计算方法
Xie et al. Low-latency area-delay-efficient systolic multiplier over GF (2 m) for a wider class of trinomials using parallel register sharing
CN107992283A (zh) 一种基于降维实现有限域乘法的方法和装置
CN110825346B (zh) 一种低逻辑复杂度的无符号近似乘法器
CN103955585B (zh) 一种适用于低功耗容错电路的fir滤波器结构
Surendran et al. Implementation of fast multiplier using modified Radix-4 booth algorithm with redundant binary adder for low energy applications
CN102253822A (zh) 一种模(2n-3)乘法器
CN104007953A (zh) 一种基于四操作数Montgomery模乘算法的模乘器电路结构
Daud et al. Hybrid modified booth encoded algorithm-carry save adder fast multiplier
Nandal et al. Booth multiplier using reversible logic with low power and reduced logical complexity
Khan et al. Performance analysis of reduced complexity Wallace multiplier using energy efficient CMOS full adder
CN103699729A (zh) 模乘法器
Malekpour et al. A comparative study of energy/power consumption in parallel decimal multipliers
CN103885748B (zh) 一种低功耗随机数后处理方法
Mousavi et al. Pipelined Residue Logarithmic Numbers System for general modules set {2 n-1, 2 n, 2 n+ 1}

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160810

Termination date: 20170627