模乘法逆运算电路

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

说明书
模(216+1)乘法逆运算电路
所属技术领域
本实用新型属于密码芯片设计领域,是可重构密码协处理器的重要组成模块,用于实现模(216+1)乘法逆运算。

背景技术
模(216+1)乘法逆运算电路对16位的输入数据D,求D的模216+1的乘法逆Q,即对于D求Q,使得下式成立:
D*Q=1 mod(216+1)。

求D的模216+1乘法逆Q的算法如下:
(1)令n1←216+1,n2←D,b1←0,b2←1
(2)求q,r,使n1=q*n2+r
(3)若r≠0,则作
n1←n2,n2←r,t←b2,b2←b1-q*b2,b1←t,转第(2)步。

若r=0,则进行第(4)和第(5)步。

(4)若b2<0,则作
b2←b2+(216+1)
(5)b2就是D的乘法逆,即Q=b2,结束。

在以上运算流程中,在r=0之前可能会在第(2)和第(3)步骤之间进行若干周期的运算。

在整个循环运算中,由于各运算部件,如除法器,乘法器,加法器运算速度不一致,则n1, n2, b2, b1装载时间不一致,从而导致运算错误。

此外,在前一数据运算还未完成之前,新的数据到来会破坏前一数据的运算,从而导致结果出错。

发明内容
为了克服传统设计的不足,使该运算电路计算准确稳定,本实用新型提供一种模(216+1)乘法逆运算电路。

该电路不仅能完成准确稳定地完成模(216+1)乘法逆运算功能,而且结构简单,控制准确。

为解决上述技术问题,本实用新型通过以下技术方案予以实现:
在输入端,除了输入数据d[15:0]外,增加装载使能信号ld,和时钟信号clk,并采用5个寄存器分别装载数据n1, n2, b1, b2, 和计算结果out。

n1, n2, b1, b2,和输出结果同步于输入时钟。

装载使能信号周期大于该运算电路运算所需的最长时间,则保证了装载新的
数据不破坏正在进行中的运算。

在数据装载使能信号ld为高时,n1装载初始值216+1,n2装载数据d,寄存器b1转载0,b2装载1。

n1作为被除数,n2作被除数输入一到除法器进行除法运算。

若所得余数r不为零时,则将除数n2传给被除数n1,余数q传给除数n2,进行再一次相除,同时,将b1_nxt赋给b1,b2_nxt赋给b2。

b1_next等于b2。

而b2_next为商q与b2相乘,乘积被b1减去得到。

当余数q等于零时,以上各信号皆不变,判断b2最高位是否为1,若为1,b2是负数,则选择b2加上(216+1)的和。

若q为0,则选择b2。

所选择的结果输入一寄存器作为最终结果out。

本实用新型的有益效果是电路结构简单,运算准确稳定。

附图说明
图1和图2是本实用新型实现模(216 + 1)乘法逆运算的具体电路图。

具体实施方式
下面结合附图和具体实施方式对本实用新型作进一步详细的说明。

该电路包括5个寄存器,和5个选择器,一个除法器,两个加法器和一个乘法器和r等于0的比较器。

r等于0的比较器是将输入信号r按位取反后并相与而成。

ld取反后连到选择器n2_5, n1_5, b1_5, b2_5的控制端。

除法器输出r[16:0]为余数按位取反后并相与得到req0, req0取反后与ld信号取反的信号相与得到un1_ld。

un1_ld 连到n1, n2, b1, b2寄存器使能端。

当ld为高或者余数r为0时,un1_ld为零,此时n1, n2, b1, b2寄存器关闭,不能装载数据,当un1_ld为1时,以上寄存器可以在时钟上升沿将D端数据送到Q端。

req0连到out寄存器的使能端,余数为0时,out寄存器打开,装载输出结果,反之则不变。

输入数据d, 连到选择器n2_5输入端,另一输入端连接除法器的输出结果r,当ld为1,该选择器选择d,为0时选择r,该选择器输出连到n2寄存器的D端。

n2寄存器输出Q端连到n1_5选择器,该选择器另一输入为一常数216+1,ld为1时选择该常数,否则选择n2。

n1_5选择器输出结果连到n1寄存器。

n1和n2寄存器Q端连到一除法器上,分别作为被除数和除数。

除法器输出结果商q和余数r, q作为乘法器的输入,另一输入为b2, 乘法器的结果取反后送到一加法器b2_nxt,该加法器有三个输入,另两个输入为b1, 和1。

实现b1减q*b2的功能。

该加法器的结果再连到b2_5选择器,另一端输入1, ld为1时,选择1,反之选择b2_nxt。

选择器输出作为b2寄存器的数据输入。

b2经b1_5选择器后,输出作为b1寄存器输入。

同时b2连到out_2选择器上,另一输入为b2+(216+1)的结果,当b2[16]为选择器的控制信号,当b2[16]为1,时选择b2+(216+1),反之选择b2, 该选择器的的输出连到out寄存器, out寄存器的输出就是最终的输出。

图1:模(216+1)乘法逆运算电路图(第一部分)
3
req0图2:模(216+1)乘法逆运算电路图(第二部分)
4。

相关文档
最新文档