Skip to content

Commit 7ac59ac

Browse files
committed
Initial commit
0 parents  commit 7ac59ac

File tree

6 files changed

+832
-0
lines changed

6 files changed

+832
-0
lines changed

AddRoundKey.v

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
`timescale 1ns / 1ps
2+
//////////////////////////////////////////////////////////////////////////////////
3+
// Company:
4+
// Engineer:
5+
//
6+
// Create Date: 16:08:49 10/22/2017
7+
// Design Name:
8+
// Module Name: AddRoundKey
9+
// Project Name:
10+
// Target Devices:
11+
// Tool versions:
12+
// Description:
13+
//
14+
// Dependencies:
15+
//
16+
// Revision:
17+
// Revision 0.01 - File Created
18+
// Additional Comments:
19+
//
20+
//////////////////////////////////////////////////////////////////////////////////
21+
module addroundkey(input [127 : 0] data, output [127:0] out, input [127:0] key, input clk);
22+
23+
generate
24+
genvar i;
25+
for(i = 0; i < 128; i = i + 1)
26+
begin: h
27+
assign out[i] = data[i]^key[i];
28+
end
29+
endgenerate
30+
endmodule

MixColumns.v

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
`timescale 1ns / 1ps
2+
//////////////////////////////////////////////////////////////////////////////////
3+
// Company:
4+
// Engineer:
5+
//
6+
// Create Date: 15:56:33 10/22/2017
7+
// Design Name:
8+
// Module Name: MixColumns
9+
// Project Name:
10+
// Target Devices:
11+
// Tool versions:
12+
// Description:
13+
//
14+
// Dependencies:
15+
//
16+
// Revision:
17+
// Revision 0.01 - File Created
18+
// Additional Comments:
19+
//
20+
//////////////////////////////////////////////////////////////////////////////////
21+
module MixColumns(input [127 : 0] data, output reg [127:0] mixcolumns, input clk);
22+
//wire reg [31 : 0] w0, w1, w2, w3;
23+
//wire reg [31 : 0] ws0, ws1, ws2, ws3;
24+
assign w0 = data[127 : 096];
25+
assign w1 = data[095 : 064];
26+
assign w2 = data[063 : 032];
27+
assign w3 = data[031 : 000];
28+
29+
assign ws0 = mixw(w0);
30+
assign ws1 = mixw(w1);
31+
assign ws2 = mixw(w2);
32+
assign ws3 = mixw(w3);
33+
34+
function [31 : 0] mixw(input [31 : 0] w);
35+
reg [7 : 0] b0, b1, b2, b3;
36+
reg [7 : 0] mb0, mb1, mb2, mb3;
37+
begin
38+
b0 = w[31 : 24];
39+
b1 = w[23 : 16];
40+
b2 = w[15 : 08];
41+
b3 = w[07 : 00];
42+
43+
mb0 = gm2(b0) ^ gm3(b1) ^ b2 ^ b3;
44+
mb1 = b0 ^ gm2(b1) ^ gm3(b2) ^ b3;
45+
mb2 = b0 ^ b1 ^ gm2(b2) ^ gm3(b3);
46+
mb3 = gm3(b0) ^ b1 ^ b2 ^ gm2(b3);
47+
48+
mixw = {mb0, mb1, mb2, mb3};
49+
end
50+
endfunction
51+
52+
function [7 : 0] gm2(input [7 : 0] op);
53+
begin
54+
gm2 = {op[6 : 0], 1'b0} ^ (8'h1b & {8{op[7]}});
55+
end
56+
endfunction
57+
58+
function [7 : 0] gm3(input [7 : 0] op);
59+
begin
60+
gm3 = gm2(op) ^ op;
61+
end
62+
endfunction
63+
64+
always@(posedge clk)
65+
assign mixcolumns = {ws0, ws1, ws2, ws3};
66+
67+
68+
69+
endmodule

ShiftRows.v

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
`timescale 1ns / 1ps
2+
//////////////////////////////////////////////////////////////////////////////////
3+
// Company:
4+
// Engineer:
5+
//
6+
// Create Date: 15:54:04 10/22/2017
7+
// Design Name:
8+
// Module Name: ShiftRows
9+
// Project Name:
10+
// Target Devices:
11+
// Tool versions:
12+
// Description:
13+
//
14+
// Dependencies:
15+
//
16+
// Revision:
17+
// Revision 0.01 - File Created
18+
// Additional Comments:
19+
//
20+
//////////////////////////////////////////////////////////////////////////////////
21+
module ShiftRows(data,out, clk);
22+
input [127:0] data;
23+
input clk;
24+
output reg [127:0] out;
25+
reg [31:0] t0, t1, t2, t3;
26+
reg [31:0] ws0, ws1, ws2, ws3;
27+
28+
always@(posedge clk)
29+
begin
30+
t0 = data[127:096];
31+
t1 = data[095 : 064];
32+
t2 = data[063 : 032];
33+
t3 = data[031 : 000];
34+
35+
ws0 = {t0[31 : 24], t1[23 : 16], t2[15 : 08], t3[07 : 00]};
36+
ws1 = {t1[31 : 24], t2[23 : 16], t3[15 : 08], t0[07 : 00]};
37+
ws2 = {t2[31 : 24], t3[23 : 16], t0[15 : 08], t1[07 : 00]};
38+
ws3 = {t3[31 : 24], t0[23 : 16], t1[15 : 08], t2[07 : 00]};
39+
40+
out = {ws0, ws1, ws2, ws3};
41+
end
42+
endmodule

0 commit comments

Comments
 (0)