CN106873941A - 一种快速模乘和模平方电路及其实现方法 - Google Patents

一种快速模乘和模平方电路及其实现方法 Download PDF

Info

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
Application number
CN201710039195.4A
Other languages
English (en)
Other versions
CN106873941B (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.)
Xian Jiaotong University
Original Assignee
Xian Jiaotong 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 Xian Jiaotong University filed Critical Xian Jiaotong University
Priority to CN201710039195.4A priority Critical patent/CN106873941B/zh
Publication of CN106873941A publication Critical patent/CN106873941A/zh
Application granted granted Critical
Publication of CN106873941B publication Critical patent/CN106873941B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/544Methods 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/552Powers 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的倍数。
CN201710039195.4A 2017-01-19 2017-01-19 一种快速模乘和模平方电路及其实现方法 Expired - Fee Related CN106873941B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117114A (zh) * 2018-08-16 2019-01-01 电子科技大学 一种基于查找表的低复杂度近似乘法器

Citations (6)

* Cited by examiner, † Cited by third party
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)高速模乘法器

Patent Citations (6)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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