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

相关推荐
1560820721912 小时前
关于国微SQM7VX690T和复旦微JFM7VX690T调试
fpga开发
minglie11 天前
简易寄存器接口SMMR---正交编码器
fpga开发
神电测控1 天前
新品发布:32通道50MS/s同步并行14位采集模块PG-FMC9249(支持任意FPGA/ZYNQ,兼容LabVIEW FPGA软件开发)
fpga开发·labview·ni·神电测控·王电令·ad9249·32通道
Drgfd1 天前
半导体国产替代进入“深水区”:决战设备、材料、IP三大高地
网络·fpga开发
国产HT1621B1 天前
YL1650 LED驱动芯片详解:从原理到实战应用(附51单片机驱动代码)
stm32·单片机·嵌入式硬件·mcu·fpga开发·lcd驱动
szxinmai主板定制专家1 天前
驱控一体新范式:RK3576+FPGA+CODESYS工业实时AI控制架构全解
人工智能·嵌入式硬件·计算机视觉·fpga开发·架构·工业ai·驱控一体
国科安芯1 天前
ASC0101S自动双向电平转换原理深剖
单片机·嵌入式硬件·fpga开发·云计算·信息与通信
落chen2 天前
7 Series FPGAs Clocking Resources
fpga开发
落chen2 天前
基于FPGA的IIC协议通信-强化篇
fpga开发
梦开始的地方 �2 天前
实例化和句柄
fpga开发