赛灵思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启动。

相关推荐
海盐nnn18 小时前
面向 AI 的 FPGA 开发流程:别急着让它写代码,先把方向定好
fpga开发
zlinear数据采集卡19 小时前
数据采集卡从入门到精通(38):上位机开发实战——Python/QT/LabVIEW的技术选型与分层架构
python·单片机·嵌入式硬件·qt·fpga开发·开源·labview
zlinear数据采集卡21 小时前
数据采集卡从入门到精通(42):项目实战三——设备预测性维护系统,从布点到预警
开发语言·单片机·嵌入式硬件·安全·fpga开发
国科安芯1 天前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
明德扬2 天前
多路MIPI摄像头如何同步聚合?一文看懂FPGA视频汇聚方案
fpga开发·音视频
松小白song2 天前
FPGA开发三大铁律:位宽、逻辑与连接,为何仿真通过上板却挂?
fpga开发
FPGA小徐2 天前
FPGA 时钟频率计算与单位换算
fpga开发
h×32 天前
FPGA视频4分屏项目 - 系统架构详细讲解
fpga开发·音视频
秋92 天前
硬件工程师全岗位薪资全景解析(2026版):IC设计·嵌入式·板级硬件·FPGA·晶圆制造
fpga开发·制造
博览鸿蒙2 天前
FPGA 工程师到底有哪些方向?每个岗位都在干什么?一篇给你讲清楚
fpga开发