1、加密比特流生成

图形界面操作:

  1、打开待生成比特流的工程,Open implemented Design,点击工具栏           

  2、点击Bitstream,点击Configure additional bitstream settings

   

  3、点击Encryption,设置Enable Bitstream Encryption为Yes,Select location of encryption key为EFUSE。

    若已有密钥文件,在Key Settings 中input encryption file 选择密钥路径,在生成比特流时不会生成密钥文件;没有密钥文件,可以不设置input encryption file,在比特流文件存在的路径下会生成对应的nky文件。

   

特别注意:EFUSE代表一次性可编程熔丝。密钥烧录后永久固定且不可读出,适合量产产品。已经编程eFUSE的板卡需要保存好nky文件,下次使用该nky生成bit。

  4、保存约束文件,重新生成比特流和nky密钥文件

 

 

约束文件修改

上述步骤也可直接在约束文件中添加,重新生成比特流和密钥文件:

set_property BITSTREAM.ENCRYPTION.ENCRYPT YES [current_design]

set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT EFUSE [current_design]

set_property BITSTREAM.ENCRYPTION.KEYFILE /path.nky [current_design](未指定密钥文件,无需该约束,会自动生成nky文件)

 

2  FPGA eFuse编程

使用图形界面:

  1. 打开vivado
  2. Open Hardware Manager
  3. Open target,auto Connect
  4. 右键识别到的设备,Program eFUSE Registers   
  5.  

  5、选中nky文件,勾选Enable AES key programming,无需其他操作,一直点NEXT,最后一步Finish,完成设备加密  

 

 

终端执行加密

注:也可在终端执行tcl脚本,nky文件路径通过参数传入

vivado -mode tcl -source /path/program_efuse.tcl -tclargs design.nky