DNA_PORTE2 - 2024.1 English

UltraScale Architecture Libraries Guide (UG974)

Document ID
UG974
Release Date
2024-05-30
Version
2024.1 English

Primitive: Device DNA Access Port

  • PRIMITIVE_GROUP: CONFIGURATION
  • PRIMITIVE_SUBGROUP: DNA
  • Families: UltraScale, UltraScale+

Introduction

The DNA_PORT allows access to a dedicated shift register that can be loaded with the Device DNA data bits (factory-programmed, read-only unique ID) for a given UltraScale device. In addition to shifting out the DNA data bits, this component allows for the inclusion of supplemental bits of your data, or allows for the DNA data to rollover (repeat DNA data after initial data has been shifted out). This component is primarily used in conjunction with other circuitry to build added copy protection for the device bitstream from possible theft.Connect all inputs and outputs to the design to ensure proper operation.

To access the Device DNA data, you must first load the shift register by setting the active-High READ signal for one clock cycle. After the shift register is loaded, the data can be synchronously shifted out by enabling the active-High SHIFT input and capturing the data out the DOUT output port. Additional data can be appended to the end of the 96-bit shift register by connecting the appropriate logic to the DIN port. If DNA data rollover is desired, connect the DOUT port directly to the DIN port to allow for the same data to be shifted out after completing the 96-bit shift operation. If no additional data is necessary, the DIN port can be tied to a logic zero. The attribute SIM_DNA_VALUE can be optionally set to allow for simulation of a possible DNA data sequence. By default, the Device DNA data bits are all zeros in the simulation model.

Port Descriptions

Port Direction Width Function
CLK Input 1 Clock input.
DIN Input 1 User data input pin.
DOUT Output 1 DNA output data.
READ Input 1 Active-High load DNA, active-Low read input.
SHIFT Input 1 Active-High shift enable input.

Design Entry Method

Instantiation Recommended
Inference No
IP and IP Integrator Catalog No

Available Attributes

Attribute Type Allowed Values Default Description
SIM_DNA_VALUE HEX %linebreak%%96'h000000000000000000000000 to %linebreak%%96'hfffffffffffffffffffffffd All zeroes Specifies a sample 96-bit DNA value for simulation.

VHDL Instantiation Template

Unless they already exist, copy the following two statements and paste them before the entity declaration.
Library UNISIM;
use UNISIM.vcomponents.all;

-- DNA_PORTE2: Device DNA Access Port
--             UltraScale
-- Xilinx HDL Language Template, version 2024.1

DNA_PORTE2_inst : DNA_PORTE2
generic map (
   SIM_DNA_VALUE => X"000000000000000000000000"  -- Specifies a sample 96-bit DNA value for simulation.
)
port map (
   DOUT => DOUT,   -- 1-bit output: DNA output data.
   CLK => CLK,     -- 1-bit input: Clock input.
   DIN => DIN,     -- 1-bit input: User data input pin.
   READ => READ,   -- 1-bit input: Active-High load DNA, active-Low read input.
   SHIFT => SHIFT  -- 1-bit input: Active-High shift enable input.
);

-- End of DNA_PORTE2_inst instantiation

Verilog Instantiation Template


// DNA_PORTE2: Device DNA Access Port
//             UltraScale
// Xilinx HDL Language Template, version 2024.1

DNA_PORTE2 #(
   .SIM_DNA_VALUE(96'h000000000000000000000000)  // Specifies a sample 96-bit DNA value for simulation.
)
DNA_PORTE2_inst (
   .DOUT(DOUT),   // 1-bit output: DNA output data.
   .CLK(CLK),     // 1-bit input: Clock input.
   .DIN(DIN),     // 1-bit input: User data input pin.
   .READ(READ),   // 1-bit input: Active-High load DNA, active-Low read input.
   .SHIFT(SHIFT)  // 1-bit input: Active-High shift enable input.
);

// End of DNA_PORTE2_inst instantiation

Related Information

  • UltraScale Architecture Configuration User Guide (UG570)