赛灵思KU系列FPGA的EFUSE/BBRAM加密操作

直接上干货,不过多解释,具体可以参考官方手册ug570、xapp1239、xapp1267等

本测试基于vivado2023.1。

一、BBRAM秘钥的烧录

第一步、创建基本vivado工程

第二步,创建约束文件,添加如下语句到约束文件中。

复制代码
#加密部分内容,使用EFUSE 或者BBRAM,切换约束语句
set_property BITSTREAM.ENCRYPTION.ENCRYPT YES [current_design]
#set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT EFUSE [current_design]
set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT BBRAM [current_design]
set_property BITSTREAM.ENCRYPTION.KEYLIFE 32 [current_design]
set_property BITSTREAM.ENCRYPTION.KEY0 256'h0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF [current_design]
set_property BITSTREAM.ENCRYPTION.STARTIV0 128'h0123456789ABCDEF0123456789ABCDEF [current_design]


#RSA身份验证相关设置 若使用则取消注释
#set_property BITSTREAM.AUTHENTICATION.AUTHENTICATE YES [current_design]
#set_property BITSTREAM.ENCRYPTION.RSAKEYLIFEFRAMES 8 [current_design]
#set_property BITSTREAM.AUTHENTICATION.RSAPRIVATEKEYFILE {C:\Users\ADMIN\Desktop\RSA\private.pem} [current_design]

第三步,编译工程,会在project_1.runs\impl_1文件路径下,生成.nky的秘钥文件。

第四步,烧录秘钥文件

第五步,烧录bit文件,此时程序可以正常启动。

二、EFUSE秘钥的烧录

整体过程与BBRAM流程相同。此部分本人额外增加了RSA鉴权部分,演示RSA部分的操作。

注意:启用RSA后,无法通过JTAG烧录。

第一步、创建基本vivado工程

第二步,创建约束文件,添加如下语句到约束文件中。

复制代码
#加密部分内容,使用EFUSE 或者BBRAM,切换约束语句
set_property BITSTREAM.ENCRYPTION.ENCRYPT YES [current_design]
set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT EFUSE [current_design]
#set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT BBRAM [current_design]
set_property BITSTREAM.ENCRYPTION.KEYLIFE 32 [current_design]
set_property BITSTREAM.ENCRYPTION.KEY0 256'h0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF [current_design]
set_property BITSTREAM.ENCRYPTION.STARTIV0 128'h0123456789ABCDEF0123456789ABCDEF [current_design]


#RSA身份验证相关设置 若使用则取消注释
set_property BITSTREAM.AUTHENTICATION.AUTHENTICATE YES [current_design]
set_property BITSTREAM.ENCRYPTION.RSAKEYLIFEFRAMES 8 [current_design]
set_property BITSTREAM.AUTHENTICATION.RSAPRIVATEKEYFILE {C:\Users\ADMIN\Desktop\RSA\private.pem} [current_design]

第三步,编译工程,会在project_1.runs\impl_1文件路径下,生成.nky的秘钥文件。

第四步,烧录秘钥文件。

选择对应的key文件,勾选AES和RSA变成使能。

暂时不使用eFUSE中的USER寄存器,无需勾选

忽略这些控制寄存器

第五步,烧录bit文件到FLASH,重新加电,此时程序可以正常启动。

这里需要注意的是,KU035 FPGA在RSA鉴权启用的情况下,不支持SPI FLASH配置,JTAG配置,仅支持BPI和SELECTMAP启动。

相关推荐
一口一口吃成大V1 天前
vivado的bit 和 bin的区别
fpga开发
尤老师FPGA2 天前
HDMI数据的接收发送实验(十八)
fpga开发
北京青翼科技2 天前
青翼科技 JFM7K325T FPGA+FT-M6678 DSP 的全国产化信号处理平台丨FPGA开发板
fpga开发·数据采集卡·fmc子卡·fpga开发板·ad采集卡·图像处理卡·dsp信号处理
zlinear数据采集卡2 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源
FakeOccupational3 天前
fpga系列 HDL:Microchip FPGA开发软件 Libero Soc FPGA 在线逻辑分析
fpga开发
FPGA技术联盟3 天前
如何在跨时钟域分析中处理好复位信号?
fpga开发
国科安芯3 天前
基于ASM1042S2S的箭载通信网络抗辐射加固方案研究
服务器·网络·嵌入式硬件·fpga开发·架构·信号处理
YYRAN_ZZU4 天前
Lattice 自定义IP业务逻辑核
嵌入式硬件·fpga开发
FPGA小徐4 天前
FPGA FIFO一篇完整解释
fpga开发
I'm a winner4 天前
【IP核】 Xilinx FPGA LVDS 高速接口,含验证工程与板级测试用例
tcp/ip·fpga开发·测试用例