MicroZed Chronicles: Device DNA and the Explorer Board
Webinar 1/12/26: Accelerating FPGA & DSP Design with AMD Vitis™ Model Composer
Webinar 3/12/26: Designing a Low-Cost High-Performance FPGA Board
As we are about to start production of the explorer boards, I have been thinking things which we do not normally always consider as FPGA engineers. That is post assembly functional test, e.g. does the board do we as expect and function as intended.
The explorer board is both pretty simple and at the same time complex. What makes it complex is that we have to program the PMIC first before we are able to see if the RP2040, Artix UltraScale+ FPGA and all the associated peripherals are functioning correctly. What makes it simple is most connections are to the Pmod of SYZYGY interfaces.

Of course one thing we need to be able to do on every board is serialise it so we can ensure it has been tested. This is where some of the FPGAs capabilities come into it, helping us again reduce the Bill of Material.
Every 7 Series, UltraScale and UltraScale+ device contains a device DNA identifier. In UltraScale and UltraScale+ devices this is a is 96 bits held in eFUSEs, read from the fabric through the DNA_PORTE2 primitive. UG570 notes that the two least significant and two most significant bits are fixed values so the ends of the word can be recognised, with DNA[0] always set. Vivado shows the same 96 bits as REGISTER.EFUSE.FUSE_DNA in the device properties, so on this family the JTAG value and the fabric value are the same number, which makes checking our reader very easy.
A note on 7 series devices as they have the similar capabilities and device DNA and are also very popular for solutions. When it comes to 7 series, the DNA identifier is 64 bits, which JTAG reads in full, but the fabric only reads 57 of them through DNA_PORT, bits 63 down to 7. UG470 is also careful to say that while the 57 bit value is unique in most cases, up to 32 devices in the family can share the same value.
To access the DNA_PORT2 and DNA_PORT we use the primitive defined within the unisim library, vcomponents package.
To be able to access this on the explorer board we are going to take the following approach, display the device DNA within the Explorer System Controller application which connects over web serial and displays board information such as power rails, temperatures and SYZYGY Pods connected. It is a natural place for the information and when it comes to doing production test we the production test application will be able to query the system controller RP2040 over USB to get the DNA data store it in the production logs.
The way I am going to do this is to create a simple application for the FPGA, that contains the system monitor IP and a custom device DNA data IP module. Both these will connect to the same IO pins to the System Monitor RP2040 and communicate over I2C. This way a nice and simple solution enables me to access the DNA data and the device parameters.
Now the knowledgeable will know that we cannot share I2C on the same pins internal to the FPGA as the Sysmon presents tristate IO intended to be connected directly to the top level IO ports.
As such we will create our own I2C interfaces one for the Sysmon which reads the Sysmon over the DRP interface. While the second reads the DNA when it is command to over the I2C interface. This allows the system controller to monitor the FPGA SysMon values and request the FPGA ID when requested.
This approach also provides me a simple solution which can be updated include the necessary test interfaces when we run the full production test as I develop it.
To ensure the RTL module provides the same results, we need to first connect over JTAG and readback the 96 bit unique ID.

The RTL is available for inspection on the github, which you can take and use of course in your own designs.
Running this on the explorer system controller web applications and we can see the live Sysmon information and the board identify information.

This will be very useful for production testing, as we can now identify every board, its test history and all performance data and rather nicely it cannot be changed without changing the FPGA.
The Explorer board is currently doing a limited pre order (100) with boards expected to deliver from this batch in Q1. With sales of the first batch expected to hit around Q2 2027, along with the new book and explorer board course.
FPGA Journal
Read about cutting edge FPGA developments, in the FPGA Horizons Journal or contribute an article.
Workshops and Webinars:
If you enjoyed the blog why not take a look at the free webinars, workshops and training courses we have created over the years. Highlights include:
Upcoming Webinars Timing, RTL Creation, FPGA Math and Mixed Signal
Professional PYNQ Learn how to use PYNQ in your developments
Introduction to Vivado learn how to use AMD Vivado
Ultra96, MiniZed & ZU1 three day course looking at HW, SW and PetaLinux
Arty Z7-20 Class looking at HW, SW and PetaLinux
Mastering MicroBlaze learn how to create MicroBlaze solutions
HLS Hero Workshop learn how to create High Level Synthesis based solutions
Perfecting Petalinux learn how to create and work with PetaLinux OS
Boards
Get an Adiuvo development board:
Adiuvo Embedded System Development board - Embedded System Development Board
Adiuvo Embedded System Tile - Low Risk way to add a FPGA to your design.
SpaceWire CODEC - SpaceWire CODEC, digital download, AXIS Interfaces
SpaceWire RMAP Initiator - SpaceWire RMAP Initiator, digital download, AXIS & AXI4 Interfaces
SpaceWire RMAP Target - SpaceWire Target, digital download, AXI4 and AXIS Interfaces
Embedded System Book
Do you want to know more about designing embedded systems from scratch? Check out our book on creating embedded systems. This book will walk you through all the stages of requirements, architecture, component selection, schematics, layout, and FPGA / software design. We designed and manufactured the board at the heart of the book! The schematics and layout are available in Altium here. Learn more about the board (see previous blogs on Bring up, DDR validation, USB, Sensors) and view the schematics here.
All words in this blog were written by a human.




