
1.IP加密設計流程
基于IEEE1735-2014 第二版進行加密,将IP的密鑰檔案和IP源代碼通過Xilinx工具進行加密,然後交由客戶。
2.了解密鑰檔案
2.1 Version and agent
識别加密工具資訊
`pragma protect version = 2
`pragma protect encrypt_agent = “XILINX”
`pragma protect encrypt_agent_info = “Xilinx Encryption Tool 2015"
2.2 Common Rights
通用權限指定了适用于所有EDA工具的通用指南。這些權利适用于由IP作者在加密定義區域中指定的所有工具供應商。如果一個工具供應商不能遵守共同權利,工具供應商必須出錯并停止正在處理加密檔案。
`pragma protect begin_commonblock
`pragma protect control error_handling = “delegated”
`pragma protect control decryption = (activity==simulation)? “false” :“true”
`pragma protect end_commonblock
2.3 Vendor-Specific Rights
工具特定塊:包含Xilinx公開密鑰和Xilinx特定權限
`pragma protect begin_toolblock
`pragma protect rights_digest_method=”sha256”
`pragma protect key_keyowner = “Xilinx”, key_method = “rsa”, key_keyname =
“xilinx_2016_05”, key_public_key
...
2.4 Conditional Rights
`pragma protect control xilinx_configuration_visible = “false”
`pragma protect control xilinx_enable_modification = “false”
`pragma protect control xilinx_enable_probing = “false”
`pragma protect control decryption = (xilinx_activity==simulation)?“false” : “true”
`pragma protect end_toolblock = “”
`pragma protect begin
// Secure Data Block
// Protected IP source code is inserted here.
...
...
...
`pragma protect end
3.加密準備
兩種方式:将密鑰檔案和源代碼檔案作為輸入給Xilinx加密工具,就能生成加密源。
嵌入式模式,将嵌入式的密鑰源代碼作為輸入給Xilinx加密工具,也可以生成加密源。
4.如何運作加密工具
encrypt [-key <arg>] -lang <arg>[-quiet] [-verbose] [-ext <arg>] <files>...
key是指定加密檔案
lang是加密語言
-ext是輸出檔案擴充格式
File是待加密檔案
例子:encrypt -lang verilog -ext .vp -key keyfile.txt myip.v
5.文獻參考
視訊連結:https://mp.weixin.qq.com/s/MT34xRT_Nn6P-9hi8com7w
文檔連結:
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2017_2/ug1118-vivado-creating-packaging-custom-ip.pdf