VCS仿真器加密代码方法
来源:互联网 发布:windows luajit 安装 编辑:程序博客网 时间:2024/05/01 18:58
代码加密对于IP而言非常重要,起到保护知识产权的作用。VCS提供了代码加密功能,当然,使用VCS加密的代码只能在VCS中使用。
方法1:代码中加入编译器代码保护指令,指令之间的代码将被加密,VCS加密使用的是AES128算法。
对于Verilog代码而言,编译器指令为:`protect128/`endprotect128;VHDL则为--protect128/--endprotect128。方法1可以精确的对想要加密的代码进行控制。
以一个简单的计数器代码counter.v为例,加密前:
`timescale 1ns/10psmodule counter ( input clk, input reset, input enable, output reg [3:0] count ); `protect128 always @(posedge clk or posedge reset) begin if(reset) begin count <= 4'b0; end else if(enable) begin count <= count+1'b1; end end `endprotect128endmodule
使用VCS对源代码进行编译:
vcs +v2k -protect128 counter.v
#对于verilog代码,vcs可以用vlogan命令代替,VHDL代码,vcs可以用vhdlan代替
得到加密后的代码counter.vp,如下:
`timescale 1ns/10psmodule counter ( input clk, input reset, input enable, output reg [3:0] count ); `protected128P=O!(8K9"Z(9U*$ XQ)X'(23XPS9D"AYL7"K@N(BI.XQ%KK3.&<_=A7B:YT<EXA,AP>"O8>=H+5=.<//LJ2$JI3R*&C;3+?H589",?_8' U@(U2P[U!=I\/\K/'?BR9C_\P[Y#N+KO$C'E=>6T6(MY>%A:0_MX^6 %5:J #7(6?- BVSM9&'#3\+07 2BH+?#0WP^I"TKL,=P#FY17^U)PT?S3MO&FW/1IT#P(F)T2-IIV;*LV'CU/:,<>IT^2#0XA_'P$([[6%!]KB"FQM-?!8SAA!M40]13*<F(<D0(15)[$]K"3>N\2IYQ=,1Z=X,4X]?P`endprotected128endmodule
默认情况下,.vp和源代码在同一目录下,可以使用 -putprotect128命令指令一个目录用于存储加密后的代码。
方法2:使用VCS命令参数:
-autoprotect128:加密整个模块的代码包括端口列表,只留有模块名,使用方法如下:
vcs +v2k -autoprotect128 counter.v
得到的加密代码为:
`timescale 1ns/10psmodule counter`protected128PF4^7AB<L6->UPQ]O['E/8:^.!2P'7=\,)( X=_E0\NV;_"<Z&\35(=/HQCF#B>$UPW7$?Y.'_O.8/X*ZQ.^YQW&7P2"BF94*_.M=/?EY:!?&THI\;>J)ZE[Z(\TFLT.UMP!PJ]JI'Y1K"EK(91WE=O4W0'[VWSDB93N/N*V:/U+\/,!=F6(@J4TP&?/!L?"DS=PB_ZV8CJ32'=:#10STRA4LV_^+(J_-.$3UVBII:@M,5-Y,*^;^_,,U%3WIG%HW*E=P/:DNGO"U^ HUKYGT2;MWX[Q8JU*?YS%@=*$ZCW(HU0N8CC2K&+6+A&L%<<&-N]H/PXO#E4,U0]27^AJ0_^0PT$-"#+$H6X6K+)E1^0JV%4;1F- 3ZA8+]GFDD0:L"LI[SP- ZZ)TSFEKP84&A[P<W4PR7G&4N6J[,OG(L"++HO,];6W'K?%XC0JXVL&0#^*B,_`endprotected128endmodule
-auto2protect128:保留端口列表以及UDP,得到的加密代码如下:
`timescale 1ns/10psmodule counter ( input clk, input reset, input enable, output reg [3:0] count ); `protected128PD#47/!XJBA!*($N0S>G@YN)=CZ1LG,,-)LAXQ'I_X;/BT+YYN9T%8V\^ *GV@KRQP[-H_OW#E"^5+,&9>H+2=&II*Y?-AI5 !$NX)P;%I6;ZPZ==ONA4:,?R4YYJ\ ?DFPL'$YOC%JO>)X5A0QS4./-Q(2.7Y^V@:L,I"Q>)QZW(9FOWK%<US>YX0=^P ^"@6UP_YF6Z29DW4P#-$*,6(LJM04_-^='A\M;5%?V!_S?__WD>&12.>.OJ[9T_-MUT%#RP0?><HEF(I?D=V$EY1DL1)+8+,WI&NY-U&M9&HJ4K9+ZT<$>PY J8FE+9>&8S"2=M`endprotected128endmodule
-auto3protect128:和-auto2protect128类似,只是还会保留verilog的parameter定义的参数。
0 0
- VCS仿真器加密代码方法
- vcs的加密protect
- 支持RVM/VMM/UVM验证方法学+VCS/NC仿真器+Verdi的dumpfsdb的通用脚本文件
- VCS 生成代码覆盖率
- VCS 配置方法(下)
- vcs dump vpd的方法
- vcs联合编译v/sv/c++代码
- 仿真器
- 第六章:VCS 配置方法(上)
- irun , vcs 调用UVM 的方法
- asp代码加密方法及破解
- java md5加密的方法代码
- html代码加密的方法有哪些
- VCS中使用coverage metrics进行代码覆盖分析
- 代码混淆方法之二(tomcat下面代码加密)
- 在VCS cluster中,判断主节点的方法
- 加密代码
- 代码加密
- AXI总线简介
- 异步电路处理的若干问题
- FIFO那些事儿
- 常见的传输码型
- 常见的串行通信协议
- VCS仿真器加密代码方法
- verilog PLI简介
- 超酷手机端HTML5电子请柬在线免费制作与分享
- AES加密算法C代码分析
- 国密杂凑算法SM3
- java 多态
- FPGA约束设置
- 科学论文写作工具TEX/LaTEX/CTEX
- 学习使用LATEX排版