电子说
为保护知识产权,我们有时候需要对自己所建的模型进行加密,加密使得别人无法读取模型的部分源代码。有时我们还需要给自己所建的模型设置一个时间点,过了这个时间点后,模型将不能被使用。
有两种方法可以加密Saber MAST模型。一种是使用ai_encryp程序,另一种是使用图形化 Saber加密工具。
最后的内容我们介绍如何调用Tcl外部函数“tclproc”来为模型设置有效期的方法。
一. 使用ai_encryp 命令进行加密
使用 ai_encryp程序加密模板的步骤如下:
1、为未加密的模板指定一个扩展名为 .dec 的文件名,如下面电阻器例子命名为res.dec。将.dec 文件放置在你的工作目录中。
2、在模板内部,在模板标题行的开头包含以下单词:encrypted;在要加密的材料的开头,包括以下两行:
!crypt_start
pack 002
其中pack 002行激活了加密,下面的资料被加密,直到!crypt_end出现
3、加密信息的末尾,包括以下行:
!crypt_end 注意,此行紧挨在加密信息的结束行,最后一个右大括号}之前。
以下是电阻器 res.dec 的.dec模板文件示例:
encrypted**template res p m
electrical p, m
!crypt_start
pack 002
{
r.r1 p m = 1.5k
!crypt_end
}
4、确保包含ai_encryp.exe文件的目录包含在系统的PATH中(不同saber版本的路径可能会有区别),如:C:SynopsysSaberRD64O-2018.09ai_bin。
5、打开DOS 命令窗口并cd到包含 *.dec 文件的目录,在系统的命令提示符处输入以下命令以加密模板:
ai_encryp res.dec
从上图可以看出,要加密模板,必须拥有模型加密许可证,在许可证文件中查找到“MODEL_ENCRYPTION”才可以完成模型加密。
ai_encryp命令生成一个名为res.sin的加密模型。ai_encryp 命令也可以与多个名称一起使用,例如:ai_encryp name1.dec name2.dec name3.dec,这个命令将生成这些模板文件:name1.sin name2.sin name3.sin。
6、加密后的文件 res.sin 文本见下。与前面的例子内容对照,可以看到关键信息被加密,这时可以将res.sin 文件提供给最终用户。
encrypted**template res p m
electrical p, m
!crypt_start
008abac6f7c2526a8a6
008b427066c90c1b1a5
016bbfe1de17efc1ca7e9b9dd8f4159094a
016e8fc83bb7915ba53b5be6a6c2cac0da7
}
**二. **使用加密工具进行加密
1、打开SaberRD软件,选择Model标签栏,在出现的Modeling Tools图框中选择Encryption Tool,打开Saber加密工具窗口。
2、通过在Saber加密工具中选择文件 > 打开MAST模型文件resistor.sin。
3、单击,移动光标箭头指向要加密的模型文件开头点击,“!crypt_start”和“pack 002”两行插入文本中。通常,加密起点位于模板标头下方,以便用户仍可读取模板参数和连接点。
4、单击移动光标箭头指向要加密的模型文件结束处点击,“!crypt_end”一行插入文本中。注意:此行紧挨在模板的最后一个右大括号 } 之前,不能放在最后的右大括号之后。
5、单击开始加密,该工具允许您在对其执行任何操作之前保存输入文件的备份副本。请定义路径和备份文件的名称,然后单击“保存”。加密成功后生成的加密文件会显示在窗口中。此外临时 .dec 文件也被写入工作目录。
6、在定义的路径中,您可以看到 3 个文件:源文件的备份副本 (resistor.bak)、生成的加密文件 (resistor.sin) 和中间文件 (resistor.dec)。
**三. **如何为模型设置有效期
有时模型所有者在与他人共享模型时需要为其模型设置有效期或到期日期,这一点可以在模型内部通过调用某些Tcl命令来实现此功能。示例:模型应仅在 2021 年 12 月 31 日之前工作,不得超过此日期。
测试模型调用Tcl外部函数“tclproc”并将当前 PC 日期与内部设置的有效性或到期日期进行比较。到期日期设置为 2020 年 12 月 25 日。由于该日期已过,模型无法模拟并在脚本窗口中生成错误。
模型片段如下:
如果模型过期,运行仿真时就会有下面的错误消息出现:
全部0条评论
快来发表一下你的评论吧 !