采用MAX II器件實現(xiàn)FPGA設(shè)計安全解決方案
基于SRAM的FPGA是易失器件,需要外部存儲器來存儲上電時發(fā)送給它們的配置數(shù)據(jù)。在傳送期間,配置比特流可能會被捕獲,用于配置其他FPGA。這種知識產(chǎn)權(quán)盜竊損害了設(shè)計人員的利益。
本文引用地址:http://butianyuan.cn/article/191381.htm本文提供的解決方案可防止FPGA設(shè)計被拷貝,即使配置比特流被捕獲,也可以保證FPGA設(shè)計的安全性。通過在握手令牌由MAX II器件傳送給FPGA之前,禁止用戶設(shè)計功能來實現(xiàn)這種安全性。選用MAX II器件來產(chǎn)生握手令牌,這是因為該器件具有非易失性,關(guān)電時可保持配置數(shù)據(jù)。而且,對于這種應(yīng)用,MAX II器件是最具成本效益的CPLD。本文還介紹了采用這種方案的一個參考設(shè)計。
硬件實現(xiàn)
FPGA設(shè)計安全解決方案的硬件實現(xiàn)如圖1所示。MAX II器件產(chǎn)生連續(xù)的握手令牌,發(fā)送至FPGA,以使能用戶設(shè)計。FPGA和MAX II器件之間傳送5個信號:clock、shift_ena、random_number、ready和handshaking_data。
圖1:FPGA設(shè)計安全方案的硬件實現(xiàn)。
一旦FPGA經(jīng)過配置后,它向MAX II器件提供連續(xù)時鐘。同時連接至FPGA和MAX II器件的啟動/復(fù)位信號必須置位,以啟動系統(tǒng)工作。FPGA中的隨機數(shù)發(fā)生器(RNG)開始為FPGA和MAX II器件產(chǎn)生初始計數(shù)值(每次上電或者啟動/復(fù)位信號置位時,僅向MAX II器件發(fā)送一次隨機數(shù))。隨機數(shù)準備好后,shift_ena信號變?yōu)楦唠娖?,采用random_number信號,隨機數(shù)串行移位至MAX II器件。隨機數(shù)全部移位至MAX II器件后,ready信號置位,指示FPGA可以接收來自MAX II器件的握手令牌。
配置之后,由于Enable信號還是邏輯低電平,F(xiàn)PGA中的用戶設(shè)計功能被禁止。只有MAX II器件送出的握手令牌和FPGA內(nèi)部產(chǎn)生的數(shù)據(jù)相匹配,Enable信號才會置位,啟動用戶設(shè)計功能。這兩個數(shù)據(jù)之間出現(xiàn)差異時,Enable信號變?yōu)榈碗娖?,禁止用戶設(shè)計功能。MAX II器件中產(chǎn)生握手令牌和FPGA器件中產(chǎn)生數(shù)據(jù)的方法和過程相同。如果沒有正確的令牌,F(xiàn)PGA器件中的用戶設(shè)計功能被禁用。這樣,即使配置比特流被捕獲,也可以防止用戶設(shè)計被拷貝。
設(shè)計構(gòu)建模塊
FPGA的設(shè)計安全組成包括一個時鐘分頻器、隨機數(shù)發(fā)生器(RNG)、安全內(nèi)核、比較器和可靠性部分,而MAX II器件的設(shè)計安全組成只包括圖1所示的安全內(nèi)核。
FPGA和MAX II器件使用的安全內(nèi)核相同,如圖2所示,由以下部分構(gòu)成:隨機數(shù)接收器、64位計數(shù)器、編碼器、移位器/復(fù)用器。
圖2:FPGA和MAX II器件的安全內(nèi)核。
分頻器相關(guān)文章:分頻器原理
評論