eFUSE 导出 NKZ 文件 - 2023.2 简体中文

Vivado Design Suite 用户指南: 编程和调试 (UG908)

Document ID
UG908
Release Date
2023-10-19
Version
2023.2 简体中文

由于建议您将 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] 的设置。