资源描述:
《DES加密算法Verilog实现源代码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、moduledes_top(inputclk,inputdes_enable,inputreset,inputdes_mode,input[1:64]data_i,input[1:64]key_i,outputwire[1:64]data_o,outputready_o);wire[3:0]inter_num_curr;wire[1:32]R_i_var,L_i_var;wire[1:56]Key_i_var_out;wire[1:64]data_o_var_t;wire[1:32]R_i,L_i;wire[1:32]R_o,L_o;wire[1:56]
2、Key_o;wire[1:28]C0,D0;IPIP1(.in(data_i),.L_i_var(L_i_var),.R_i_var(R_i_var));IP_niIP_ni(.in(data_o_var_t),.out(data_o));pc_1pc_1(.key_i(key_i),.C0(C0),.D0(D0));//F(R,K)des_fdes_f1(.clk(clk),.reset(reset),.des_mode(des_mode),.inter_num_i(inter_num_curr),.R_i(R_i),.L_i(L_i),.Key_i(
3、Key_i_var_out),.R_o(R_o),.L_o(L_o),.Key_o(Key_o));//contral16F(R,K)contrlcontrl1(.data_o_var_t(data_o_var_t),.inter_num_curr(inter_num_curr),.Key_i_var_out(Key_i_var_out),.R_i(R_i),.L_i(L_i),.ready_o(ready_o),.L_o(L_o),.R_o(R_o),.R_i_var(R_i_var),.L_i_var(L_i_var),.Key_o(Key_o),.
4、C0(C0),.D0(D0),.clk(clk),.reset(reset),.des_enable(des_enable));endmodulemodulecontrl(output[1:64]data_o_var_t,outputreg[3:0]inter_num_curr,outputreg[1:56]Key_i_var_out,outputreg[1:32]R_i,L_i,outputregready_o,input[1:32]L_o,input[1:32]R_o,input[1:32]R_i_var,L_i_var,input[1:56]Key
5、_o,input[1:28]C0,D0,inputclk,reset,des_enable);reg[3:0]inter_num_next;assigndata_o_var_t=(ready_o==1'b1)?{L_o,R_o}:64'hzzzzzzzzzzzzzzzz;always@(posedgeclkornegedgereset)if(reset==1'b0)begininter_num_next<=4'd0;inter_num_curr<=4'd0;ready_o<=1'b0;endelseif(des_enable)beginif(ready_
6、o==1'b0)inter_num_curr<=inter_num_next;endalways@(posedgeclkornegedgereset)beginif(reset==1'b0)ready_o<=1'b0;elseif(inter_num_curr==4'd15)ready_o<=1'b1;elseready_o<=1'b0;endalways@(*)begincase(inter_num_curr)4'd0:begin//ready_o=1'b0;R_i=R_i_var;L_i=L_i_var;Key_i_var_out={C0,D0};i
7、nter_num_next=4'd1;end4'd1:begin//ready_o=1'b0;R_i=R_o;L_i=L_o;Key_i_var_out=Key_o;inter_num_next=4'd2;end4'd2:begin//ready_o=1'b0;R_i=R_o;L_i=L_o;Key_i_var_out=Key_o;inter_num_next=4'd3;end4'd3:begin//ready_o=1'b0;R_i=R_o;L_i=L_o;Key_i_var_out=Key_o;inter_num_next=4'd4;end4'd4:b
8、egin//ready_o=1'b0;R_i=R_o;L_i=L_o;Key_i