CN103412737A - 基4-Booth编码方法及门电路和流水线大数乘法器 - Google Patents
基4-Booth编码方法及门电路和流水线大数乘法器 Download PDFInfo
- 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
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编码方法及门电路和流水线大数乘法器。
背景技术
大数乘法器广泛地应用于信息安全密码算法的运算,它的性能直接决定着公钥密码算法RSA和ECC芯片的性能。公钥密码算法都是建立在大整数运算基础上,模约减、模乘、模幂运算被大量使用,而模乘、模幂运算的引擎就是大数乘法器。一般地,乘法运算可以分为三个步骤:部分积生成、部分积压缩至两行向量、最后将两行向量再相加。在部分积生成中,通常采用基4-Booth编码,基4-Booth编码可使乘法器的部分积数量减少一半,但部分积数量的减少也带来了编码延时的增加。因此,研究缩短Booth编码延时对乘法器整体性能的提升具有重要意义。
发明内容
如何在不改变逻辑功能的前提下,缩短基4-Booth编码生成部分积的延时,并在此基础上搭建流水线大数乘法器,是本发明要解决的技术问题。
为了解决上述问题,本发明采用的技术方案是:
一种基4-Booth编码方法,如下表所示:
乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值Xi等于1表示绝对值是被乘数自身的组合方式,编码值Xi等于0表示其余组合方式;编码值Mi等于1表示部分积为负数的组合方式;编码值Modifyi等于1表示绝对值非零的六种组合方式,所述编码值中的i表示生成第i个部分积所需要的编码值序号,对256位乘法器来说,其范围是0~128;
所述编码值Xi、Mi、Modifyi的逻辑表达式概括如下:
Mi=B[2i+1]
部分积每一比特位的生成如下述逻辑表达式所示:
其中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编码方案
经过分析和实验,可得出上述的表格中的逻辑关系。编码值Xi、Mi、Modifyi的逻辑表达式可概括为如下式所示,其中B[2i]代表乘数的第2i比特位。
Mi=B[2i+1]
部分积每一比特位的生成如下述逻辑表达式所示:
经过验证,该逻辑表达式可以正确生成所有的部分积。
根据以上编码逻辑关系以及部分积生成表达式,可以得到门级电路如图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编码方法,其特征在于,如下表所示:
乘数B每相邻的三位共有八种组合方式,不同的组合形式分别代表部分积选择是0,±A,±2A之中的一种,其中A代表被乘数,编码值Xi等于1表示绝对值是被乘数自身的组合方式,编码值Xi等于0表示其余组合方式;编码值Mi等于1表示部分积为负数的组合方式;编码值Modifyi等于1表示绝对值非零的六种组合方式,所述编码值中的i表示生成第i个部分积所需要的编码值序号,对256位乘法器来说,其范围是0~128;
所述编码值Xi、Mi、Modifyi的逻辑表达式概括如下:
Mi=B[2i+1]
部分积每一比特位的生成如下述逻辑表达式所示:
其中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行;
由超前进位加法器构成的第三级,对第二级的压缩结果相加得最终一行部分积。
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)
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)
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技术的低功耗乘法器 |
-
2013
- 2013-06-27 CN CN201310261574.XA patent/CN103412737B/zh not_active Expired - Fee Related
Patent Citations (6)
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)
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)
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 |