This project implements a custom AXI-Lite IP core in Verilog to read the unique 57-bit Device DNA from a Xilinx Zynq-7020 FPGA. The DNA value is accessible via AXI registers, making it easy to integrate into software running on the ARM processing system (PS) or external logic.
- Uses Xilinx primitive
DNA_PORT
to access the unique hardware identifier. - Fully compatible with AXI4-Lite interface.
- 57-bit DNA value is shifted out and stored in a 64-bit register (only lower 57 bits are valid).
- Clean FSM-based control logic (with states: RESET, READ_DNA, DONE).
- Easily extendable for security, licensing, or authentication purposes.
- FSM Logic: Handles
READ
andSHIFT
control signals for theDNA_PORT
. - AXI Interface: Exposes the DNA value through two 32-bit registers:
0x00
: lower 32 bits of DNA0x04
: upper bits (bits 56:32)
- DNA bits are captured LSB-first and assembled into a 64-bit register (
SRL_O
).
- Assert
READ
andSHIFT
for one clock cycle to initialize the read. - Keep
SHIFT=1
and shift the 57 bits serially fromDOUT
. - Capture each bit into a shift register on the rising edge of the clock.
- When done, the DNA is available on
SRL_O[56:0]
.
π File Overview zynq_AXI_DNA_v1_0_S00_AXI.v: Main AXI IP implementation
DNA_PORT: Xilinx primitive (instantiated directly)
SRL_O: Output register containing the 57-bit DNA
β Usage Add this IP to your Vivado project using IP Packager.
Connect the AXI interface to Zynq PS or custom master.
Read SRL_O via AXI once the DONE state is reached.
Use it for device identification, licensing, or system authentication.
If you found this useful, feel free to β star this repo or contribute!