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