- Top package marking
- IDCODE + EXTENDED_IDCODE register value (see the Versal ACAP data sheets listed in References)
- Device DNA register value
Security features such as PUF can also be used to create a unique identifier. For more information on using PUF, see Security Management.
Package Marking
The Versal ACAPs have a top package marking that includes the Versal family name and a 2D barcode for device-level tracking. The 2D barcode information can be accessed several ways including with the Xilinx web-based tool or the Xilinx GO mobile application. For more information, see the Versal ACAP Packaging and Pinouts Architecture Manual (AM013).
ID Code Introduction
The Versal ACAP has a 32-bit identification stored in the IDCODE register. The IDCODE is a fixed, vendor-assigned value used to electrically identify the manufacturer. The IDCODE used in conjunction with the EXTENDED_IDCODE can also identify the type of Xilinx device.
The IDCODE register can be read via the JTAG interface or from the
AXI interface using the IDCODE register address. When the IDCODE instruction is
selected by the JTAG TAP, the IDCODE register is connected between the JTAG TDI and
TDO pins, and the value can be shifted out through TDO for examination with tools
such as the Vivado design suite. The least
significant bit of the IDCODE register is always 1
(based on the JTAG IEEE Std 1149.1).
Register Type | Register Name | Address | Description |
---|---|---|---|
Read only | PMC_JTAG_CSR IDCODE [31:0] |
0xF11A_0000
|
ID code; also see the IDCODE Register section for bit field details |
Extended ID Code Introduction
The Versal ACAP has a 32-bit device extended family code that is stored in the EXTENDED_IDCODE register. The EXTENDED_IDCODE vendor-assigned value is used with the ID code to identify a unique Xilinx device.
The extended ID value can be read via the JTAG interface or from the AXI interface. When the EXTENDED_IDCODE instruction is selected by the JTAG TAP, the EXTENDED_IDCODE register is connected between the JTAG TDI and TDO pins, and the value can be shifted out through TDO for examination with tools such as the Vivado design suite.
Software can access the extended ID code by reading the PMC_EFUSE_CACHE EXTENDED_IDCODE register.
Register Type | Register Name | Address | Description |
---|---|---|---|
Read only | PMC_EFUSE_CACHE EXTENDED_IDCODE bits [27:14] |
0xF125_0018
|
Extended device ID code; also see the EXTENDED_IDCODE Register section |
DNA Introduction
The device DNA is a single unique 128-bit factory-programmed identifier for each device. The JTAG TAP instruction, READ_DNA, reads the DNA value through the JTAG interface. The device DNA value can also be read from the AXI interface using the combined value from the DNA_0, DNA_1, DNA_2, and DNA_3 registers. The power-on reset (POR_B) pin must be released before reading the DNA unique device identifier.Register Type | Register Name | Address (Hex) | Description |
---|---|---|---|
128 bit JTAG, read only | DNA | - | Access DNA[127:0] using te READ_DNA instruction; also see DNA Register section for bit field details |
32-bit memory mapped, read only | DNA_0 |
0xF125_0020
|
DNA 0 register contains DNA bits[31:0] |
DNA_1 |
0xF125_0024
|
DNA 1 register contains DNA bits[63:32] | |
DNA_2 |
0xF125_0028
|
DNA 2 register contains DNA bits[95:64] | |
DNA_3 |
0xF125_002C
|
DNA 3 register contains DNA bits[127:96] |