Xilinx-FPGA DNA reading method
tempo di aggiornamento: 2020-04-10 10:51:34
Each FPGA of Xilinx has a unique ID, which is Device DNA. This ID is equivalent to our ID card. It has been written in the eFuse register of the chip when the FPGA chip is produced. It has unmodifiable attributes because of the use of It is the fuse technology. It is worth noting that in the 7 series and before, this ID is 57bit, but it is 96bit under Xilinx's Ultraslace architecture.
Our general use scenario for FPGA DNA is for user logic encryption. Generally speaking, the user can logically read this Device DNA through a specific interface, and after a series of encryption algorithms, compare it with a string of encrypted bytes stored in the external Flash in advance. The resulting byte string is also obtained after the DNA is encrypted. After fpga loads the program, it can read the byte from flash for comparison. If it is the same, let the FPGA start the corresponding logic. If it is different, it means that the FPGA does not have With the authorization of the user, the user can logically shut down the logic function of the FPGA or even damage the hardware through some means.
How to get FPGA Device DNA, I will explain the two methods from JTAG and call source language, and open the core code for your reference.
The first one is obtained through JTAG. This method can be implemented in ISE's Impact or vivado. The following describes how to use Vivado or Device DNA. This is actually very simple. First, the board is connected to the PC through JTAG. In Flow Navigator-> PROGRAM Under the AND DEBUG interface, click the corresponding FPGA chip, click Hardware Device Properties, search for dna in the search, you can find Device DNA under REGISTER, and there is a corresponding article on how to obtain DNA under Impact. I will not go into details here.
Second, user logic is obtained by calling the source language. As for what the source language is, here is a tip to share with you. Generally, when we use the source language, we often cannot remember a large number of source language definitions, so how to quickly search for what we want The source language you want, in Vivado, there is a function of Language Templates, which can be found in Flow Navigator, which contains basically all the source language and some grammatical usage provided by Xilinx. Taking DNA reading as an example, we search for DNA, You can find the source language of DNA. Because the blogger uses the VU9P film, the source language of DNA_PORTE2 is used. For the 7 series and before, the source language of DNA_PORT is used. Both source languages can be found in Language Templates found.
Next, let's talk about the use of this source language and the source language. This source language is essentially reading the FUSE_DNA register in the FUSE register table. It also contains a shift register. The interfaces in the source language are essentially operations. Shift register, the length of this shift register depends on the device type, it is 56 or 96bit. The READ signal in the source language is used to load the DNA value into the shift register, DIN is the input of the shift register, DOUT is the output of the shift register, SHIFT is the shift enable of the shift register, and CLK is The operation clock of the shift register, the source language model and timing diagram provided by the official are as follows
For users, to call this source language, we only need to operate according to the process of operating the shift register. Our purpose is to read the value of the shift register in the source language, so our design idea should be to pull up first READ first loads the shift register with the DNA value, and then enables SHIFT on the rising edge of the clock, so that the value in the shift register can be shifted out. The following is the core code:
This is a module of the axis bus. When dna_read_rdy is pulled high, the external is ready to receive data. At this time, the module reads the DNA value and sends it to the external module. When the external module receives the data and the dna_read_vld signal, it dna_read_rdy is pulled down A DNA value transmission process.
Precedente: Everything about N-channel hexfet power mosfet-IRF3205
Prossimo: Xilinx-7Series-FPGA high-speed transceiver use learning
Ratings and Reviews
Related speciale
-
XC5VLX30T-1FF665CES
Xilinx
FPGA Virtex-5 LXT Family 30720 Cells 65n > -
XCZU9EG-2FFVB1156E
Xilinx
Zynq UltraScale+ MPSoC: EG Device SOC CO > -
XC7K355T-2FFG901C
Xilinx
FPGA Kintex-7 Family 356160 Cells 28nm T > -
XC7K70T-1FB676I
Xilinx
Kintex-7 FPGA 300 I/O 676FCBGA > -
XC7A75T-1FGG676C
Xilinx
FPGA, Artix-7, MMCM, PLL, 300 I/O's, 200 > -
XC6VLX75T-L1FFG484C
Xilinx
Virtex-6 LXT FPGA 240 I/O 484FBGA > -
XC6SLX45-N3FGG484C
Xilinx
Spartan-6 LX FPGA 316 I/O 484FBGA > -
XC6SLX45-L1CSG324I
Xilinx
FPGA Spartan -6 LX Family 43661 Cells 45 > -
XC7S15-1FTGB196I
Xilinx
Spartan-7 FPGA 100 I/O 196CSBGA > -
XCZU2CG-1SFVC784E
Xilinx
PSoC / MPSoC Microprocessor, Zynq UltraS > -
XCKU035-2FFVA1156E
Xilinx
FPGA > -
XC7Z030-2FBG676I
Xilinx
Dual ARM? Cortex?-A9 MPCore? with CoreSi > -
TE0720-03-2IF
Xilinx
IC MODULE CORTEX-A9 1GB 32MB > -
XC7A35T-1CPG236I
Xilinx
FPGA Artix-7 Family 33280 Cells 28nm Tec > -
XQ1701LSO20N
Xilinx
Ic prom series conf 3.3v 20-soic >
Hot Stocks
Di più- XCS20XL-4PQG208C
- XCR3512XL-10FT256I
- XC9572XL-5VQ44C
- XC95144-7PQ160C
- XC6SLX45-3CSG324I
- XC6SLX25-3FTG256I
- XC6SLX16-2CSG225C
- XC6SLX100T-2FGG484C
- XC6SLX100-3FGG676I
- XC6SLX100-3FGG484I
- XC6SLX100-2FGG676I
- XC5VSX95T-2FF1136I
- XC5VSX95T-1FF1136C
- XC5VSX50T-2FF1136I
- XC5VLX50T-1FFG665C
- XC5VLX50T-1FF1136C
- XC5VLX30T-2FFG665I
- XC5VLX30T-1FFG665C
- XC5202-6PQG100C
- XC4VLX25-10FF668I
- XC4VLX100-10FFG1513I
- XC4VFX60-11FFG1152C
- XC4VFX60-10FFG672C
- XC4VFX40-10FFG1152C
- XC4010E-4PQ208I
- XC3S200AN-4FT256I
- XC3S2000-4FG676
- XC3S1500-FGG676EGQ
- XC3S1500-FG676I
- XC3S1500-4FG320C
- XC3S1400AN-4FG676I
- XC3S1400A-5FGG484C
- XC3S1000-5FTG256I
- XC3S1000-5FT256I
- XC3190A-1PQ160I
- XC3042-100PG132B
- XC2VP30-5FF896I
- XC2V4000-5FF1152I
- XC2V2000-4BGG575C
- XC2S50E-6TQG144I
- XC2S300E-6FTG256I
- XC2S15-5VQ100C
- XC18V512SOG20C
- XC18V01SOG20C
- XC17S20PD8C