0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于Xilinx FPGA如何獲取FPGA的Device DNA

電子設計 ? 來源:XILINX技術社區(qū) ? 作者:Evening ? 2021-01-02 09:44 ? 次閱讀

作者:Evening

Xilinx每一個FPGA都有一個獨特的ID,也就是Device DNA,這個ID相當于我們的身份證,在FPGA芯片生產的時候就已經寫死在芯片的eFuse寄存器中,具有不可修改的屬性,因為使用的是熔斷技術。值得說明的是,在7系列及以前,這個ID都是57bit的,但是在Xilinx的Ultraslace架構下是96bit。

FPGA的DNA我們一般的使用場景是用于用戶邏輯加密。一般來說,用戶在邏輯上可以通過特定的接口把這個Device DNA讀取出來,經過一系列加密算法之后和預先在外部Flash存儲的一串加密后的字節(jié)串做比較,這個flash存儲的加密后的字節(jié)串也是由該DNA經過加密后得到,fpga加載程序后可以先從flash讀出該段字節(jié)做比較,如果相同,則讓FPGA啟動相應的邏輯,如不同,則代表該FPGA沒有經過用戶授權,用戶邏輯上可以關閉FPGA的邏輯功能甚至可以通過一些手段讓硬件損壞。

如何獲取FPGA的Device DNA呢,下面我從JTAG和調用源語兩個方法說明,并開放核心代碼供大家參考。

第一種,通過JTAG獲取,這種方法在ISE的Impact或者vivado都可以實現(xiàn),下面介紹在Vivado下如何或者Device DNA,這個其實很簡單,首先板卡通過JTAG連接PC,在Flow Navigator -> PROGRAM AND DEBUG 界面下,點擊對應的FPGA的芯片,點擊Hardware Device Properties,在search中搜索dna,在REGISTER下可以找到Device DNA,在Impact下如何獲取DNA網上有相應的文章,這里就不做進一步介紹。

第二種,用戶邏輯通過調用源語獲取,至于源語是什么,這里跟大家分享一個技巧,一般我們使用源語的時候,往往記不住大量的源語定義,那么如何快速搜索到我們想要的源語呢,在Vivado中,有一個功能是Language Templates,在Flow Navigator可以找到,里面包含了基本所有的Xilinx提供的源語和一些語法用法,以DNA讀取為例,我們搜索DNA,就可以找到關于DNA的源語,由于博主用的是VU9P的片子,所以用的是DNA_PORTE2這個源語,針對7系列及以前,使用的是DNA_PORT源語,這兩個源語都可以在Language Templates找到。

pIYBAF9uHniAc3TZAAF3q3q28Sw668.png

接下來說一下這個源語和源語相關的使用方法,這個源語本質上就是讀取FUSE寄存器表里面的FUSE_DNA寄存器,里面還包含了一個移位寄存器,源語中的接口本質上都是操作移位寄存器,這個移位寄存器的長度和器件類型有關,是56或者96bit。源語里面的READ信號,是用于把DNA的值裝載到移位寄存器里面,DIN是移位寄存器的輸入,DOUT是移位寄存器的輸出,SHIFT是移位寄存器的移位使能,CLK是移位寄存器的操作時鐘,官方提供的源語模型和時序圖如下,

pIYBAF9uHnmAW8amAAAXTfT6kg4876.png

o4YBAF9uHnqAGW8bAAAv6gIdl5w929.png

對于用戶來說,調用這個源語,我們只需要按照操作移位寄存器的流程操作就好了,我們目的是讀出源語里面的移位寄存器的值,所以我們設計的思路應該是首先拉高READ先讓移位寄存器裝載DNA的值,然后在時鐘上升沿使能SHIFT,這樣子就能讓移位寄存器里面的值移位出來,下面是核心代碼:
module dna_read(
input sys_clk,

input dna_read_rdy,
output [95:0] dna_read_dat,
output dna_read_vld);

wire dna_dout;
wire dna_read;
wire dna_shift;

DNA_PORTE2 #(
.SIM_DNA_VALUE (96'd0)
)DNA_PORTE2_inst(
.DOUT (dna_dout),
.CLK (sys_clk),
.DIN (dna_dout),
.READ (dna_read),
.SHIFT (dna_shift)
);

reg [95:0] dna_reg = 0;
reg [7:0] dna_cnt = 0;

always @ (posedge sys_clk)
begin
if(dna_read_rdy) begin
dna_cnt end
else begin
dna_cnt end
end

// load dna data from the fuse dna register
assign dna_read = dna_cnt == 8'd63;
// for ultrascale
assign dna_shift = (dna_cnt >= 8'd100) && (dna_cnt

always @ (posedge sys_clk)
begin
dna_reg end

assign dna_read_dat = dna_reg;
assign dna_read_vld = dna_cnt == 8'd196;
endmodule

這是一個axis總線的模塊,在dna_read_rdy拉高表示外部準備好接收數(shù)據,這時候模塊讀取DNA的值,然后送出去給外部模塊,外部模塊收到數(shù)據和dna_read_vld信號,則拉低dna_read_rdy,完成一次dna數(shù)值傳輸流程。

編輯:hfy

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1624

    文章

    21538

    瀏覽量

    600454
  • 寄存器
    +關注

    關注

    31

    文章

    5268

    瀏覽量

    119640
  • Xilinx
    +關注

    關注

    71

    文章

    2140

    瀏覽量

    120682
收藏 人收藏

    評論

    相關推薦

    FPGA | Xilinx ISE14.7 LVDS應用

    今天給大俠帶來 Xilinx ISE14.7 LVDS應用,話不多說,上貨。 最近項目需要用到差分信號傳輸,于是看了一下FPGA上差分信號的使用。Xilinx FPGA中,主要通過
    發(fā)表于 06-13 16:28

    想通過CYUSB3014配置xilinx FPGA,如何下載CYUSB3014的FPGA配置實用程序工具?

    你好 我想通過 CYUSB3014 配置 xilinx FPGA,如何下載 CYUSB3014 的 FPGA 配置實用程序工具? 謝謝。
    發(fā)表于 05-22 07:31

    Xilinx FPGA的約束設置基礎

    LOC約束是FPGA設計中最基本的布局約束和綜合約束,能夠定義基本設計單元在FPGA芯片中的位置,可實現(xiàn)絕對定位、范圍定位以及區(qū)域定位。
    發(fā)表于 04-26 17:05 ?957次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>的約束設置基礎

    Xilinx 7系列FPGA功能特性介紹

    Xilinx7系列FPGA由四個FPGA系列組成,可滿足一系列系統(tǒng)需求,從低成本、小尺寸、成本敏感的大容量應用到最苛刻的高性能應用的超高端連接帶寬、邏輯容量和信號處理能力。
    發(fā)表于 04-22 10:49 ?4497次閱讀
    <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b>功能特性介紹

    適用于 Xilinx? MPSoC 和 FPGA的可配置多軌PMU TPS650864數(shù)據表

    電子發(fā)燒友網站提供《適用于 Xilinx? MPSoC 和 FPGA的可配置多軌PMU TPS650864數(shù)據表.pdf》資料免費下載
    發(fā)表于 04-01 09:58 ?0次下載
    適用于 <b class='flag-5'>Xilinx</b>? MPSoC 和 <b class='flag-5'>FPGA</b>的可配置多軌PMU TPS650864數(shù)據表

    Xilinx fpga芯片系列有哪些

    Xilinx FPGA芯片擁有多個系列和型號,以滿足不同應用領域的需求。以下是一些主要的Xilinx FPGA芯片系列及其特點。
    的頭像 發(fā)表于 03-14 16:24 ?2796次閱讀

    適用于 Xilinx? MPSoC 和 FPGA 的可配置多軌PMU TPS650864數(shù)據表

    電子發(fā)燒友網站提供《適用于 Xilinx? MPSoC 和 FPGA 的可配置多軌PMU TPS650864數(shù)據表.pdf》資料免費下載
    發(fā)表于 03-06 17:07 ?0次下載
    適用于 <b class='flag-5'>Xilinx</b>? MPSoC 和 <b class='flag-5'>FPGA</b> 的可配置多軌PMU TPS650864數(shù)據表

    AMD Xilinx 7系列FPGA的Multiboot多bit配置

    Multiboot是一種在AMD Xilinx 7系列FPGA上實現(xiàn)雙鏡像(或多鏡像)切換的方案。它允許在FPGA中加載兩個不同的配置鏡像,并在需要時切換。
    的頭像 發(fā)表于 02-25 10:54 ?1111次閱讀
    AMD <b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b>的Multiboot多bit配置

    關于FPGA的開源項目介紹

    Hello,大家好,之前給大家分享了大約一百多個關于FPGA的開源項目,涉及PCIe、網絡、RISC-V、視頻編碼等等,這次給大家?guī)淼氖遣豢菰锏膴蕵讽椖浚饕蚶系挠螒騼群耸褂?b class='flag-5'>FPGA進行硬解,涉及的內核數(shù)不勝數(shù),主要目標是
    的頭像 發(fā)表于 01-10 10:54 ?1268次閱讀
    <b class='flag-5'>關于</b><b class='flag-5'>FPGA</b>的開源項目介紹

    FPGA設計高級技巧 Xilinx

    FPGA設計高級技巧 Xilinx
    發(fā)表于 01-08 22:15

    讀取Xilinx FPGA芯片設備標識符的方法-DNA

    每一片芯片內部存有一個設備標識符,xilinx把它叫做DNA,這個DNA是不可更改的,永久存在芯片里面的。
    的頭像 發(fā)表于 01-03 09:19 ?3112次閱讀
    讀取<b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b>芯片設備標識符的方法-<b class='flag-5'>DNA</b>

    簡述Xilinx 7系列FPGA芯片相關知識

    Xilinx 7系列 芯片 應用非常廣泛,具有成本低、性能強悍、成熟穩(wěn)定的特點,目前Xilinx( AMD )已延長該系列芯片的生命周期至少到2035年。 本文主要介紹Xilinx 7系列 F
    的頭像 發(fā)表于 11-28 10:20 ?1015次閱讀
    簡述<b class='flag-5'>Xilinx</b> 7系列<b class='flag-5'>FPGA</b>芯片相關知識

    Xilinx FPGA IP之Block Memory Generator功能概述

    Xilinx Block Memory Generator(BMG)是一個先進的內存構造器,它使用Xilinx fpga中的嵌入式塊RAM資源生成面積和 性能優(yōu)化的內存。
    的頭像 發(fā)表于 11-14 17:49 ?2239次閱讀
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>FPGA</b> IP之Block Memory Generator功能概述

    羅徹斯特電子攜手AMD/Xilinx可持續(xù)供應Xilinx傳統(tǒng)FPGA產品

    羅徹斯特電子攜手AMD/Xilinx,為Xilinx傳統(tǒng)FPGA和相關配置PROM產品提供供貨支持。
    的頭像 發(fā)表于 11-07 09:04 ?469次閱讀

    入門筆記:FPGA不是單片機

    關于FPGA是不是單片機的問題,很多人反復強調,但遺憾的是,把FPGA當單片機玩的人仍前赴后繼。點解?琢磨著有可能是入門方法有誤。 回想一下我們是咋學單片機的?買一本教材,了解一下IO口和控制字
    發(fā)表于 11-02 17:27