vivado eFUSE 寄存器访问和编程

news2024/10/7 2:28:28
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 。使用该选项时 将仅执行基本寄存器边界检查。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1566275.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

利用Winform实现简陋版的温度计(仅供参考)

本人水平有限,如有写得不对的地方,望指正。为了简单化,做了一个简陋版的温度计控件,有点丑哈。本文的内容仅供参考 测试环境: visual studio 2017 .net framework 4.0 效果图如下: 步骤如下:…

SpringBoot 微服务项目,打包报错:找不到符号

错误定位到这个代码,调试、编译都正常,就打包报错 最后发现,这个类是其他项目里的,需要重新生成其他项目后,再来打包就行了。

dhcp中继代理

不同过路由器分配ip了,通过一台服务器来代替,路由器充当中继代理功能,如下图 服务器地址:172.10.1.1/24 配置流程: 1.使能dhcp功能 2.各个接口网关地址,配置dhcp中继功能 dhcp select relay &#xff0…

ansible-自动化工具

一、ansible概述 不是C/S架构,就是一种工具 1:linux自动化运维 编写程序实现运维自动化:shell python 工具模式自动化: ①OS Provisioning: RedHat satellite;PXE(可实现dhcp和tftp&#…

基于深度学习的吸烟检测系统(网页版+YOLOv8/v7/v6/v5代码+训练数据集)

摘要:本文深入研究了基于YOLOv8/v7/v6/v5等深度学习模型的吸烟行为检测系统,核心采用YOLOv8并整合了YOLOv7、YOLOv6、YOLOv5算法,进行性能指标对比;详述了国内外研究现状、数据集处理、算法原理、模型构建与训练代码,及…

HDLbits 刷题 --Conditional

学习: Verilog has a ternary conditional operator ( ? : ) much like C: (condition ? if_true : if_false) This can be used to choose one of two values based on condition (a mux!) on one line, without using an if-then inside a combinational always block. …

MyBatis强大的动态Sql功能

1.动态不定增加 根据需求 , 动态的拼接SQL 。 用户有的信息是必须输入,但有的不是必须进行输入 比如在填写注册信息的时候,有时候密码是一定要填写的,而银行卡号不是必须填写的 1)注解方式 测试类中 : 使用 if 标签 可以实现动…

SAP 销售订单BOM使用场景简介

SAP系统中通常会存在很多的BOM类型,有生产订单BOM、销售订单BOM、WBSBOM、标准BOM这几类。 订单BOM >= 销售BOM >= 标准BOM 订单BOM:通常是根据标准BOM基础上由PMC去调整一个物料的用量等,根据生产订单的BOM 销售BOM:根据销售订单号+行项目号创建的BOM,是根据特定…

定时器与晶振时钟、中断系统、定时中断

定时器 简介: C51中的定时器和计数器是同一个硬件电路支持的,通过寄存器配置不同,就可以将他当做定时器 或者计数器使用。 确切的说,定时器和计数器区别是致使他们背后的计数存储器加1的信号不同。当配置为定时器使用时&#xff0…

一维数组oj练习(4)

又是一维数组的练习.... 小A的学号在数组中可以看成a[k]&#xff0c;在判断谁大于a[k]。大于的数用sum来统计&#xff0c;最后输出。 #include<cstdio> int a[10010],n,k,sum; int main(){scanf("%d %d",&n,&k);for(int i1;i<n;i){scanf("%d…

uniapp开发安卓跟ios所遇问题集合

Android平台配置CPU类型 一般勾选armeabi-v7a跟arm64-v8a就好了 armeabi-v7a 第7代及以上的ARM处理器&#xff08;ARM32位&#xff09;&#xff0c;市面上大多数手机使用此CPU类型。arm64-v8a 第8代、64位ARM处理器&#xff08;ARM64位&#xff09;&#xff0c;最近两年新发的…

实现顺序表的增删查改

现在让我们探索数据结构这个美妙的世界吧&#xff01; 概念介绍 线性表是具有相同特性的数据元素的有限序列。线性表是一种在实际运用中广泛运用的线性结构&#xff0c;如线性表&#xff0c;栈&#xff0c;队列&#xff0c;字符串等。 顺序表的本质是数组&#xff0c;实现了…

微信小程序使用icon图标

原因&#xff1a; 微信小程序使用fontawesome库使用icon图标&#xff0c;网上有很多教程&#xff0c;按照网上说法制作&#xff0c;引入到微信小程序中&#xff0c;但是验证成功&#xff0c;只能使用部分图标&#xff0c;结果不尽如人意。后面使用阿里巴巴开源iconfont来使用ic…

DBU-Net:用于乳腺超声图像中肿瘤分割的双分支U形网络

DBU-Net&#xff1a;用于乳腺超声图像中肿瘤分割的双分支U形网络 摘要引言材料和方法概述所提出的方法 DBU-Net Dual branch U-Net for tumor segmentation in breast ultrasound images 摘要 乳腺超声医学图像通常具有低成像质量沿着不清楚的目标边界。这些问题使得医生在诊断…

VSCode调试C++

1、环境准备 1.1、g的安装与使用 1.1.1、安装 方式一&#xff1a;Xcode安装 苹果的开发集成工具是Xcode.app&#xff0c;其中包含一堆命令行工具。 在 App store 可以看到其大小有好几个G&#xff0c;有点大。 方式二&#xff1a;Command Line Tools 安装 Command Line Too…

Ai音乐大师演示(支持H5、小程序)独立部署源码

Ai音乐大师演示&#xff08;支持H5、小程序&#xff09;独立部署源码

【开发问题】为什么Java写文件时文件名中带有“*”会写入失败呢?

前言&#xff1a;在开发过程中&#xff0c;可能会遇写文件的问题。当我们写文件时&#xff0c;文件名中可能会带“*”号。这时候可能会导致写文件失败。 比如有一段写文件的代码&#xff1a; public static void createFile(String filename, byte[] content) {FileOutputStr…

蓝桥杯刷题-四平方和

四平方和 代码&#xff1a; from copy import deepcopy n int(input()) maxn int(5e6) 10 dic dict() for a in range(maxn):if a * a > n:breakfor b in range(a,maxn):if a * a b * b > n:breakif dic.get(a*ab*b) is None:dic[a*ab*b] (a,b) ans [maxn for _ …

情感视频素材在哪找?8个视频素材大全网站

在追求创意表达的道路上&#xff0c;每一位视频创作者都是一名勇敢的探险家&#xff0c;不断寻找那些能够点亮作品、让故事生动起来的珍贵资源。无论你的目标是打动人心、传达信息&#xff0c;还是简单地分享生活&#xff0c;以下八个视频素材网站将为你的每一个项目提供无尽的…

【C++第三阶段】模板类模板通用数组实现案例

以下内容仅为当前认识&#xff0c;可能有不足之处&#xff0c;欢迎讨论&#xff01; 文章目录 模板怎么使用模板函数模板注意事项普通函数与函数模板的区别普通函数与函数模板调用规则函数模板限制 类模板类模板语法类模板与函数模板区别类模板中成员函数创建时机类模板对象做函…