小舍YZ 发表于 2017-8-22 15:49:21

DES算法的VerilogHDL实现原理

DES算法的VerilogHDL实现原理

   拟采用模块化设计思想,根据DES算法的流程分模块设计实现各模块,自顶向下最终实现DES加密算法。
整体结构框架搭建,实现总体功能
moduleDES(input clk,   
    input des_enable,   
    input reset,   
    input des_mode,   
    input data_i,   
    input key_i,   
    output wire data_o,   
output ready_o);

   
wire inter_num_curr;
wire R_i_var, L_i_var;
wire Key_i_var_out;
wire data_o_var_t;
wire R_i, L_i;
wire R_o, L_o;
wire Key_o;
wire C0, D0;
   
IP IP1(.in(data_i),   
       .L_i_var(L_i_var),
       .R_i_var(R_i_var));   
IP_ni IP_ni(.in(data_o_var_t),   
            .out(data_o));   
pc_1 pc_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(Key_i_var_out),            
.R_o(R_o), .L_o(L_o),
   
      .Key_o(Key_o));   
//contral 16 F(R,K)   
contrl contrl1(.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),   
             .C0(C0),   
             .D0(D0),   
             .clk(clk),   
             .reset(reset),      
       .des_enable(des_enable));

endmodule
页: [1]
查看完整版本: DES算法的VerilogHDL实现原理