RISC-V MCU中文社区

【分享】 基于蜂鸟E203的AES加解密NICE协处理单元设计

发表于 全国大学生集成电路创新创业大赛 2021-07-06 10:51:34
2
6087
2

一、团队介绍

我们是学堂路三轮车队,报名编号卫CICC1449。这是我们分享的第六篇文章,此前的五篇文章链接如下:

非常感谢此开源论坛,确实收获满满!

二、作品简介

我们设计了基于NICE接口的AES加解密协处理单元,拓展了6条拓展指令,支持EBC、CBC、、CFB、OFB、CTR五种加密模式,和软件相比,速度提高约2000倍。整体框架如下:

工程设计主要分成三个部分:软件上指令拓展、接口调度、硬件协同优化。

1.软件上指令拓展

我们采用中等粒度方式设计了6条拓展指令,通过适当组合,可以支持五种加解密模式。

2.接口调度

接口实现是工程的难点,需要非常仔细设计其中的数据流和控制流,期间碰到大小端转换问题、文本密钥缓存问题等,总体框图如下:

3.硬件协同优化

AES的硬件实现有许多开源的项目,但若要取得更高的性能,需要特别设计,比如轮密钥拓展的时序、状态机的控制、密钥缓存的设计等,总体框架如下:

三、测试结果

最后测试不同明文块下,ECB、CBC软件和硬件加解密的周期数,取得约2000倍的加速效果。



喜欢2
用户评论 (2)
  • 何志帆

    2021-07-17 22:19:57 何志帆 1#

    后面的不对,会不会是nice写回E203的时候出错了,这只能对照时序图看了;第二个似乎也是写回的问题;FPGA出问题的话,可以看看代码有没warning,把warning也改好。

  • 突刺咸鱼

    2021-07-16 20:25:22 突刺咸鱼 2#

    大佬,我想问一下,我们也是做的AES(128位)加解密,但是我们最后仿真结果只能显示32位,后面的不对,但是波形图可以出现正确结果,你们知道怎么解决吗?第二个问题就是,软件不能通过指令接收到结果,NICE指令没有返回值,但是之前那个3乘3是可以的,第三个问题就是,我们得到正确仿真波形图,但是FPGA验证会出问题。

何志帆

何志帆 实名认证

懒的都不写签名

积分
问答
粉丝
关注
  • RV-STAR 开发板
  • RISC-V处理器设计系列课程
  • 培养RISC-V大学土壤 共建RISC-V教育生态
RV-STAR 开发板