-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSubBytesInv.v
101 lines (94 loc) · 1.95 KB
/
SubBytesInv.v
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
/* Machine-generated using Migen */
module SubBytesInv(
input [7:0] sm0,
input [7:0] sm1,
input [7:0] sm2,
input [7:0] sm3,
input [7:0] sm4,
input [7:0] sm5,
input [7:0] sm6,
input [7:0] sm7,
input [7:0] sm8,
input [7:0] sm9,
input [7:0] sm10,
input [7:0] sm11,
input [7:0] sm12,
input [7:0] sm13,
input [7:0] sm14,
input [7:0] sm15,
output [7:0] recovered0,
output [7:0] recovered1,
output [7:0] recovered2,
output [7:0] recovered3,
output [7:0] recovered4,
output [7:0] recovered5,
output [7:0] recovered6,
output [7:0] recovered7,
output [7:0] recovered8,
output [7:0] recovered9,
output [7:0] recovered10,
output [7:0] recovered11,
output [7:0] recovered12,
output [7:0] recovered13,
output [7:0] recovered14,
output [7:0] recovered15,
input sys_clk,
input sys_rst
);
reg [7:0] adr = 1'd0;
wire [7:0] dat_r;
// synthesis translate_off
reg dummy_s;
initial dummy_s <= 1'd0;
// synthesis translate_on
assign recovered0 = dat_r;
assign recovered1 = dat_r;
assign recovered2 = dat_r;
assign recovered3 = dat_r;
assign recovered4 = dat_r;
assign recovered5 = dat_r;
assign recovered6 = dat_r;
assign recovered7 = dat_r;
assign recovered8 = dat_r;
assign recovered9 = dat_r;
assign recovered10 = dat_r;
assign recovered11 = dat_r;
assign recovered12 = dat_r;
assign recovered13 = dat_r;
assign recovered14 = dat_r;
// synthesis translate_off
reg dummy_d;
// synthesis translate_on
always @(*) begin
adr <= 1'd0;
adr <= 1'd0;
adr <= 1'd1;
adr <= 2'd2;
adr <= 2'd3;
adr <= 3'd4;
adr <= 3'd5;
adr <= 3'd6;
adr <= 3'd7;
adr <= 4'd8;
adr <= 4'd9;
adr <= 4'd10;
adr <= 4'd11;
adr <= 4'd12;
adr <= 4'd13;
adr <= 4'd14;
adr <= 4'd15;
// synthesis translate_off
dummy_d <= dummy_s;
// synthesis translate_on
end
assign recovered15 = dat_r;
reg [7:0] invsboxmem[0:255];
reg [7:0] memdat;
always @(posedge sys_clk) begin
memdat <= invsboxmem[adr];
end
assign dat_r = memdat;
initial begin
$readmemh("invsboxmem.init", invsboxmem);
end
endmodule