
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