Verilog代碼
以VCS 2017為例,可以使用-autoprotect128/-auto2protect128/-auto3protect128選項,實現不同級別的自動代碼加密。以auto2protect128為例,可以對module內除端口列表以外的內容加密。
vcs -auto2protect128 -f dut_file_list.f
還有一個-protect128選項,需要先在待加密代碼前后添加“`protect128”和“`endprotect128”。
SystemVerilog代碼
我個人實際測試下來,上面的-autoprotect128/-auto2protect128/-auto3protect128選項不能對SystemVerilog代碼自動加密,只能借助于-protect128選項。如果平時寫代碼過程中就已經添加“`protect128”和“`endprotect128”,可以直接使用vcs命令加密:
vcs-protect128-ftb_file_list.f
而如果平時寫代碼時沒有加,下面提供一個Python腳本,在給定文件列表中每個文件的首行添加“`protect128”,末尾添加“`endprotect128”,具體使用sed和echo命令實現文件首尾添加內容。?
#add_protect.py
import sys import os def main(): if(len(sys.argv) != 2): print("Optionsilleagal.") sys.exit() else: o_file = sys.argv[1] add_protect(o_file) def add_protect(o_file): try: f_obj = open(o_file) except FileNOtFoundError: print(o_file+" :no such file.") else: for line in f_obj: os.system("sed -i '1i `protect128' " + line) os.system("echo'`endprotect128'>>"+line) f_obj.close() main()
os模塊中的system()函數接受一個字符串參數,其中包含要執行的命令。在21-22行中,line為字符串變量,和前面雙引號中的linux命令拼接在一起,組成system()函數的字符串參數。
pythonadd_protect.pytb_file_list.f
審核編輯:黃飛
-
Verilog
+關注
關注
28文章
1351瀏覽量
110086 -
字符串
+關注
關注
1文章
579瀏覽量
20511 -
VCS
+關注
關注
0文章
79瀏覽量
9603 -
python
+關注
關注
56文章
4795瀏覽量
84663
原文標題:使用VCS進行代碼加密的方法
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論