[发明专利]一种基于Avalon接口的SM3算法IP核的设计方法有效
| 申请号: | 201610198363.X | 申请日: | 2016-04-01 |
| 公开(公告)号: | CN105786528B | 公开(公告)日: | 2019-01-08 |
| 发明(设计)人: | 苏振宇 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
| 主分类号: | G06F9/448 | 分类号: | G06F9/448;G06F17/50 |
| 代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
| 地址: | 250101 山东*** | 国省代码: | 山东;37 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 avalon 接口 sm3 算法 ip 设计 方法 | ||
1.一种基于Avalon接口的SM3算法IP核的设计方法,其特征在于,
IP核的封装接口的所有信号是时钟同步的,在上升沿被采样,高电平有效;各信号的功能如下:
clk:输入信号,Avalon总线的时钟,作为IP核的时钟信号;
reset:输入信号,是IP核的复位信号;
Data_in[511..0]:输入信号,512 bit数据输入;
address[4..0]:输入信号,地址总线,译码后用于选定IP核的寄存器;
Data_out[255..0]:输出信号,256 bit运算结果输出;
done:输出引脚,消息块运算完成时产生的完成标志,高电平有效;
该IP核包括4个寄存器,字长为32 bit,每个寄存器的功能如下:
1)、数据寄存器:偏移地址为0x00-0x0F,用于存放SM3算法的一块消息数据,对该寄存器只可进行写操作;
2)、长度寄存器:偏移地址为0x10,用于存放SM3算法的消息块的总长度,对该寄存器可进行读写操作;
3)、运算结果寄存器:偏移地址为0x11-0x18,用于存放SM3算法的消息杂凑运算结果,对该寄存器只可进行读操作;
4)、控制寄存器:偏移地址为0x19,可以对控制寄存器进行读写操作,从而控制IP核的功能并查询状态;
IP核工作时,首先向长度寄存器写入消息块的总长度,之后向IP核的数据寄存器写入第一个待运算的消息块的数据,当第一个消息块数据运算完成后,设置控制寄存器的第3位为1,之后向IP核写入第二个待运算的消息块数据,并设置控制寄存器的第3位为0,直到所有的消息块数据运算完成,最终的杂凑运算结果被写入到运算结果寄存器中,通过Data_out[255..0]接口读出。
2.根据权利要求1所述的方法,其特征在于,控制寄存器的0~3位有效,其中:第0位是IRQ_ENA,置1表示当所有消息块运算完成后产生中断信号,清0表示运算完成后不产生中断信号,IP核工作于查询模式;第1位是DATA_VALID,置1表示消息块数据有效,清0表示消息块无效;第2位是启动信号,用于启动IP核开始运算;第3位是每块消息块运算完成信号,置1表示一块消息块运算完成,清0表示消息块未运算完成。
3.根据权利要求2所述的方法,其特征在于,该IP核对数据的处理过程采用了有限状态机的设计方法;状态机的状态转移包括等待长度状态WAIT_LEN、等待数据状态WAIT_DATA、初始轮状态INITIAL_ROUND、重复轮状态DO_ROUND、最终轮状态FINAL_ROUND和完成状态DONE,每次消息块杂凑运算需要多轮操作;其中data_stable是数据稳定信号,通过控制寄存器访问;变量i是轮计数器,NO_ROUNDS是常量,表示处理数据块过程总的轮数,由长度寄存器设定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610198363.X/1.html,转载请声明来源钻瓜专利网。





