0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

读取Xilinx FPGA芯片设备标识符的方法-DNA

FPGA研究院 来源:FPGA视频图像处理 2024-01-03 09:19 次阅读

每一片芯片内部存有一个设备标识符,xilinx把它叫做DNA,这个DNA是不可更改的,永久存在芯片里面的。根据文档介绍,一个系列最多有32块芯片的DNA一样。下面简单介绍一下xilinx FPGA的DNA,及怎么读取出来。

Xilinx的FPGA芯片,在7系列和7系列之前的产品,DNA是一个57Bit的数据,而在7系列之后,如Ultraslace等新型号,DNA是96Bit。下面介绍两种读取方式。

1.通过jtag方式读取

以vivado为例,连接好下载器后,打开hardware manager,芯片上电连接到芯片后,在hardware device properties选项框里面找到REGISTER-EFUSE-DNA_PORT,就可以看到芯片DNA的值,如下图所示:

wKgaomVytpGAKIyhAACK6wGSc80203.png

2.通过调用原语读取

我们可以通过代码读取出芯片的DNA来使用,以vivado为例,首先根据自己选用的芯片型号找到相应的DNA_PORT原语。如下图示,

7系列的DNA_PORT原语:

wKgZomVytpKABtD7AAL8mPuW2yk860.png

Ultrascale系列原语,原语名称有一点点改变,大家注意一下

wKgaomWUtlqAFNOhAAMGRVup36Q724.jpg

查看UG470文档,原语的使用,以7系列为例:

例化原语

wKgZomWUtpKAardBAACCZSbxD3k370.jpg

读取代码如下:

先拉高read信号寄存器加载DNA值,加载完后在拉低read信号,然后使能shift信号,DOUT开始输出DNA数据,通过57个时钟移位后,在取消shift使能。

wKgZomWUtrCACcG-AACIjzRDEY0147.jpg
wKgZomWUttCAMVtOAACcZvPOSkQ013.jpg
wKgZomWUtteAc71DAABd6qvDoyk264.jpg







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119373
  • FPGA芯片
    +关注

    关注

    3

    文章

    241

    浏览量

    39554
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65100

原文标题:怎样读取Xilinx FPGA芯片的设备标识符---DNA

文章出处:【微信号:FPGA研究院,微信公众号:FPGA研究院】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    JAVA语言的标识符、注释和分隔

    JAVA语言的标识符、注释和分隔 3.2.1 标识符程序中要用到许多名字,诸如类、属性、方法的名字。标识符就是用来标记它们的名字。Java
    发表于 12-06 00:21

    LabVIEW: 无法查找标识符

    `设置菜单信息怎么用。项标识符问题`
    发表于 03-22 15:39

    2812的eCAN模块接收消息的接收标识符怎么读取

    、数据字节会被写入到邮箱相对应的RAM存储区域中,我想问:怎么才能读取到消息的标识符(就是那个0x11001111111)呢?现有邮箱寄存器好像没有找到。。。求大神指教
    发表于 07-01 17:21

    MSCAN标识符

    关于MSCAN标识符问题:我看到有的例程里,CAN0发送CAN0TXIDR0 = (unsigned char)(msg.id>>3);CAN0TXIDR1 = (unsigned char)(msg.id
    发表于 05-18 19:33

    labview树形控件标识符自动更改相关问题讨论

    各位大神,我现在编程序想能动态的更改项标识符,然后进行内容保存等功能。我现在编好的程序能实现通过右键快捷键实现添加、删除项的功能,并能根据项是否打开来自动更改项符号。保存内容部分尚未完全实现,只能
    发表于 09-10 11:04

    STM8 CAN总线标识符过滤实验

    `实验目的:通过对CAN过滤器的设置,屏蔽总线上其他无用的报文,只接收自己需要的报文。标识符过滤模式● 可变的位宽  每个过滤器组的位宽都可以独立配置,以满足应用程序的不同需求。根据位宽的不同,每个
    发表于 12-01 11:52

    请问提示标识符是设置了哪里?

    选中一个标识符,就提示相同的标识符,不知道在设置了哪里?视频里也没讲啊?
    发表于 05-08 06:35

    怎么修改程序中的FULL CAN邮箱标识符

    问题:是否有可能将程序中的完整CAN邮箱的标识符更改为实际上有8多个完整的CAN邮箱?答:是的,可以在程序中动态地改变完整的CAN邮箱的标识符。可以通过写入CAN TX MSG标识符寄存器来改变
    发表于 06-18 14:06

    如何读取iPhone的标识符

    我们如何阅读与BLE先锋工具包连接的iPhone、Android或任何其他BLE设备的唯一标识符
    发表于 10-16 11:51

    未定义的标识符“LATDbits”和未定义的标识符“TRISDbits”错误

    嗨,我正在使用MPLAB X IDE V3.26和pic18f2455。我正在尝试构建一个项目,并且该项目有一些错误:1.未定义的标识符“LATDbits”2.未定义的标识符“TRISDbits
    发表于 03-05 09:41

    labview程序运行设备标识符无效

    我是labview小白,下载了labview2014并且安装好14的NIDAQ(需要打开的程序用到了)但在运行程序的时候出现错误200220发生于DAQmx-Create-Channel.vi设备标识符无效请问大家该怎么解决?
    发表于 05-30 18:54

    C语言的标识符和关键字有哪些

    五、C语言的标识符和关键字一个完整的1.C语言的标识符所谓标识符,实际上是一些由程序编写者自定义的名称,类似于PIC单片机汇编语言中给寄存器(RAM)的命名。C语言中所用到的变量名、函数名、数组名
    发表于 07-15 09:31

    CAN总线过滤器标识符

    ,不是采用一个标识符加一个屏蔽位的方式,而是采用两个标识符寄存器。接收报文的每一位都必须跟过滤器标识符相同。STM32普通型芯片的 CAN 有14组过滤器组(互联型有28组过滤器组)
    发表于 08-19 07:30

    请问NUC029LAN芯片96位唯一标识符 ( UID )怎么读取出来?

    NUC029LAN芯片96位唯一标识符 ( UID )怎么读取出来?看数据手册没看到在哪里读取
    发表于 08-18 06:22

    获取Xilinx FPGADNA的两个方法

    Xilinx每一个FPGA都有一个独特的ID,也就是Device DNA,这个ID相当于我们的身份证,在FPGA芯片生产的时候就已经写死在
    发表于 12-22 14:31 3899次阅读