基于蜂鸟E203的AES加解密NICE协处理单元设计
一、团队介绍
我们是学堂路三轮车队,报名编号卫CICC1449。这是我们分享的第六篇文章,此前的五篇文章链接如下:
非常感谢此开源论坛,确实收获满满!
二、作品简介
我们设计了基于NICE接口的AES加解密协处理单元,拓展了6条拓展指令,支持EBC、CBC、、CFB、OFB、CTR五种加密模式,和软件相比,速度提高约2000倍。整体框架如下:
工程设计主要分成三个部分:软件上指令拓展、接口调度、硬件协同优化。
1.软件上指令拓展
我们采用中等粒度方式设计了6条拓展指令,通过适当组合,可以支持五种加解密模式,具体的指令功能如下图:
2.接口调度
接口实现是工程的难点,需要非常仔细设计其中的数据流和控制流,期间碰到大小端转换问题、文本密钥缓存问题等,总体框图如下:
3.硬件协同优化
AES的硬件实现有许多开源的项目,但若要取得更高的性能,需要特别设计,比如轮密钥拓展的时序、状态机的控制、密钥缓存的设计等,总体框架如下:
三、测试结果
最后测试不同明文块下,ECB、CBC软件和硬件加解密的周期数,取得约2000倍的加速效果。
四、附录
有用的参考博文 利用 NucleiStudio IDE 和 vivado 进行软硬件联合仿真 开源RISC-V处理器(蜂鸟E203)学习 在Windows环境下用Vivado调试E203