做異地送花網(wǎng)站愛站小工具圣經(jīng)
FPGA DNA
DNA 是 FPGA 芯片的唯一標(biāo)識, FPGA 都有一個獨特的 ID ,也就是 Device DNA ,這個 ID 相當(dāng)于我們的身份證,在 FPGA 芯片生產(chǎn)的時候就已經(jīng)固定在芯片的 eFuse 寄存器中,具有不可修改的屬性。在 xilinx 7series 和 7series 以前,ID 都是 57bit
的,但是在 Xilinx 的 Ultraslace 架構(gòu)下是 96bit 。
The 7 series FPGA contains an embedded, 64-bit device identifier which is used to provide a 57-bit Device DNA value. The identifier is nonvolatile, permanently programmed by Xilinx into the FPGA, and is unchangeable making it tamper resistant. Each device is programmed with a 57-bit DNA value that is most often unique. However, up to 32 devices within the family can contain the same DNA value. The JTAG FUSE_DNA command can be used to read the entire 64-bit value that is always unique. Device DNA is
composed of bits 0 to 56 of the 64-bit FUSE_DNA value. External applications can access the Device DNA or FUSE_DNA values through the JTAG port, and FPGA designs can access the DNA only through a Device DNA Access Port (DNA_PORT).
意思是說JTAG可以拿到57bit的DNA_PORT和64 bit的FUZE_DNA,DNA_PORT值最多會有32個器件有相同的值,FUZE_DNA就是唯一的。而如果要通過FPGA資源區(qū)讀取,只能用DNA_PORT,也就是說你寫邏輯的話得用57bit的DNA_PORT。
如何讀取
JTAG
可以使用 JTAG 查看當(dāng)前 FPGA 的 DNA 碼。注意DNA_PORT更加常用,因為這個值通過邏輯也可以讀出。
其中 FUSE_DNA 即為我們要獲取的 DNA 編碼信息,copy 即可。
代碼獲取
調(diào)用DNA_PORT實現(xiàn)。https://fpga.eetrend.com/files-eetrend-xilinx/download/201408/7594-13761-ug4707seriesconfig.pdf
DNA_PORT #(.SIM_DNA_VALUE(57'h123456789abcdef) // Specifies a sample 57-bit DNA value for simulation)DNA_PORT_inst (.DOUT(dna_dout), // 1-bit output: DNA output data..CLK(sys_clk), // 1-bit input: Clock input..DIN(1'b0), // 1-bit input: User data input pin..READ(dna_read), // 1-bit input: Active high load DNA, active low read input..SHIFT(dna_shift) // 1-bit input: Active high shift enable input.);
使用DNA_PORT獲取的DNA和JTAG讀取的DNA對比
參考
AMD Customer Community?JTAG 獲取 DNA