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

相关推荐
南檐巷上学1 小时前
基于Zynq-7020的带有正弦波发生器的8051软核设计
单片机·嵌入式硬件·fpga开发·fpga
思尔芯S2C1 小时前
FPGA原型验证中的内存模型应用:基于DDR5的Linux系统启动与测试
fpga开发·内存模型·ddr4·ddr5·memory model·hbm3·prototyping
hai31524754310 小时前
RISC-V CVA6 AXI适配器+DMA桥蜂鸟E203处理器的总线接口单元(BIU)仲裁器
驱动开发·fpga开发·硬件架构·硬件工程·精益工程
高速上的乌龟15 小时前
Lattice LFCPNX-100 HSB+Fpga开发详解:2.3 Hololink 顶层模块深度全解析
linux·fpga开发
Ricky055319 小时前
搭载实时 FPGA 处理系统的航天器上用于海上监视的超分辨率YOLO目标检测技术(意大利2026年研究)
yolo·目标检测·fpga开发
kaizq20 小时前
在线设计模仿平台StepFPGA应用实践
fpga开发·verilog编程·在线设计仿真·小脚丫stepfpga·图形化设计·risc-v_soc·ima-copilot-ds
cjie2211 天前
图像缩放需要哪些参数和端口
计算机视觉·fpga开发
思尔芯S2C1 天前
FPGA Prototyping That Creates Useful Pre-Silicon Evidence
fpga开发
啄缘之间1 天前
10.【学习】SPI & UART 验证环境与测试用例
开发语言·经验分享·学习·fpga开发·测试用例·verilog
liuluyang5302 天前
SV中|-> 和 |=>的区别与关系
fpga开发·sva