高云云源软件对源代码模块的加密
前言:
在[FPGA]实际的开发中,官方提供的IP并不是适用于所有的情况,需要根据实际修改,或者是在自己设计的IP时,需要再次调用时,我们可以将之前的设计封装成自定义IP,然后在之后的设计中继续使用此IP。
有时想把自己设计的IP文件分享给别人使用,但是又不想分享给其源代码,那么我们就需要把源代码封装成IP的模式,供他人调用。保护了自己的知识产权有推动了技术的分享进步。
因此本次详细介绍使用高云的云源软件来制作IP,并使用IP创建工程。
一,
在设计好自己的工程后,根据需要可以对使用得层级模块进行原地阿妈的封装。
在高云软件中有介绍:
在打开工程的情况下,当用户需要对 FPGA 设计中全部源文件或者部分
源文件进行加密操作时,可以在 Hierarchy 窗口中右击所要加密的 module,
通过右键菜单中的“Pack User Design”生成综合后的加密文件。“Pack User
Design”对话框如图 所示。
Pack User Design 对话框各项配置含义如下:
Create In:生成加密文件的目标路径,仅支持绝对路径的形式,默认为
工程路径\src<topmodule_name>_pack;
Synthesis Tool:指定综合工具;
Language:选择硬件语言,下拉列表支持 Verilog 和 VHDL,默认选择
Verilog;
Target Top Module:想要进行加密的 top module。默认为在 Hierarchy
窗口选择的 module,允许用户进行修改;
Source Files:列出 Hierarchy 窗口选择的 module 及其 sub module 所在
的源文件;
Add File:添加待加密的设计文件;
Remove File:移除无需加密的设计文件;
Output 窗口:执行信息窗口;
Pack:执行加密;
Stop:终止加密。
二,
开始加密及加密成功后会在 Output 窗口打印相关信息,如图 3-5 所示。
加密过程中如果有 error 信息,会把 error 信息显示到 Output 窗口,同时会
打印加密失败的信息,如图 3-6 所示。
图 3-5 Pack User Design 对话框打印信息
三,
加密完成后会在目标路径下生成两个文件,如果 Language 选择的是
Verilog,则生成的文件为<topmodule_name>_gowin.vp 和
<topmodule_name>_sim.v,如果 Language 选择的是 VHDL,则生成的文
件为<topmodule_name>_gowin.vhdp 和<topmodule_name>_sim.v。
<topmodule_name>_gowin.vp 和<topmodule_name>_gowin.vhdp 是用于
保密的加密文件,可以提供给他人使用。<topmodule_name>_sim.v 是打平
的综合后明文网表文件,可以用于加密模块的功能仿真。
注!
如果工程中有多个 module 都实例化了同一个 sub module,分别 pack 这几个 module
后产生的文件中都会有该 sub module 的定义,如果将产生的这几个文件用于同一个工
程,会报出 sub module 被重复定义的错误,该使用方式需要规避。