AES-128的verilog实现_aes 128 verilog-CSDN博客,我之前写过AES-128,现在在他的基础上实现三种安全等级128,192,256的复用。并引入和外界进行交互的接口。,nice_inst对应我自己定义的指令。下面的RAM接口可以直接与内部RAM交互。
定义了7种功能,一个完整的测试例子如下,可以用我工程里面的vivado里面的testbench功能仿真得到下面的波形:
这段波形包含了:设置level,写256bits密钥到AES,密钥扩展,加载明文,加密,读密文;加载密文,解密,读明文。每个明文块128bits一组来处理。
我的vivado是2022.1,如果版本跟我一样可以直接打开对应vivado工程。
顶层文件为aes_top。testbench里面包含三个安全等级的测试。fips-197是官方文档。
我的BRAM里面64bits位宽,0-3地址放256bits密钥,4-33放最多15*128bits扩展密钥,34-35放128bits明文/密文,加密/解密完后密文/明文128bits覆盖到34-35的地址。每128bits一组加解密。
往BRAM里面写数据的流程图如上图所示,也放在other文件下面的.json文件,可以用vs code的ctrl k再ctrl+d打开。
所有的文件都在下面了,嘻嘻。
链接: https://pan.baidu.com/s/1QX3MWSwwWnrJcOQBZElMJA?pwd=5w6j 提取码: 5w6j