由于建议您将 eFUSE 设置编程为按多轮次运行,因此 eFUSE 设置始终导出至外部可见 NKZ 文件,并在每次 eFUSE 操作期间更新此文件。此文件用于累积应用于器件的所有 eFUSE 设置,即使通过多次 eFUSE 操作来应用这些设置也是如此。Vivado 会跟踪此文件,确保始终有单一 eFUSE 导出文件,其中包含 NKZ 格式的器件累积 eFUSE 设置。
如不指定任何选项,则此文件的默认名称如下所示,其中 <FUSE_DNA>
是器件的 FUSE_DNA 寄存器值。
export_<FUSE_DNA>.nkz
此默认文件位于 Vivado IDE 的启动目录中。可使用 program_hw_devices
Tcl 命令搭配 -efuse_export_file
选项来更改此文件,如以下示例所示:
program_hw_devices -user_efuse {1} -efuse_export_file {my_settings.nkz}
Vivado IDE 会使用针对导出的 eFUSE 设置指定的 NKZ 文件来启动,而无需在 Tcl 选项中反复指定此文件。这样就不会移除先前创建的任何 eFUSE 导出文件,而是在此文件中包含更改 eFUSE 导出文件名之前应用的所有 eFUSE 设置。执行完所有 eFUSE 操作后,所有 eFUSE 设置都存储在当前 eFUSE 导出文件中。
此外还有 1 个选项可用于单独导出 eFUSE 设置,而无需实际完成器件编程操作。该选项可用于创建包含所有必需 eFUSE 设置的单一 NKZ 文件,而不会影响器件。通过直接移除 eFUSE 导出文件并从头开始操作即可轻松解决在此模式下发生的任意 eFUSE 编程错误。可通过以下 Tcl 命令来使用此仅限导出模式:
program_hw_devices -user_efuse {1} -only_export_efuse
该选项仅适用于单一命令,因此必须在每项 eFUSE 操作中使用该选项,以避免对器件进行编程。由于 eFUSE 设置始终导出至 NKZ 文件,与是否执行编程无关,因此建议不要将编程流程与仅限导出流程混用。否则,生成的 eFUSE 导出文件可能同时包含实际已编程到器件中的 eFUSE 设置和仅导出到 NKZ 文件的设置,导致器件中 eFUSE 寄存器状态不明确。通过使用此仅限导出模式,所创建 NKZ 格式的 eFUSE 导出文件与执行编程后创建的导出文件完全相同,而无需在器件上执行编程。
program-hw_devices
Tcl 命令上还可使用 -skip_program_keys
选项来跳过 NKZ 文件中指定的加密密钥编程操作。 - 对于 7 系列器件,如果指定
-skip_program_keys
,则跳过FUSE_AES
的编程,不执行任何检查来确认加密文件中的 AES 密钥,并持续进行编程。 - 对于 7 系列器件,如果 NKZ 同时包含非零
FUSE_USER
设置,则不得使用-skip_program_keys
,因为FUSE_AES
值与FUSE_USER
值必须在 7 系列器件中一起进行编程。 - 对于 UltraScale 器件和 UltraScale+ 器件,如果进行模糊密钥编程时使用
-skip_program_keys
,则跳过FUSE_SEC[6]
的设置。