首页 > 其他分享 >FPGA DNA 获取

FPGA DNA 获取

时间:2024-07-19 19:17:59浏览次数:15  
标签:DNA FPGA 获取 input bit PORT JTAG

FPGA DNA

DNA 是 FPGA 芯片的唯一标识, FPGA 都有一个独特的 ID ,也就是 Device DNA ,这个 ID 相当于我们的身份证,在 FPGA 芯片生产的时候就已经固定在芯片的 eFuse 寄存器中,具有不可修改的属性。在 xilinx 7series 和 7series 以前,ID 都是 57bit
的,但是在 Xilinx 的 Ultraslace 架构下是 96bit 。

The 7 series FPGA contains an embedded, 64-bit device identifier which is used to provide a 57-bit Device DNA value. The identifier is nonvolatile, permanently programmed by Xilinx into the FPGA, and is unchangeable making it tamper resistant. Each device is programmed with a 57-bit DNA value that is most often unique. However, up to 32 devices within the family can contain the same DNA value. The JTAG FUSE_DNA command can be used to read the entire 64-bit value that is always unique. Device DNA is
composed of bits 0 to 56 of the 64-bit FUSE_DNA value. External applications can access the Device DNA or FUSE_DNA values through the JTAG port, and FPGA designs can access the DNA only through a Device DNA Access Port (DNA_PORT).

意思是说JTAG可以拿到57bit的DNA_PORT和64 bit的FUZE_DNA,DNA_PORT值最多会有32个器件有相同的值,FUZE_DNA就是唯一的。而如果要通过FPGA资源区读取,只能用DNA_PORT,也就是说你写逻辑的话得用57bit的DNA_PORT。

如何读取

JTAG

可以使用 JTAG 查看当前 FPGA 的 DNA 码。

其中 FUSE_DNA 即为我们要获取的 DNA 编码信息,copy 即可。

代码获取

调用DNA_PORT实现。https://fpga.eetrend.com/files-eetrend-xilinx/download/201408/7594-13761-ug4707seriesconfig.pdf

         DNA_PORT #(
            .SIM_DNA_VALUE(57'h123456789abcdef)  // Specifies a sample 57-bit DNA value for simulation
         )
         DNA_PORT_inst (
            .DOUT(dna_dout),   // 1-bit output: DNA output data.
            .CLK(sys_clk),     // 1-bit input: Clock input.
            .DIN(1'b0),     // 1-bit input: User data input pin.
            .READ(dna_read),   // 1-bit input: Active high load DNA, active low read input.
            .SHIFT(dna_shift)  // 1-bit input: Active high shift enable input.
         );

使用DNA_PORT获取的DNA和JTAG读取的DNA对比

参考
https://www.xilinx.com/support/answers/64178.html JTAG 获取 DNA

标签:DNA,FPGA,获取,input,bit,PORT,JTAG
From: https://www.cnblogs.com/xingce/p/18312230

相关文章

  • JSON解析平铺获取数据
    datax工程源码提供Configuration提供多级JSON配置信息无损存储importcom.alibaba.fastjson2.JSON;importcom.alibaba.fastjson2.JSONWriter;importcom.zditec.system.utils.exception.CommonErrorCode;importcom.zditec.system.utils.exception.DataXException;import......
  • KU FPGA FLASH boot失败debug
    原因新板子回来后,测试flash烧录正常,但是无法BOOT,此时SPI设置为X4模式,使用内部时钟,速度90M。烧录过程不报错,校验也正常。FLASH理论支持最大速度108M,90M应该还好。另外板卡预留了EMCCLK外部时钟模式,速率100M也不可行。此时约束如下:set_propertyCONFIG_VOLTAGE3.3[curre......
  • FedNAS: Federated Deep Learning via Neural Architecture Search-_BaseLine-FedNAS
    背景与挑战:介绍FL,引出数据异构问题和数据不可见性,因此需要大量的人力来定制更好的模型架构,因为设备异构性,边缘设备需要更高的计算负担和通信成本。介绍解决数据异构的相关工作,指出这些工作需要强大的先验假设。预定义的模型不一定是最优的贡献:1.提出FedNAS方法,在边缘设备之间......
  • C# 获取企业微信《会话内容存档》
    因为公司某些原因需要使用企业微信的会话内容存档内容,看微信的文档踩了一些坑,现在将项目代码记录下来,以备各位码农同行查阅。项目使用.NET8.0架构,节本结构如下图:项目中的Lib是下载的微信SDK,项目地址为:https://wwcdn.weixin.qq.com/node/wework/images/sdk_win_v1.1.zip1:建立......
  • PHP 调用 JD 详情 API 接口:数据获取新途径
    在当今数字化的商业环境中,准确和及时的数据对于企业的决策和运营至关重要。京东(JD)作为国内知名的电商平台,其商品详情数据具有极高的价值。通过使用PHP调用JD详情API接口,为我们开辟了一条全新的数据获取途径。一、JD详情API接口简介JD详情API接口提供了丰富的商......
  • 利用 PHP 获取淘宝详情 API 接口的实战技巧
    在电商领域的开发中,获取淘宝商品详情数据是一项关键任务。通过PHP来调用淘宝详情API接口,可以为我们的应用增添丰富的功能和价值。以下将分享一些实战技巧,帮助您更高效地实现这一目标。一、前期准备工作注册淘宝开放平台账号并申请API权限:确保您具备合法的访问权限。......
  • Python数据获取(网页视频、音频版)
    爬取数据,上一章有介绍,不懂流言私信或者评论交流即可,在Python中编写爬虫通常涉及以下几个步骤:发送HTTP请求:使用requests库向目标网站发送请求。解析网页内容:使用BeautifulSoup从HTML中解析出需要的数据。下载视频文件:使用requests下载视频文件。保存到本地:将下载的视频文件......
  • 小技巧:通过命令行和网络连接获取电脑所连wifi密码
    方法一:命令行第一步,命令行输入下列命令,获取连接过的wifinetshwlanshowprofile第二步,输入以下命令查看你想看的wifi密码(红色改为你获取的任意一个wifi名称) netshwlanshowprofilehappykey=clear第三步,查看密码 方法二:网络连接第一步,搜索网络连接,点击进去......
  • [米联客-安路飞龙DR1-FPSOC] FPGA基础篇连载-01 软件工具环境搭建
    软件版本:Anlogic-TD5.9.1-DR1_ES1.1操作系统:WIN1064bit硬件平台:适用安路(Anlogic)FPGA实验平台:米联客-MLK-L1-CZ06-DR1M90G开发板板卡获取平台:https://milianke.tmall.com/登录"米联客"FPGA社区http://www.uisrc.com视频课程、答疑解惑!1代码编辑vscode工具软件安......
  • 获取线程的执行结果
    无返回值的RunnablepublicinterfaceRunnable{publicabstractvoidrun();}publicstaticvoidmain(String[]args)throwsExecutionException,InterruptedException{//创建一个包含5个线程的线程池ExecutorServiceexecutorService=Executors.newF......