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

技术编号:15690534 阅读:69 留言:0更新日期:2017-06-24 03:00
本发明专利技术公开了一种快速模乘和模平方电路及其实现方法,该电路由一组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的倍数。

A fast modular multiplication and modulus square circuit and its implementation method

The invention discloses a fast modular multiplication and square circuit and its realization method, the circuit consists of a set of M bits left three bit shift register QU, three sets of M bits of the two input and gate array AND1, AND2, AND3, four groups of full adder array FA1, FA2, FA3, FA4, m+4 the register Q and ROM unit of a 32 * m composition to enough for m large number of bits binary multiplication or square and die on prime P reduction, 3 in each clock cycle, after m/3+2 cycles can be modular multiplication and the square of the results, if M is not a multiple of 3 can be based on the high fill factor of 0 until the 3.

【技术实现步骤摘要】
一种快速模乘和模平方电路及其实现方法
本专利技术涉及集成电路设计领域,涉及一种用于大数模乘和模平方的快速模约减电路,特别涉及一种快速模乘和模平方电路及其实现方法。
技术介绍
目前对于大数模乘和模平方的模约减过程,通常采用的方案是先计算出乘法和平方的结果再对大素数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所示。表1AdderXAdderX00864*Pb18*Pb972*Pb216*Pb1080*Pb324*Pb1188*Pb432*Pb1296*Pb540*Pb13104*Pb648*Pb14112*Pb756*Pb15120*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为进本文档来自技高网...
一种快速模乘和模平方电路及其实现方法

【技术保护点】
一种快速模乘和模平方电路,其特征在于,包括:一组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的加数端口。...

【技术特征摘要】
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位通过左移三位连接到全加器阵列FA...

【专利技术属性】
技术研发人员:李春泉雷绍充赵重阳彭星宇张云龙
申请(专利权)人:西安交通大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1