vivado eFUSE 寄存器访问和编程

发布于:2024-04-04 ⋅ 阅读:(109) ⋅ 点赞:(0)
eFUSE 寄存器访问和编程
注释 MPSoC Versal 器件上不支持以下 eFUSE 访问和编程方法。
7 系列、 UltraScale UltraScale+ 器件具有一次性可编程位用于执行特定功能 称为 eFUSE 位。不同 eFUSE 位类型如 下所述:
FUSE_DNA - 存储唯一器件标识位 不可编程
FUSE_USER - 存储 32 位用户定义的代码。
FUSE_KEY - 存储密钥以供 AES 比特流解密器使用。
FUSE_CNTL - 控制密钥使用和对 eFUSE 寄存器的读写访问权。
FUSE_SEC - 控制 UltraScale UltraScale+ 器件中的特殊器件安全性设置。
重要提示 eFUSE 寄存器位编程只是一次性操作。 eFUSE 寄存器位一经编程 从未编程状态 0 转换为 已编程状态 1 ), 则无法复位为 0 / 或重新编程。在对任意 eFUSE 寄存器进行编程前 应谨慎核查设置。
注意 如有任何 eFUSE 寄存器位先前已编程 从未编程状态 0 转换为已编程状态 1 ), 那么尝试对其再 次进行编程时, Vivado 硬件管理器会发出严重警告 以指出部分位已编程。但即使出现此警告 先前操作期 间尚未编程的后续 eFUSE 寄存器位 处于未编程状态 0 仍将继续进行编程。
重要提示 赛灵思建议首先对 FUSE_USER FUSE_KEY FUSE_RSA 寄存器进行编程 然后重新运行 “eFUSE 编程 (eFUSE programming) Wizard FUSE_SEC 位进行编程以控制 FPGA 安全性设置 最后对 FUSE_CNTL 位进行编程以控制对这些 eFUSE 位执行的读写访问。
针对 eFUSE 编程的电缆支持
支持 eFUSE 编程的兼容 JTAG 下载线缆和器件列表如下
• 赛灵思 SmartLynq 数据电缆 (HW-SMARTLYNQ-G/DLC20)
• 赛灵思平台电缆 USB II (DLC10)
Digilent JTAG-HS1
Digilent JTAG-HS2
Digilent JTAG-HS3
适用于 7 系列器件的 eFUSE 寄存器访问和编程
FUSE_DNA 唯一的器件 DNA
每个 7 系列器件都有唯一的器件 ID 称为器件 DNA 且赛灵思已将此 DNA 编程到器件中。 7 系列器件具有 64 位 DNA。您可在 Vivado Design Suite Tcl 控制台中运行以下 Tcl 命令以读取这些位 : get_property [lindex [get_hw_device] 0] REGISTER.EFUSE.FUSE_DNA
您也可以在 Vivado Design Suite 的“硬件器件属性 (Hardware Device Properties) ”窗口中通过查看 eFUSE 寄存器来访 问器件 DNA 如下图所示。
eFUSE 寄存器编程
要执行 eFUSE 寄存器编程 请在“硬件 (Hardware) ”窗口中右键单击 FPGA 器件并选中“ Program eFUSE Registers”。
这样会显示如下图所示的“ Program eFUSE Registers Wizard 并指导您为 eFUSE 寄存器设置各选项。
在“ AES 密钥设置 (AES Key Setup) ”窗格中 指定以下设置
• “ AES Key file
输入文件名或者浏览至目标文件以指定 AES 密钥文件 ( .nky ) 。指定有效的 .nky 文件后 就会自动填充 AES 密 钥字段。
• “ USER bits [7:0] and USER bits [31:8]
所提供的 USER eFUSE 位可支持用户通过编程来获取其自己的特殊 32 位模式。下 8 FUSE_USER 256 位 高级加密标准 (AES) 密钥同时进行编程。上 24 位用户位可与 AES 密钥并行编程 或者也可稍后再编程 在“控制寄存器设置 (Control Register Settings) ”窗格中 指定以下设置
CFG_AES_Only 设置此项即可强制使用存储的 AES 密钥。
AES_Exclusive 设置此项即可禁用部分重配置。
W_EN_B_Key_User 设置此项即可禁用 AES 密钥和用户寄存器的编程操作。
R_EN_B_Key 设置此项即可禁用 AES 密钥的读取操作。
R_EN_B_User 设置此项即可禁用用户代码的读取操作。
W_EN_B_Cntl 设置此项即可禁用此控制寄存器的编程操作。
如需了解有关这些功能的更多信息 请参阅《 7 系列 FPGA 配置用户指南》 ( UG470 )
请复查“ eFUSE 寄存器编程汇总 (Program eFUSE Registers Summary) ”页面中的 eFUSE 设置。
在此窗格中可显示 “ Program eFUSE Registers Wizard 面板中设置的所有位。在此窗格中 您可查看各个位的设置 , 以便复查特定编程设置。请仔细复查此汇总页面, 以确保要编程的每个位都已正确设置。 单击“Finish ”即可显示“ eFUSE 编程确认 (Program eFUSE confirmation) ”对话框
单击“ OK ”以对指定的 FUSE 位进行编程。
强制执行 eFUSE 编程
要对位于寄存器中任意位置的任何位 无论该位先前是否已编程 强制执行置位 可将 -force_efuse 选项设置为
program_hw_devices 。使用该选项时 将仅执行基本寄存器边界检查。

网站公告

今日签到

点亮在社区的每一天
去签到