集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1098|回复: 0

DES算法的VerilogHDL实现原理

[复制链接]
小舍YZ 发表于 2017-8-22 15:49:21 | 显示全部楼层 |阅读模式
DES算法的VerilogHDL实现原理

     拟采用模块化设计思想,根据DES算法的流程分模块设计实现各模块,自顶向下最终实现DES加密算法。
整体结构框架搭建,实现总体功能
module  DES(input clk,   
    input des_enable,   
    input reset,   
    input des_mode,   
    input [1:64] data_i,   
    input [1:64] key_i,     
    output wire [1:64] data_o,     
output ready_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] Key_o;  
wire [1:28] 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_f  des_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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要注册

x
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|fpga论坛|fpga设计论坛 ( 京ICP备20003123号-1 )

GMT+8, 2025-4-20 09:20 , Processed in 0.060236 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表