当前位置: 主页 > 销售 > 内容页

滚动:获取XilinxFPGA芯片IDCODE的4种方法(支持任何FPGA型号)

2023-07-03 19:26:59 来源:面包芯语

Xilinx任何一款FPGA型号都有一个唯一的IDCODE,用来区分不同的产品,同一型号不同封装的FPGA IDCODE是一致的,可以通过JTAG、ICAP原语、AXI_HWICAP IP核等多种方式读取。常见的应用场景是同一套代码兼容不同的芯片型号,比如现在使用的是XC7A35T,新产品更换成了XC7A100T,两个芯片的封装不同,管脚配置也不同,而这两种硬件需要使用一套C/Verilog代码,这样就可以通过读取IDCODE,来进行自动区分不同的硬件,分别进行不同的处理方式。本文介绍Xilinx所有FPGA芯片型号IDCODE的获取方法,一共4种方式,总有一种适合你,这些方法同样适用于别的厂家的FPGA/MCU,比如Intel,Lattice,Microchip等等。

目录

方式1:官方文档


(资料图片)

方式2:一个头文件

方式3:BSDL文件

方法4:芯片IDCODE在线搜索网站

Xilinx FPGA部分型号IDCODE汇总

方式1:官方文档

对于常用的Spartan-6系列可以在UG380文档中找到对应的IDCODE,Spartan-7、Artix-7、Kinte-7、Virtex-7可以在UG470文档里找到对应的IDCODE。

文档下载:

https://gab.wallawalla.edu/~larry.aamodt/engr435/xilinx_spartan6_config_ug380.pdf

http://padley.rice.edu/cms/OH_GE21/UG470_7Series_Config.pdf

Spartan-6系列的IDCODE对照表位于UG380:Table 5-13: ID Codes

7系列的IDCODE对照表位于UG470:Table 1-1: Bitstream Length

ZYNQ系列没有找到对应的IDCODE说明文档。

方式2:一个头文件

在ISE开发环境下,最后一个版本14.7,可以在以下安装路径的文件中获取到一些旧型号的IDCODE:

安装路径\Xilinx\14.7\ISE_DS\EDK\sw\XilinxProcessorIPLib\drivers\hwicap_v8_01_a\src\xhwicap_l.h

在Vivado开发环境下的xhwicap_l.h文件中,删除了IDCODE。

安装路径\Vivado\SDK\2018.3\data\embeddedsw\XilinxProcessorIPLib\drivers\hwicap_v11_0\src\xhwicap_l.h

方式3:BSDL文件

对于ZYNQ-7000系列,一只没有找到IDCODE相关的说明文档,终极解决办法就是直接从BSDL边界扫描文件中查找,关于边界扫描,这是一个非常有意思的JTAG技巧,我们后面再介绍。只要有了FPGA芯片型号对应的BSDL文件,就可以获取到IDCODE,而且BSDL文件在安装ISE或安装Vivado时,就会保存在安装路径下。

以查找ZYNQ-7000系列XC7Z100的IDCODE为例,ISE开发环境,BSDL文件位于:

D:\Program\Xilinx\14.7\ISE_DS\ISE\zynq\data\xc7z100*.bsd

Vivado开发环境,BSDL文件位于:

D:\Program\Xilinx\Vivado\SDK\2018.3\data\parts\xilinx\zynq\public\bsdl\xc7z100*.bsd

D:\Program\Xilinx\Vivado\Vivado\2018.3\data\parts\xilinx\zynq\public\bsdl\xc7z100*.bsd

所谓的BSDL文件,其实就是一个VHDL文件,我们以文本方式打开,直接搜索关键字IDCODE_REGISTER,会定位到如下位置:

二进制合并转换之后,就得到了我们想要的IDCODE:

attributeIDCODE_REGISTERofXC7Z100:entityis"XXXX"&--version"0011011"&--family"100110110"&--arraysize"00001001001"&--manufacturer"1";--requiredby1149.1--二进制合并处理后attributeIDCODE_REGISTERofXC7Z100:entityis"XXXX"&--version0011011100110110000010010011--0x03736093

所以,如果想要获取任何FPGA芯片的IDCODE,只需要获取对应的BSDL文件即可。

方法4:芯片IDCODE在线搜索网站

这里推荐一个在线的IDCODE搜索网站,其实本质是一个BSDL汇总网站:BSDL Files Library for JTAG

https://bsdl.info/index.htm

理论上任何一个支持JTAG的芯片型号,都会有一个IDCODE用来作为唯一标识。直接输入想要查找的芯片型号:

点开对应的BSDL文件:

可以看到IDCODE为0x03736093。

Microchip A3P125 FPGA芯片的IDCODE

Altera EP4CE40F29 FPGA芯片IDCODE

Xilinx FPGA部分型号IDCODE汇总

/*Virtex4Devices.*/#defineIDCODE_XC4VLX150x01658093#defineIDCODE_XC4VLX250x0167C093#defineIDCODE_XC4VLX400x016A4093#defineIDCODE_XC4VLX600x016B4093#defineIDCODE_XC4VLX800x016D8093#defineIDCODE_XC4VLX1000x01700093#defineIDCODE_XC4VLX1600x01718093#defineIDCODE_XC4VLX2000x01734093#defineIDCODE_XC4VSX250x02068093#defineIDCODE_XC4VSX350x02088093#defineIDCODE_XC4VSX550x020B0093#defineIDCODE_XC4VFX120x01E58093#defineIDCODE_XC4VFX200x01E64093#defineIDCODE_XC4VFX400x01E8C093#defineIDCODE_XC4VFX600x01EB4093#defineIDCODE_XC4VFX1000x01EE4093#defineIDCODE_XC4VFX1400x01F14093#defineIDCODE_V4_NUM_DEVICES17/*Virtex5Devices*/#defineIDCODE_XC5VLX300x0286E093#defineIDCODE_XC5VLX500x02896093#defineIDCODE_XC5VLX850x028AE093#defineIDCODE_XC5VLX1100x028D6093#defineIDCODE_XC5VLX2200x0290C093#defineIDCODE_XC5VLX3300x0295C093#defineIDCODE_XC5VLX30T0x02A6E093#defineIDCODE_XC5VLX50T0x02A96093#defineIDCODE_XC5VLX85T0x02AAE093#defineIDCODE_XC5VLX110T0x02AD6093#defineIDCODE_XC5VLX220T0x02B0C093#defineIDCODE_XC5VLX330T0x02B5C093#defineIDCODE_XC5VSX35T0x02E72093#defineIDCODE_XC5VSX50T0x02E9A093#defineIDCODE_XC5VSX95T0x02ECE093#defineIDCODE_XC5VFX30T0x03276093#defineIDCODE_XC5VFX70T0x032C6093#defineIDCODE_XC5VFX100T0x032D8093#defineIDCODE_XC5VFX130T0x03300093#defineIDCODE_XC5VFX200T0x03334093#defineIDCODE_V5_NUM_DEVICES20/*Virtex6Devices*/#defineIDCODE_XC6VHX250T0x042A2093#defineIDCODE_XC6VHX255T0x042A4093#defineIDCODE_XC6VHX380T0x042A8093#defineIDCODE_XC6VHX565T0x042AC093#defineIDCODE_XC6VLX75T0x04244093#defineIDCODE_XC6VLX130T0x0424A093#defineIDCODE_XC6VLX195T0x0424C093#defineIDCODE_XC6VLX240T0x04250093#defineIDCODE_XC6VLX365T0x04252093#defineIDCODE_XC6VLX550T0x04256093#defineIDCODE_XC6VLX7600x0423A093#defineIDCODE_XC6VSX315T0x04286093#defineIDCODE_XC6VSX475T0x04288093#defineIDCODE_XC6VCX75T0x042C4093#defineIDCODE_XC6VCX130T0x042CA093#defineIDCODE_XC6VCX195T0x042CC093#defineIDCODE_XC6VCX240T0x042D0093#defineIDCODE_V6_NUM_DEVICES17/*Spartan6Devices.*/#defineIDCODE_XC6SLX40x04000093#defineIDCODE_XC6SLX90x04001093#defineIDCODE_XC6SLX160x04002093#defineIDCODE_XC6SLX250x04004093#defineIDCODE_XC6SLX25T0x04024093#defineIDCODE_XC6SLX450x04008093#defineIDCODE_XC6SLX45T0x04028093#defineIDCODE_XC6SLX750x0400E093#defineIDCODE_XC6SLX75T0x0402E093#defineIDCODE_XC6SLX1000x04011093#defineIDCODE_XC6SLX100T0x04031093#defineIDCODE_XC6SLX1500x0401D093#defineIDCODE_XC6SLX150T0x0403D093#defineIDCODE_S6_NUM_DEVICES13/*Kintex7Devices.*/#defineIDCODE_XC7K30T0x03642093#defineIDCODE_XC7K70T0x03647093#defineIDCODE_XC7K160T0x0364C093#defineIDCODE_XC7K325T0x03651093#defineIDCODE_XC7K410T0x03656093#defineIDCODE_XC7K235T0x0365B093#defineIDCODE_XC7K125T0x0365C093#defineIDCODE_XC7K290T0x0365D093#defineIDCODE_XC7K355T0x03747093#defineIDCODE_XC7K420T0x0374C093#defineIDCODE_XC7K480T0x03751093#defineIDCODE_K7_NUM_DEVICES11/*Virtex7Devices.*/#defineIDCODE_XC7VX80T0x03680093#defineIDCODE_XC7VX82T0x03681093#defineIDCODE_XC7VX330T0x03667093#defineIDCODE_XC7VX415T0x03682093#defineIDCODE_XC7V450T0x0366C093#defineIDCODE_XC7VX485T0x03687093#defineIDCODE_XC7VX550T0x03692093#defineIDCODE_XC7V585T0x03671093#defineIDCODE_XC7VX690T0x03691093#defineIDCODE_XC7VX980T0x03696093#defineIDCODE_V7_NUM_DEVICES10/*Artix7Devices.*/#defineIDCODE_XC7A150x03627093#defineIDCODE_XC7A30T0x0362D093#defineIDCODE_XC7A50T0x0362C093#defineIDCODE_XC7A100T0x03631093#defineIDCODE_XC7A200T0x03636093#defineIDCODE_XC7A350T0x0363B093#defineIDCODE_A7_NUM_DEVICES6/*ZynqDevices.LatestasofJuly2023*/#defineIDCODE_XC7Z0070x03723093#defineIDCODE_XC7Z0100x03722093#defineIDCODE_XC7Z0120x0373C093#defineIDCODE_XC7Z0140x03728093#defineIDCODE_XC7Z0150x0373B093#defineIDCODE_XC7Z0200x03727093#defineIDCODE_XC7Z0300x0372C093#defineIDCODE_XC7Z0350x03732093#defineIDCODE_XC7Z0450x03731093#defineIDCODE_XC7Z1000x03736093#defineIDCODE_ZYNQ_NUM_DEVICES10

标签:

发展
环球快看点丨奥普特:
公司目前不对外披露公司客户及供应商具体情况,敬请谅解
奥普特(688686)07月03日在投资者关系平台上答复了投资者关心的问题。
腰椎间盘突出症要怎样治疗
李宏副主任医师北京大学第一医院病情分析:腰椎间盘突出症的患者,
惊险!一辆汽车突然冲进火锅店… 每日聚焦
7月2日下午6点多,顺庆区西华路二段发生了惊险一幕!​​据现场网友称