- Top package marking
- IDCODE + EXTENDED_IDCODE register values
- 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 devices have a top package marking that includes a 2D code.For more information about package marking, see the Versal Adaptive SoC Packaging and Pinouts Architecture Manual (AM013).
Device Identification Code
The Versal device has a 32-bit device identification code (IDCODE), which conforms to the IEEE Std 1149.1 (JTAG). The IDCODE used with the EXTENDED_IDCODE can identify the type of AMD device. See the Versal device data sheet for device identification values.
The IDCODE can be read via the JTAG interface or from PMC IDCODE register. See the IDCODE Register section for bit field details.
| Register Type | Register Name | Address | Description |
|---|---|---|---|
| Read only | PMC_JTAG_CSR IDCODE [31:0] |
0xF11A_0000
|
Device identification code |
Extended Identification Code
The Versal device has an extended identification code that is stored in the 32-bit EXTENDED_IDCODE register. The IDCODE used with the EXTENDED_IDCODE can identify the type of AMD device. See the Versal device data sheet for device identification values.
The EXTENDED_IDCODE can be read via the JTAG interface or from the PMC EXTENDED_IDCODE register. see the EXTENDED_IDCODE Register section for more information.
| Register Type | Register Name | Address | Description |
|---|---|---|---|
| Read only | PMC_EFUSE_CACHE EXTENDED_IDCODE bits [27:14] |
0xF125_0018
|
Extended device identification code |
DNA Introduction
The device DNA is a 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 PMC DNA_0, DNA_1, DNA_2, and DNA_3 registers.
| Register Type | Register Name | Address (Hex) | Description |
|---|---|---|---|
| 128 bit JTAG, read only | DNA | - | Access DNA[127:0] using the 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] |