原创 2020-09-09

2020-9-9 11:00 375 3 2 分类: FPGA/CPLD
实现的Montgomery大数相乘,如图所示; 供上一级ModExpPoweringladder 使用。
所谓的蒙哥马利形式即为模n的余数表示形式,只有当操作数转换为蒙哥马利形式时,才能使用此算法执行模乘。计算之后,操作数需要转换回正常表示。由于这些前、后计算步骤,蒙哥马利乘法并不比常规模乘快。但是,重复使用MonPro的情况下相比可以显著提高速度。当r是2的幂次时,除法可以用移位代替,余数的计算简化为位运算。n0为顶层模块中计算完成后給入的,其公式如下:


MonPro模块共8个端口,62出,inp轮流输入两个乘数,outp输出积。

 

端口名称

位宽

方向

描述

clk

 

Input

ModExpPowering时钟

reset

 

Input

重置位

start

 

Input

启动标志位

n0_data

64

Input

第一组n

n_data

64

Input

存储器給入n

inp

64

Intput

两乘数轮流由此输入

state

5

Output

显示状态机运行状态

outp

64

Output

乘积输出

MonPro模块端口定义


MonPro模块为ModExpPowering的次级调用,包含一个有10个状态的有限状态机,首先通过端口inp依次读入64位的乘数x与y,z则会初始化为0。 
第一步通过例化MulAdd模块计算
第二步把v的最低权重位记为,这里为64位,计算得到64位中间量m;
第三步MulAdd模块计算, 紧接着第四步完成 
, ... ...
运算64次之后移位约减,得到32轮中的第一轮64位输出结果z;下面继续从第一步开始做循环32次,即可得到完整的2048位Montgomery输出。

作者: 指的是在下, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3880846.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

文章评论1条评论)

登录后参与讨论

pidaneng 2020-9-11 08:48

谢谢楼主分享!
相关推荐阅读
指的是在下 2020-09-20 21:42
【2020意法半导体开发大赛】ST25DV-PWM-eSET nfc感应
感谢ST给的 试用机会!这款NFC板 小巧别致,使用简单,配套说明详尽,对NFC做了很好的推广工作下载了应用后尝试用手机 与 开发板作感应,反应快速 很快成功,APP可以对 本开发板作 一定调节控制,...
指的是在下 2020-08-17 17:44
2020-08-17
本工程设计ModExpPowering为顶层模块,通过一包含11个状态的有限状态机(NONE 1, LOADC 2, WAIT_COMPUTE 3, CALC_C_BAR 4, GET_K_D 5, ...
指的是在下 2020-08-15 10:17
信息技术测试行业
测试 基于 锁了门一定要看下锁上了没的 人类心理,可能门后有对你来说重要的东西,你不信任门锁质量或是对自己的操作不确定,这都能成为测试的理由与动机。IT产业的测试据我观察有四个主要业务,软件测试 硬件...
指的是在下 2020-06-20 22:11
【富芮坤物联网开发板评测】FR8016H开发板ble_simple_peripheral例程运行
心心念念的富芮坤物联网开发板渐渐摸索清楚了该怎么用    原来非常切合嵌入式开发者与爱好者的思路。,安装 Keil IDE 后, 获取 Fr801xH SDK 即可开始尝...
指的是在下 2020-03-07 09:29
数字滤波器概述
数字滤波器是一个按预定的有限精度算法实现的、将输入的数字信号转换为所需要的输出数字信号的线性时不变系统LTI。滤波器是是一种对信号有处理作用的器件或电路,其主要作用是让有用信号尽可能无衰减的通过,对无...
广告
EE直播间
更多
我要评论
1
3
1
2
3
4
5
6
7
8
9
0
广告
关闭 热点推荐上一条 /6 下一条