最近在编译远古代码的时候发现约束文件里面有这样几句
set_property BITSTREAM.ENCRYPTION.ENCRYPT Yes [current_design]
set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT bbram [current_design]
set_property BITSTREAM.ENCRYPTION.KEYFILE E:\zsl\prj\c006_415t.nky [current_design]
1
2
3
查了一下资料,原来是部分FPGA在出厂时有加密的专用设计,在生成bit文件的时候指定此加密文件,然后在下载到FPGA之前先用工具将此xxx.nky文件下载到FPGA中去,然后再下载bit文件时FPGA才能正确解析此bit文件,但是对于硬件没有做此设置的FPGA来说,下载任何版本的bit文件都不受影响,此xxx.nky文件可以是自己写的一串加密规则(?不知道什么内容),也可以是vivado按其规则自己生成的一个文件。
Several ZTEX FPGA Boards support Bitstream encryption, e.g. USB-FPGA Modules 2.16, 2.13, 2.14 and 2.18.
The key which is used to decrypt the bitstream is stored in special low power memory of the FPGA which is powered by a battery. This battery is an option and not installed by default.
Using encrypted bitstreams is quite simple:
1、Generate an encrypted bitstream either (ISE) using the bitgen option -g Encypt:Yes and -g KeyFile:<.nky file> or (Vivado) using the constraints
set_property BITSTREAM.ENCRYPTION.ENCRYPT Yes [current_design]
set_property BITSTREAM.ENCRYPTION.ENCRYPTKEYSELECT bbram [current_design]
set_property BITSTREAM.ENCRYPTION.KEYFILE <.nky file> [current_design]
1
2
3
If no key file (.nky file) is given a new one with random key is created.
2、Upload the key (.nky file) to the FPGA through JTAG using Xilinx tools
3、FPGA now accepts the encrypted bitstream (no special load technique is required but some options like bitstream compression may not work)
https://www.xilinx.com/support/answers/52881.html
AR# 52881
Configuration - BitStream Encryption - How to create and program an encrypted bitstream
https://www.xilinx.com/support/answers/61258.html
AR# 61258
Vivado 2014.x - Regenerate different key file for Encryption on Linux
---------------------
作者:weixin_39055614
来源:CSDN
原文:https://blog.csdn.net/weixin_39055614/article/details/88852785
版权声明:本文为博主原创文章,转载请附上博文链接!