原创 2020-09-09

2020-9-9 11:00 2208 54 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

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

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

pidaneng 2020-9-11 08:48

谢谢楼主分享!
相关推荐阅读
指的是在下 2023-04-06 11:01
《移动终端人工智能技术与应用开发》大模型生成看烦了?不妨来关注下移动AI技术!
作为一本介绍移动终端人工智能技术与应用开发的书籍,《移动终端人工智能技术与应用开发》向读者全面地介绍了移动终端上的人工智能技术,包括自然语言处理、图像识别、智能推荐等多个方面。同时,本书还介绍了如何在...
指的是在下 2023-03-03 13:43
23年大火的ChatGPT不擅长什么?(4) 编程问题及与CoPilot差异
ChatGPT擅长解决一些编程问题,但有时可能会产生不准确或次优的代码。虽然它有编写代码的能力,但不能完全取代人类开发者。ChatGPT可以协助生成通用函数或重复代码等任务,但对程序员的需求仍将持续存...
指的是在下 2023-02-25 14:33
23年大火的ChatGPT不擅长什么?(3) 对幽默段子的反应
 幽默是一种令人娱乐或发笑的品质,通常通过言语或行动表达。它可以采用许多形式,如笑话、讽刺、反讽或俏皮的行为,其含义可以因文化背景和个人品味而大不相同。幽默经常使用幽默技巧,如双关语、文字游...
指的是在下 2023-02-22 19:09
23年大火的ChatGPT不擅长什么?(2) 逻辑与算术问题
逻辑推理是指通过思考问题或情境并得出结论的过程。它涉及权衡不同的选项、建立思维之间的联系,以及考虑支持特定结论的证据。另一方面,逻辑是数学和哲学的一个分支,研究推理原则。它涉及正确推理的规则和方法,如...
指的是在下 2023-02-21 21:22
23年大火的ChatGPT不擅长什么?(1) 推理问题
批判性思维、决策制定和问题解决都是极为关键的活动,它们在很大程度上依赖于人类智能的基本要素——推理。像ChatGPT这样的模型缺乏“世界模型”,这意味着它们没有完整的物理和社会世界的理解,也没有能力推...
我要评论
1
54
关闭 站长推荐上一条 /3 下一条