為保護(hù)知識(shí)產(chǎn)權(quán),我們有時(shí)候需要對自己所建的模型進(jìn)行加密,加密使得別人無法讀取模型的部分源代碼。有時(shí)我們還需要給自己所建的模型設(shè)置一個(gè)時(shí)間點(diǎn),過了這個(gè)時(shí)間點(diǎn)后,模型將不能被使用。
有兩種方法可以加密Saber MAST模型。一種是使用ai_encryp程序,另一種是使用圖形化 Saber加密工具。
最后的內(nèi)容我們介紹如何調(diào)用Tcl外部函數(shù)“tclproc”來為模型設(shè)置有效期的方法。
一. 使用ai_encryp 命令進(jìn)行加密
使用 ai_encryp程序加密模板的步驟如下:
1、為未加密的模板指定一個(gè)擴(kuò)展名為 .dec 的文件名,如下面電阻器例子命名為res.dec。將.dec 文件放置在你的工作目錄中。
2、在模板內(nèi)部,在模板標(biāo)題行的開頭包含以下單詞:encrypted;在要加密的材料的開頭,包括以下兩行:
!crypt_start
pack 002
其中pack 002行激活了加密,下面的資料被加密,直到!crypt_end出現(xiàn)
3、加密信息的末尾,包括以下行:
!crypt_end 注意,此行緊挨在加密信息的結(jié)束行,最后一個(gè)右大括號(hào)}之前。
以下是電阻器 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文件的目錄包含在系統(tǒng)的PATH中(不同saber版本的路徑可能會(huì)有區(qū)別),如:C:SynopsysSaberRD64O-2018.09ai_bin。
5、打開DOS 命令窗口并cd到包含 *.dec 文件的目錄,在系統(tǒng)的命令提示符處輸入以下命令以加密模板:
ai_encryp res.dec
從上圖可以看出,要加密模板,必須擁有模型加密許可證,在許可證文件中查找到“MODEL_ENCRYPTION”才可以完成模型加密。
ai_encryp命令生成一個(gè)名為res.sin的加密模型。ai_encryp 命令也可以與多個(gè)名稱一起使用,例如:ai_encryp name1.dec name2.dec name3.dec,這個(gè)命令將生成這些模板文件:name1.sin name2.sin name3.sin。
6、加密后的文件 res.sin 文本見下。與前面的例子內(nèi)容對照,可以看到關(guān)鍵信息被加密,這時(shí)可以將res.sin 文件提供給最終用戶。
encrypted**template res p m
electrical p, m
!crypt_start
008abac6f7c2526a8a6
008b427066c90c1b1a5
016bbfe1de17efc1ca7e9b9dd8f4159094a
016e8fc83bb7915ba53b5be6a6c2cac0da7
}
**二. **使用加密工具進(jìn)行加密
1、打開SaberRD軟件,選擇Model標(biāo)簽欄,在出現(xiàn)的Modeling Tools圖框中選擇Encryption Tool,打開Saber加密工具窗口。
2、通過在Saber加密工具中選擇文件 > 打開MAST模型文件resistor.sin。
3、單擊,移動(dòng)光標(biāo)箭頭指向要加密的模型文件開頭點(diǎn)擊,“!crypt_start”和“pack 002”兩行插入文本中。通常,加密起點(diǎn)位于模板標(biāo)頭下方,以便用戶仍可讀取模板參數(shù)和連接點(diǎn)。
4、單擊移動(dòng)光標(biāo)箭頭指向要加密的模型文件結(jié)束處點(diǎn)擊,“!crypt_end”一行插入文本中。注意:此行緊挨在模板的最后一個(gè)右大括號(hào) } 之前,不能放在最后的右大括號(hào)之后。
5、單擊開始加密,該工具允許您在對其執(zhí)行任何操作之前保存輸入文件的備份副本。請定義路徑和備份文件的名稱,然后單擊“保存”。加密成功后生成的加密文件會(huì)顯示在窗口中。此外臨時(shí) .dec 文件也被寫入工作目錄。
6、在定義的路徑中,您可以看到 3 個(gè)文件:源文件的備份副本 (resistor.bak)、生成的加密文件 (resistor.sin) 和中間文件 (resistor.dec)。
**三. **如何為模型設(shè)置有效期
有時(shí)模型所有者在與他人共享模型時(shí)需要為其模型設(shè)置有效期或到期日期,這一點(diǎn)可以在模型內(nèi)部通過調(diào)用某些Tcl命令來實(shí)現(xiàn)此功能。示例:模型應(yīng)僅在 2021 年 12 月 31 日之前工作,不得超過此日期。
測試模型調(diào)用Tcl外部函數(shù)“tclproc”并將當(dāng)前 PC 日期與內(nèi)部設(shè)置的有效性或到期日期進(jìn)行比較。到期日期設(shè)置為 2020 年 12 月 25 日。由于該日期已過,模型無法模擬并在腳本窗口中生成錯(cuò)誤。
模型片段如下:
如果模型過期,運(yùn)行仿真時(shí)就會(huì)有下面的錯(cuò)誤消息出現(xiàn):
-
電阻器
+關(guān)注
關(guān)注
21文章
3779瀏覽量
62112 -
TCL
+關(guān)注
關(guān)注
10文章
1722瀏覽量
88565 -
DOS命令
+關(guān)注
關(guān)注
0文章
20瀏覽量
10936
發(fā)布評論請先 登錄
相關(guān)推薦
評論