CN106873941A - 一种快速模乘和模平方电路及其实现方法 - Google Patents
一种快速模乘和模平方电路及其实现方法 Download PDFInfo
- Publication number
- CN106873941A CN106873941A CN201710039195.4A CN201710039195A CN106873941A CN 106873941 A CN106873941 A CN 106873941A CN 201710039195 A CN201710039195 A CN 201710039195A CN 106873941 A CN106873941 A CN 106873941A
- Authority
- CN
- China
- Prior art keywords
- bit
- bits
- result
- modular
- full adder
- 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
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 claims abstract description 14
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 claims abstract description 14
- 238000003491 array Methods 0.000 claims description 18
- 238000000034 method Methods 0.000 claims description 10
- 230000000295 complement effect Effects 0.000 claims description 3
- 229910002056 binary alloy Inorganic materials 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011946 reduction process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/552—Powers or roots, e.g. Pythagorean sums
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Optimization (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种快速模乘和模平方电路及其实现方法,该电路由一组m位的左移三位移位寄存器QU,三组m位的二输入与门阵列AND1、AND2、AND3,四组全加器阵列FA1、FA2、FA3、FA4,m+4位的结果寄存器Q和一个32×m位的ROM单元组成,能对够对m位的二进制大数进行乘法或平方的同时对大素数P进行模约减,在每一个时钟周期内处理3位,经过m/3+2个时钟周期就能得到模乘和模平方的结果,若m不是3的倍数可以通过对其高位补0直至其为3的倍数。
Description
【技术领域】
本发明涉及集成电路设计领域,涉及一种用于大数模乘和模平方的快速模约减电路,特别涉及一种快速模乘和模平方电路及其实现方法。
【背景技术】
目前对于大数模乘和模平方的模约减过程,通常采用的方案是先计算出乘法和平方的结果再对大素数P进行取模操作,这个过程中就需要专门的取模电路,而一般乘法或平方的结果的数据位宽是P的2倍,因此对大数来说其乘法或平方的取模模块需要的电路面积很大,运算速度慢,电路功耗还很大。
【发明内容】
本发明提供了一种快速模乘和模平方电路及其实现方法,该电路能对够对m位的二进制大数进行乘法或平方的同时对大素数P进行模约减,在每一个时钟周期内处理3位,经过m/3+2个时钟周期就能得到模乘和模平方的结果,若m不是3的倍数可以通过对其高位补0直至其为3的倍数。
为实现上述目的,本发明采用以下技术方案:
一种快速模乘和模平方电路,包括:一组m位的左移三位移位寄存器QU,三组m位的二输入与门阵列AND1、AND2、AND3,四组全加器阵列FA1、FA2、FA3、FA4,m+4位的结果寄存器Q和一个32×m位的ROM单元;其中,
m位的左移三位移位寄存器QU,用于存放乘数,并将其第m位命名为U2,第m-1位命名成U1,第m-2位命名成U0;
二输入与门阵AND1输入端为U2与被乘数N左移2位的结果;二输入与门阵AND2输入端为U1与被乘数N左移1位的结果;二输入与门阵AND3输入端为U0与被乘数N;
ROM单元,用于存放素数P的补码Pb的特定倍数,其输出端口设为X,
全加器阵列,用于产生部分积,其中全加器阵列FA1的两个输入分别为与门阵列AND1的输出端和与门阵列AND2的输出端,全加器阵列FA2的输入端分别为与门阵列AND3的输出端和ROM的输出端X,全加器阵列FA3的输入端分别为全加器阵列FA1和FA2的和端口,全加器阵列FA4的输入端为结果寄存器Q左移三位的结果与全加器阵列FA2的和端口。
m+4位的结果寄存器Q,用于存放运算过程中的部分积和最终的结果,其输入与全加器阵列FA4的和端口相连,其高四位输出连接到ROM的地址位,低m位通过左移三位连接到全加器阵列FA4的加数端口。
四组全加器阵列的最低位进位端连接到0,同时针对电路第m位加法阵列的进位再用五个全加器单元处理,并将其每一级电路运算的结果锁存到结果寄存器Q中。
ROM单元的4位地址线Adder从高到低为{Q[m+4],Q[m+3],Q[m+2],Q[m+1]}。
ROM单元为32×m位的ROM单元。
一种基于快速模乘和模平方电路的实现方法,其特征在于,包括以下步骤:
首先需要初始化输出寄存器Q,将RS=0,寄存器全部复位为0;工作中RS=1,电路运行m/3个clk后,被乘数的所有位均已经参与了运算,这时左移三位寄存器N全部为0,下一步只需约减掉Q[m+4],Q[m+3],Q[m+2],Q[m+1]这四位即可;电路继续运行2个clk.,Qm的高四位被成功约减掉;乘法和平方的运算结果被约减到m位。
在每一个时钟周期内处理3位,经过m/3+2个时钟周期得到模乘和模平方的结果,若m不是3的倍数则通过对其高位补0直至其为3的倍数。
本发明与现有技术相比,具有以下优点:
本发明的快速模乘和模平方电路由一组m位的左移三位移位寄存器QU,三组m位的二输入与门阵列AND1、AND2、AND3,四组全加器阵列FA1、FA2、FA3、FA4,m+4位的结果寄存器Q和一个32×m位的ROM单元组成,该电路能对够对m位的二进制大数进行乘法或平方的同时对大素数P进行模约减,在每一个时钟周期内处理3位,经过m/3+2个时钟周期就能得到模乘和模平方的结果。
进一步,ROM的地址信号由{Q[m+4],Q[m+3],Q[m+2],Q[m+1]}组成,不再需要额外的地址生成器,降低了电路面积,减低了电路功耗,提高了电路的运行速度。
在本发明实现方法中乘法或平方运算与约减运算同时进行,每一个时钟周期都可以累加三行部分积并约减掉上一个时钟周期内溢出的数值,同时乘数N左移三位为下一个时钟周期数据运算做准备,这样通过m/3+2时钟周期就可以得到所需运算结果。使用一个ROM代替掉X值的计算电路,提高了电路运行速度。
【附图说明】
图1为本发明的电路结构示意图;
图2为本发明的具体全加器部分电路图;
图3为本发明的左移三位寄存器电路图;
图4为本发明的ROM结构示意图;
图5为本发明的一位全加器电路图。
【具体实施方式】
下面结合附图对本发明作详细描述:
如图1所示,本发明一种快速模乘和模平方电路包括:1组m位的左移三位移位寄存器QU;3组m位的二输入与门阵列AND1,AND2,AND3;4组全加器阵列FA1,FA2,FA3,FA4;m+4位的结果寄存器Q和1个32×m位的ROM单元。
其中,m位的左移三位移位寄存器QU用来存放乘数,并将其第m位命名为U2,第m-1位命名成U1,第m-2位命名成U0。
二输入与门阵AND1输入端为U2与被乘数N左移2位的结果;二输入与门阵AND2输入端为U1与被乘数N左移1位的结果;二输入与门阵AND3输入端为U0与被乘数N。
m+4位的结果寄存器Q,用来存放运算过程中的部分积和最终的结果,该寄存器的输入与全加器阵列FA4的和端口相连。该寄存器的高四位输出连接到ROM的地址位,低m位通过左移三位连接到全加器阵列FA4的加数端口。
电路中ROM单元用来存放素数P的补码Pb的特定倍数,该ROM的读写方式与传统ROM的读写方式相同,其4位地址线Adder从高到低为{Q[m+4],Q[m+3],Q[m+2],Q[m+1]},其输出端口设为X,其内部存放的数据如表1所示。
表1
Adder | X | Adder | X |
0 | 0 | 8 | 64*Pb |
1 | 8*Pb | 9 | 72*Pb |
2 | 16*Pb | 10 | 80*Pb |
3 | 24*Pb | 11 | 88*Pb |
4 | 32*Pb | 12 | 96*Pb |
5 | 40*Pb | 13 | 104*Pb |
6 | 48*Pb | 14 | 112*Pb |
7 | 56*Pb | 15 | 120*Pb |
四行全加器阵列用于产生部分积,其中全加器阵列FA1的两个输入分别为与门阵列AND1的输出端和与门阵列AND2的输出端,全加器阵列FA2的输入端分别为与门阵列AND3的输出端和ROM的输出端X,全加器阵列FA3的输入端分别为全加器阵列FA1和FA2的和端口,全加器阵列FA4的输入端为寄存器Q左移三位的结果与全加器阵列FA2的和端口。这四行全加器阵列的最低位进位端连接到0,同时针对电路第m位加法阵列的进位再用5个全加器单元处理,并将其每一级电路运算的结果锁存到寄存器Q中。具体如图2所示。
左移三位寄存器QU用来存放乘数,每个时钟上升沿来临的时候,QU内寄存的数值左移三位并且将其中最低三位补零,最高三位舍弃。将QU最高三位分别连接到与门阵列AND1,AND2,AND3的输入端。具体如图3所示;
ROM单元内存放的是PB的特定倍数,用来参与到部分积溢出部分的约减运算。其读操作与传统ROM单元相同,在每个clk的上升沿读取出其指定地址的值。该ROM单元的地址线可以连接到Q的高四位{Q[m+4],Q[m+3],Q[m+2],Q[m+1]},如图4所示。
图5中所需的一位全加器单元结构由9个或非门单元构成,其中a,b分别为一位全加器的加数与被加数输入端,cin为进位输入端,s为和输出端,cout为进位输出端,如图5所示。
实施例
参见图1,图2和图3,m位的左移三位移位寄存器QU用来存放乘数,并将其第m位命名为U2,第m-1位命名成U1,第m-2位命名成U0。被乘数为N,m位的二输入与门阵AND1输入端为U2与被乘数N左移2位的结果,将其输出端连接到全加器阵列FA1的被加数端口。二输入与门阵AND2输入端为U2与被乘数N左移1位的结果,将其输出端连接到全加器阵列FA1的加数端口。二输入与门阵输入端AND2为U2与被乘数N,将其输出端连接到全加器阵列FA2的加数端口。ROM内存放的是Pb的特定倍数,其地址由{Q[m+4],Q[m+3],Q[m+2],Q[m+1]}组成,其输出端连接在全加器阵列FA2的被加数端口。将全加器阵列FA1与FA2的和端口分别连接到全加器阵列FA3的加数与被加数端口,并将其全加器阵列FA3的和端口连接到全加器阵列FA4的加数端口,寄存器组Q通过左移三位连接到FA4的被加数端口。全加器单元的最低2位因为乘数N的左移因此可以将左移后空出的位数接0,四组全加器阵列最低位的进位全部接0,详见图2。
在本发明中,该电路每经过一个时钟周期就可以累加3行乘数,并约减掉上一次部分积。在电路运行时首先需要初始化输出寄存器Q,将RS=0,寄存器全部复位为0。工作中RS=1,电路运行m/3个clk后,被乘数的所有位均已经参与了运算,这时左移三位寄存器N全部为0,下一步只需约减掉Q[m+4],Q[m+3],Q[m+2],Q[m+1]这四位即可。电路继续运行2个clk.,Qm的高四位被成功约减掉。乘法和平方的运算结果被约减到m位。
以上,仅为本发明的较佳实施例,并非仅限于本发明的实施范围,凡依本发明专利范围的内容所做的等效变化和修饰,都应为本发明的技术范畴。
Claims (6)
1.一种快速模乘和模平方电路,其特征在于,包括:一组m位的左移三位移位寄存器QU,三组m位的二输入与门阵列AND1、AND2、AND3,四组全加器阵列FA1、FA2、FA3、FA4,m+4位的结果寄存器Q和一个32×m位的ROM单元;其中,
m位的左移三位移位寄存器QU,用于存放乘数,并将其第m位命名为U2,第m-1位命名成U1,第m-2位命名成U0;
二输入与门阵AND1输入端为U2与被乘数N左移2位的结果;二输入与门阵AND2输入端为U1与被乘数N左移1位的结果;二输入与门阵AND3输入端为U0与被乘数N;
ROM单元,用于存放素数P的补码Pb的特定倍数,其输出端口设为X,
全加器阵列,用于产生部分积,其中全加器阵列FA1的两个输入分别为与门阵列AND1的输出端和与门阵列AND2的输出端,全加器阵列FA2的输入端分别为与门阵列AND3的输出端和ROM的输出端X,全加器阵列FA3的输入端分别为全加器阵列FA1和FA2的和端口,全加器阵列FA4的输入端为结果寄存器Q左移三位的结果与全加器阵列FA2的和端口;
m+4位的结果寄存器Q,用于存放运算过程中的部分积和最终的结果,其输入与全加器阵列FA4的和端口相连,其高四位输出连接到ROM的地址位,低m位通过左移三位连接到全加器阵列FA4的加数端口。
2.根据权利要求1所述的快速模乘和模平方电路,其特征在于:四组全加器阵列的最低位进位端连接到0,同时针对电路第m位加法阵列的进位再用五个全加器单元处理,并将其每一级电路运算的结果锁存到结果寄存器Q中。
3.根据权利要求1所述的快速模乘和模平方电路,其特征在于:ROM单元的4位地址线Adder从高到低为{Q[m+4],Q[m+3],Q[m+2],Q[m+1]}。
4.根据权利要求1所述的快速模乘和模平方电路,其特征在于:ROM单元为32×m位的ROM单元。
5.一种基于权利要求1所述的快速模乘和模平方电路的实现方法,其特征在于,包括以下步骤:
首先需要初始化输出寄存器Q,将RS=0,寄存器全部复位为0;工作中RS=1,电路运行m/3个clk后,被乘数的所有位均已经参与了运算,这时左移三位寄存器N全部为0,下一步只需约减掉Q[m+4],Q[m+3],Q[m+2],Q[m+1]这四位即可;电路继续运行2个clk.,Qm的高四位被成功约减掉;乘法和平方的运算结果被约减到m位。
6.根据权利要求5所述的基于快速模乘和模平方电路的实现方法,其特征在于,在每一个时钟周期内处理3位,经过m/3+2个时钟周期得到模乘和模平方的结果,若m不是3的倍数则通过对其高位补0直至其为3的倍数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710039195.4A CN106873941B (zh) | 2017-01-19 | 2017-01-19 | 一种快速模乘和模平方电路及其实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710039195.4A CN106873941B (zh) | 2017-01-19 | 2017-01-19 | 一种快速模乘和模平方电路及其实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106873941A true CN106873941A (zh) | 2017-06-20 |
CN106873941B CN106873941B (zh) | 2019-05-21 |
Family
ID=59159121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710039195.4A Expired - Fee Related CN106873941B (zh) | 2017-01-19 | 2017-01-19 | 一种快速模乘和模平方电路及其实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106873941B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117114A (zh) * | 2018-08-16 | 2019-01-01 | 电子科技大学 | 一种基于查找表的低复杂度近似乘法器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0286334A (ja) * | 1988-09-22 | 1990-03-27 | Nec Corp | 2↑mガロア体における乗算回路 |
US7693926B2 (en) * | 2006-03-30 | 2010-04-06 | Intel Corporation | Modular multiplication acceleration circuit and method for data encryption/decryption |
CN102929575A (zh) * | 2012-10-29 | 2013-02-13 | 电子科技大学 | 一种模乘法器 |
CN102999313A (zh) * | 2012-12-24 | 2013-03-27 | 飞天诚信科技股份有限公司 | 一种基于蒙哥马利模乘的数据处理方法 |
CN103699357A (zh) * | 2013-12-05 | 2014-04-02 | 西安交通大学 | 一种用于模乘和模平方的快速模约简算法电路 |
CN104572012A (zh) * | 2015-01-29 | 2015-04-29 | 东南大学 | 一种基于aop的多项式基gf(2227)高速模乘法器 |
-
2017
- 2017-01-19 CN CN201710039195.4A patent/CN106873941B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0286334A (ja) * | 1988-09-22 | 1990-03-27 | Nec Corp | 2↑mガロア体における乗算回路 |
US7693926B2 (en) * | 2006-03-30 | 2010-04-06 | Intel Corporation | Modular multiplication acceleration circuit and method for data encryption/decryption |
CN102929575A (zh) * | 2012-10-29 | 2013-02-13 | 电子科技大学 | 一种模乘法器 |
CN102999313A (zh) * | 2012-12-24 | 2013-03-27 | 飞天诚信科技股份有限公司 | 一种基于蒙哥马利模乘的数据处理方法 |
CN103699357A (zh) * | 2013-12-05 | 2014-04-02 | 西安交通大学 | 一种用于模乘和模平方的快速模约简算法电路 |
CN104572012A (zh) * | 2015-01-29 | 2015-04-29 | 东南大学 | 一种基于aop的多项式基gf(2227)高速模乘法器 |
Non-Patent Citations (2)
Title |
---|
NI CHERVYAKOV,ET AL.: "Fast modular multiplication execution in residue number system", 《2016 IEEE CONFERENCE ON QUALITY MANAGEMENT, TRANSPORT AND INFORMATION SECURITY, INFORMATION TECHNOLOGIES 》 * |
YINAN KONG,ET AL.: "Modular multiplication using the core function in the residue number system", 《APPLICABLE ALGEBRA IN ENGINEERING, COMMUNICATION AND COMPUTING》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117114A (zh) * | 2018-08-16 | 2019-01-01 | 电子科技大学 | 一种基于查找表的低复杂度近似乘法器 |
Also Published As
Publication number | Publication date |
---|---|
CN106873941B (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8051124B2 (en) | High speed and efficient matrix multiplication hardware module | |
US11042360B1 (en) | Multiplier circuitry for multiplying operands of multiple data types | |
US8645450B1 (en) | Multiplier-accumulator circuitry and methods | |
US4594678A (en) | Digital parallel computing circuit for computing p=xy+z in a shortened time | |
US4748582A (en) | Parallel multiplier array with foreshortened sign extension | |
US20050144213A1 (en) | Mathematical circuit with dynamic rounding | |
Wang et al. | A well-structured modified Booth multiplier design | |
CN110362293B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
US3919535A (en) | Multiple addend adder and multiplier | |
CN110531954B (zh) | 乘法器、数据处理方法、芯片及电子设备 | |
CN106873941B (zh) | 一种快速模乘和模平方电路及其实现方法 | |
US4796219A (en) | Serial two's complement multiplier | |
CN114063975A (zh) | 一种基于sram存内计算阵列的计算系统及方法 | |
US4545028A (en) | Partial product accumulation in high performance multipliers | |
CN113743046B (zh) | 存算一体版图结构和数据拆分存算一体版图结构 | |
CN103699729B (zh) | 模乘法器 | |
CA2055900C (en) | Binary tree multiplier constructed of carry save adders having an area efficient floor plan | |
US4811270A (en) | Merged CCD/MOS integrated circuit | |
Dean | Design for a full multiplier | |
US6484193B1 (en) | Fully pipelined parallel multiplier with a fast clock cycle | |
US8843541B1 (en) | Circuit and method for multiplying a signed value by a constant | |
Lv et al. | Efficient diminished-1 modulo 2 n+ 1 multiplier architectures | |
KR0136484B1 (ko) | 이진 보수 발생을 위한 병렬 곱셈기 | |
Karunakaran et al. | Exploration on Power Delay Product of various VLSI Multiplier Architectures | |
Mai et al. | An energy‐efficient floating‐point compute SRAM with pipelined in‐memory bit‐parallel exponent and bitwise mantissa processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
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: 20190521 Termination date: 20220119 |