程序加密方案¶
- 参考文档
- DR1安全启动和加密-Wiki链接
- TN024_第三方烧录工具烧写EF2_EF3_SF1 AES指南
- TN404_ELF2 AES加密使用指导
- TN406_ELF2 DNA模块使用指南
- TN411_ELF2 DNA加密方案
- SWUG110_BitWizard_User_Guide.pdf
1. 工程相关设置(可选)¶
-
BIN文件
- MSPI模式:存放在外挂Flash或者内部合封的Flash
- SS模式:存放在MCU里面,由MCU发出位流数据去配置FPGA
-
FPGA(SRAM结构)
- JTAG接口可以下载/校验/回读
- 回读SRAM是一个xxx.hex文件
- 测试:原始bin文件613KB, 回读hex文件4803KB
1.1 JTAG复用普通IO¶
-
关闭JTAG
- 器件型号上右键打开Device Option(不同TD版本稍微有差异)
- 新开的界面Device Option点击打开
- TDI/TMS/TCK/TDO从Dedicated改成GPIO
- 保存重新编译新的位流固化到配置Flash里面或直接配置FPGA
- 在Done信号上升沿后(从配置模式切入用户模式)生效,此时下载器的JTAG已经无法连接
-
EF系列恢复JTAG:JTAGEN引脚高电平JTAG引脚为调试下载口,低电平则为普通IO
-
EG/PH系列恢复JTAG:上电前把模式引脚模式改下或者Flash去掉再上电,
原理就是阻止FPGA正常加载进入用户模式(Done上升沿)
![]() |
![]() |
|---|---|
1.2 禁止SRAM回读¶
- TD4/5菜单栏Process进入Properties
TD6版本可以选择整个界面左侧的Generate Bitstream右键进入 - 找到Securit选项设置为1
- 保存重新编译新的位流固化
![]() |
![]() |
|---|---|
2. AES加密¶
- 支持型号:EF2/EF3/SF1/EF5/PH等(EG4不支持)
- 适用模式:MSPI FLASH模式
-
AES密钥烧录EFUSE有失败概率,且失败后无法恢复
-
建议环境和工具
- TD_Release_2026.1_SP2_NL(或官网最新版本)
- AL-LINK-V3.0(必须官方途径购买, 淘宝可能是老版本固件或其它款式下载器)
- Speed:为确保 efuse 烧录正常,速率必须限制在 1MHz

2.1 准备密钥¶
- 用户准备一个128bit的密钥,保存为
.dat格式文件
2.2 生成加密位流¶
- 在TD软件的Download界面,点击“--EF2 Encrypt--”按钮
- 加载密钥文件(Key File)和待加密的位流文件(Source Bit File)
- 选择加密位流的保存路径,点击“--Generate Encrypt Bit--”生成加密后的
.bit文件
2.3 烧写密钥¶
- 在Encrypt界面选择“--Program Encrypt Key--”,加载密钥扩展文件(Key Exp File)
- 点击“--Program Encrypt Key Into Efuse--”将密钥烧入芯片
- 点击“--Program Encrypt Key Lock--”锁定密钥(锁定后无法读出,且只能烧写一次)
2.4 下载加密位流¶
- 加密位流的下载方式与普通位流一致,通过Add加载后下载即可。
3. DNA加密¶
- 支持型号:带64 位芯片唯一DNA的芯片(来源是FPGA或Flash)
- 适用范围: MSPI FLASH模式
3.1 准备¶
- 准备好64位初始密文(如AA01020304050607) Bin文件, 烧录到FLASH指定地址
3.2 第一次上电¶
- 读取初始密文并验证。若匹配,则读取FPGA DNA,
- 将DNA加密后的新密文写入FLASH,覆盖初始密文。
3.3 后续每次上电¶
- 读取FLASH中的密文,与实时计算的DNA密文比较。
- 匹配则功能使能(Cipher_ok=1),失败则禁用。



