EFuse 具備一次性可編程特性,即只要使用特定密鑰將“熔絲 (FUSE)”熔斷,就無法再使用任何其他密鑰對其進行編程。
EFuse 廣泛適用于各種量產(chǎn)器件,在本文中我們將為大家演示一個典型情境,即客戶希望向第三方供應(yīng)商提供采用 AES 編程的 FPGA 的情境。
曾經(jīng)出現(xiàn)過這樣的問題,用戶以錯誤方式對錯誤的 EFuse 密鑰進行編程,導(dǎo)致加密比特流編程失敗。在此情境中,我們無法將 EFuse 復(fù)原,因為它已發(fā)生熔斷。
在下文中,我們將探討有關(guān) AES 密鑰驗證步驟的內(nèi)容,當(dāng)您在器件上以物理方式對 EFuse 密鑰進行編程時應(yīng)遵循這些驗證步驟進行操作。
1. 使用 EFUSE_TEST_MODE 對 AES 密鑰進行測試性編程。
這將把 EFuse 編程軟件命令發(fā)送到器件,但并不會實際對任何熔絲進行編程。
2. 要啟用 EFUSE_TEST_MODE,請右鍵單擊“Hardware Manager”上的“Hardware Server Properties”,然后選中“EFUSE_TEST_MODE”選項,如下圖所示:
3. 啟用 EFUSE_TEST_MODE 并對 EFuse 密鑰編程后,就會在 Vivado 安裝目錄中創(chuàng)建一個 .nkz 文件。
請檢查該 .nkz 文件,確認其中是否已正確顯示 AES 密鑰。
4. 如果此操作成功,請取消勾選“EFUSE_TEST_MODE”框,然后以真正物理方式僅將此 AES 密鑰編程到器件中。
請勿對任何其他控制寄存器、安全寄存器或 RSA 進行編程。操作完成后將重新寫入 .nkz 文件,但其中所含內(nèi)容應(yīng)不變。
請驗證兩個 .nkz 文件的內(nèi)容是否相同。
5. 如果兩個 .nkz 文件內(nèi)容相同,那么請對加密比特流文件進行編程。
6. 運行以下命令以驗證 .nky 和加密比特流:
create_hw_bitstream -hw_device [current_hw_device ] -nky mtl1_c1.nky mtl1_c1.bit
verify_hw_devices -key efuse
注釋:特此澄清,在第 3 步中,除非您已在 EFuse 向?qū)е懈?.nkz 文件的文件名,否則,將覆蓋同一個輸出 .nkz 文件。因此,您應(yīng)該將第 1 個 .nkz 復(fù)制到其他文件或者在向?qū)е懈拇?.nkz 文件的文件名以便后續(xù)對兩個文件進行比較。
EFUSE_TEST_MODE 僅用于驗證目的。如果編程測試成功,并且您取消勾選 EFUSE_TEST_MODE 并遵循與測試過程相同的編程步驟進行操作,那么就能將正確的 AES 密鑰編程到器件中。
遵循上述步驟進行操作時,請勿對控制寄存器或安全寄存器進行編程。
成功完成驗證后即可進行各項詳細設(shè)置。
-
密鑰
+關(guān)注
關(guān)注
1文章
138瀏覽量
19759 -
AES
+關(guān)注
關(guān)注
0文章
104瀏覽量
33234
原文標題:開發(fā)者分享 | EFuse AES 密鑰驗證步驟
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論