⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sms4_ori.v

📁 用Verilog实现国内第一个商用密码算法SMS4的加密和解密。
💻 V
字号:
//synopsys translate_off
`include "timescale.v"
//synopsys translate_on

module sms4_ori (key_out,
                 data_out,
                 busy,
                 dout_vld,
                 key_str,
                 key_in,
                 data_in,
                 start,
                 enc,
                 din_vld,
                 key_vld,
                 clk,
                 reset);
                 
parameter DWIDTH=128;
parameter RWIDTH=32;

output [0:DWIDTH-1] key_out;
output [0:DWIDTH-1] data_out;
output busy;
output dout_vld;
output key_str;

input  [0:DWIDTH-1] key_in;
input  [0:DWIDTH-1] data_in;
input  start;
input  enc;
input  din_vld;
input  [0:1] key_vld;
input  clk;
input  reset;

wire get_data;
wire get_key;
wire ed_run;
wire exp_run;
wire mode;
wire [0:4] counter;
wire [0:RWIDTH-1] round_key;

sms4_control_ori  control(
                          .busy(busy),
                          .dout_vld(dout_vld),
                          .key_str(key_str),
                          .get_data(get_data),
                          .get_key(get_key),
                          .counter(counter),
                          .mode(mode),
                          //.ed_mode(ed_mode),
                          .exp_run(exp_run),
                          .ed_run(ed_run),
                          .start(start),
                          .enc(enc),
                          .din_vld(din_vld),
                          .key_vld(key_vld),
                          .clk(clk),
                          .reset(reset)
                          );

key_expand_ori  expand(
                       .key_out(key_out),
                       .round_key(round_key),
                       .key_in(key_in),
                       .get_key(get_key),
                       .exp_run(exp_run),
                       .mode(mode),
                       //.ed_mode(ed_mode),
                       .clk(clk),
                       .reset(reset),
                       .counter(counter)
                       );
                       
edcrypt_ori  edcrypt(
                     .data_out(data_out),
                     .data_in(data_in),
                     .round_key(round_key),
                     .get_data(get_data),
                     .ed_run(ed_run),
                    // .counter(counter),
                     //.mode(mode),
                     .clk(clk),
                     .reset(reset)
                     );
endmodule

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -