OpenCores
URL https://opencores.org/ocsvn/aes_decry_ip_128bit/aes_decry_ip_128bit/trunk

Subversion Repositories aes_decry_ip_128bit

[/] [aes_decry_ip_128bit/] [trunk/] [rtl/] [x9.vhd] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 ghegde
--************************************************************
2
--Copyright 2015, Ganesh Hegde < ghegde@opencores.org >      
3
--                                                           
4
--This source file may be used and distributed without  
5
--restriction provided that this copyright statement is not 
6
--removed from the file and that any derivative work contains
7
--the original copyright notice and the associated disclaimer.
8
--
9
--This source is distributed in the hope that it will be
10
--useful, but WITHOUT ANY WARRANTY; without even the implied
11
--warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12
--PURPOSE.  See the GNU Lesser General Public License for more
13
--details.
14
--
15
--You should have received a copy of the GNU Lesser General
16
--Public License along with this source; if not, download it
17
--from http://www.opencores.org/lgpl.shtml
18
--
19
--*************************************************************
20
 
21
--*************************************************************
22
-- GF multiplication of input byte by 9
23
--Logic type : Combinational
24
--*************************************************************
25
 
26
library ieee;
27
use ieee.std_logic_1164.all;
28
 
29
entity x9 is
30
port (
31
        --clk,reset : in std_logic;
32
        data_in: in std_logic_vector(7 downto 0);
33
        data_out:out std_logic_vector(7 downto 0)
34
);
35
end x9;
36
 
37
architecture  beh_x9 of x9 is
38
begin
39
   process(data_in)
40
   begin
41
   case(data_in) is
42
      when x"00"=> data_out<=x"00";
43
      when x"01"=> data_out<=x"09";
44
      when x"02"=> data_out<=x"12";
45
      when x"03"=> data_out<=x"1b";
46
      when x"04"=> data_out<=x"24";
47
      when x"05"=> data_out<=x"2d";
48
      when x"06"=> data_out<=x"36";
49
      when x"07"=> data_out<=x"3f";
50
      when x"08"=> data_out<=x"48";
51
      when x"09"=> data_out<=x"41";
52
      when x"0a"=> data_out<=x"5a";
53
      when x"0b"=> data_out<=x"53";
54
      when x"0c"=> data_out<=x"6c";
55
      when x"0d"=> data_out<=x"65";
56
      when x"0e"=> data_out<=x"7e";
57
      when x"0f"=> data_out<=x"77";
58
      when x"10"=> data_out<=x"90";
59
      when x"11"=> data_out<=x"99";
60
      when x"12"=> data_out<=x"82";
61
      when x"13"=> data_out<=x"8b";
62
      when x"14"=> data_out<=x"b4";
63
      when x"15"=> data_out<=x"bd";
64
      when x"16"=> data_out<=x"a6";
65
      when x"17"=> data_out<=x"af";
66
      when x"18"=> data_out<=x"d8";
67
      when x"19"=> data_out<=x"d1";
68
      when x"1a"=> data_out<=x"ca";
69
      when x"1b"=> data_out<=x"c3";
70
      when x"1c"=> data_out<=x"fc";
71
      when x"1d"=> data_out<=x"f5";
72
      when x"1e"=> data_out<=x"ee";
73
      when x"1f"=> data_out<=x"e7";
74
      when x"20"=> data_out<=x"3b";
75
      when x"21"=> data_out<=x"32";
76
      when x"22"=> data_out<=x"29";
77
      when x"23"=> data_out<=x"20";
78
      when x"24"=> data_out<=x"1f";
79
      when x"25"=> data_out<=x"16";
80
      when x"26"=> data_out<=x"0d";
81
      when x"27"=> data_out<=x"04";
82
      when x"28"=> data_out<=x"73";
83
      when x"29"=> data_out<=x"7a";
84
      when x"2a"=> data_out<=x"61";
85
      when x"2b"=> data_out<=x"68";
86
      when x"2c"=> data_out<=x"57";
87
      when x"2d"=> data_out<=x"5e";
88
      when x"2e"=> data_out<=x"45";
89
      when x"2f"=> data_out<=x"4c";
90
      when x"30"=> data_out<=x"ab";
91
      when x"31"=> data_out<=x"a2";
92
      when x"32"=> data_out<=x"b9";
93
      when x"33"=> data_out<=x"b0";
94
      when x"34"=> data_out<=x"8f";
95
      when x"35"=> data_out<=x"86";
96
      when x"36"=> data_out<=x"9d";
97
      when x"37"=> data_out<=x"94";
98
      when x"38"=> data_out<=x"e3";
99
      when x"39"=> data_out<=x"ea";
100
      when x"3a"=> data_out<=x"f1";
101
      when x"3b"=> data_out<=x"f8";
102
      when x"3c"=> data_out<=x"c7";
103
      when x"3d"=> data_out<=x"ce";
104
      when x"3e"=> data_out<=x"d5";
105
      when x"3f"=> data_out<=x"dc";
106
      when x"40"=> data_out<=x"76";
107
      when x"41"=> data_out<=x"7f";
108
      when x"42"=> data_out<=x"64";
109
      when x"43"=> data_out<=x"6d";
110
      when x"44"=> data_out<=x"52";
111
      when x"45"=> data_out<=x"5b";
112
      when x"46"=> data_out<=x"40";
113
      when x"47"=> data_out<=x"49";
114
      when x"48"=> data_out<=x"3e";
115
      when x"49"=> data_out<=x"37";
116
      when x"4a"=> data_out<=x"2c";
117
      when x"4b"=> data_out<=x"25";
118
      when x"4c"=> data_out<=x"1a";
119
      when x"4d"=> data_out<=x"13";
120
      when x"4e"=> data_out<=x"08";
121
      when x"4f"=> data_out<=x"01";
122
      when x"50"=> data_out<=x"e6";
123
      when x"51"=> data_out<=x"ef";
124
      when x"52"=> data_out<=x"f4";
125
      when x"53"=> data_out<=x"fd";
126
      when x"54"=> data_out<=x"c2";
127
      when x"55"=> data_out<=x"cb";
128
      when x"56"=> data_out<=x"d0";
129
      when x"57"=> data_out<=x"d9";
130
      when x"58"=> data_out<=x"ae";
131
      when x"59"=> data_out<=x"a7";
132
      when x"5a"=> data_out<=x"bc";
133
      when x"5b"=> data_out<=x"b5";
134
      when x"5c"=> data_out<=x"8a";
135
      when x"5d"=> data_out<=x"83";
136
      when x"5e"=> data_out<=x"98";
137
      when x"5f"=> data_out<=x"91";
138
      when x"60"=> data_out<=x"4d";
139
      when x"61"=> data_out<=x"44";
140
      when x"62"=> data_out<=x"5f";
141
      when x"63"=> data_out<=x"56";
142
      when x"64"=> data_out<=x"69";
143
      when x"65"=> data_out<=x"60";
144
      when x"66"=> data_out<=x"7b";
145
      when x"67"=> data_out<=x"72";
146
      when x"68"=> data_out<=x"05";
147
      when x"69"=> data_out<=x"0c";
148
      when x"6a"=> data_out<=x"17";
149
      when x"6b"=> data_out<=x"1e";
150
      when x"6c"=> data_out<=x"21";
151
      when x"6d"=> data_out<=x"28";
152
      when x"6e"=> data_out<=x"33";
153
      when x"6f"=> data_out<=x"3a";
154
      when x"70"=> data_out<=x"dd";
155
      when x"71"=> data_out<=x"d4";
156
      when x"72"=> data_out<=x"cf";
157
      when x"73"=> data_out<=x"c6";
158
      when x"74"=> data_out<=x"f9";
159
      when x"75"=> data_out<=x"f0";
160
      when x"76"=> data_out<=x"eb";
161
      when x"77"=> data_out<=x"e2";
162
      when x"78"=> data_out<=x"95";
163
      when x"79"=> data_out<=x"9c";
164
      when x"7a"=> data_out<=x"87";
165
      when x"7b"=> data_out<=x"8e";
166
      when x"7c"=> data_out<=x"b1";
167
      when x"7d"=> data_out<=x"b8";
168
      when x"7e"=> data_out<=x"a3";
169
      when x"7f"=> data_out<=x"aa";
170
      when x"80"=> data_out<=x"ec";
171
      when x"81"=> data_out<=x"e5";
172
      when x"82"=> data_out<=x"fe";
173
      when x"83"=> data_out<=x"f7";
174
      when x"84"=> data_out<=x"c8";
175
      when x"85"=> data_out<=x"c1";
176
      when x"86"=> data_out<=x"da";
177
      when x"87"=> data_out<=x"d3";
178
      when x"88"=> data_out<=x"a4";
179
      when x"89"=> data_out<=x"ad";
180
      when x"8a"=> data_out<=x"b6";
181
      when x"8b"=> data_out<=x"bf";
182
      when x"8c"=> data_out<=x"80";
183
      when x"8d"=> data_out<=x"89";
184
      when x"8e"=> data_out<=x"92";
185
      when x"8f"=> data_out<=x"9b";
186
      when x"90"=> data_out<=x"7c";
187
      when x"91"=> data_out<=x"75";
188
      when x"92"=> data_out<=x"6e";
189
      when x"93"=> data_out<=x"67";
190
      when x"94"=> data_out<=x"58";
191
      when x"95"=> data_out<=x"51";
192
      when x"96"=> data_out<=x"4a";
193
      when x"97"=> data_out<=x"43";
194
      when x"98"=> data_out<=x"34";
195
      when x"99"=> data_out<=x"3d";
196
      when x"9a"=> data_out<=x"26";
197
      when x"9b"=> data_out<=x"2f";
198
      when x"9c"=> data_out<=x"10";
199
      when x"9d"=> data_out<=x"19";
200
      when x"9e"=> data_out<=x"02";
201
      when x"9f"=> data_out<=x"0b";
202
      when x"a0"=> data_out<=x"d7";
203
      when x"a1"=> data_out<=x"de";
204
      when x"a2"=> data_out<=x"c5";
205
      when x"a3"=> data_out<=x"cc";
206
      when x"a4"=> data_out<=x"f3";
207
      when x"a5"=> data_out<=x"fa";
208
      when x"a6"=> data_out<=x"e1";
209
      when x"a7"=> data_out<=x"e8";
210
      when x"a8"=> data_out<=x"9f";
211
      when x"a9"=> data_out<=x"96";
212
      when x"aa"=> data_out<=x"8d";
213
      when x"ab"=> data_out<=x"84";
214
      when x"ac"=> data_out<=x"bb";
215
      when x"ad"=> data_out<=x"b2";
216
      when x"ae"=> data_out<=x"a9";
217
      when x"af"=> data_out<=x"a0";
218
      when x"b0"=> data_out<=x"47";
219
      when x"b1"=> data_out<=x"4e";
220
      when x"b2"=> data_out<=x"55";
221
      when x"b3"=> data_out<=x"5c";
222
      when x"b4"=> data_out<=x"63";
223
      when x"b5"=> data_out<=x"6a";
224
      when x"b6"=> data_out<=x"71";
225
      when x"b7"=> data_out<=x"78";
226
      when x"b8"=> data_out<=x"0f";
227
      when x"b9"=> data_out<=x"06";
228
      when x"ba"=> data_out<=x"1d";
229
      when x"bb"=> data_out<=x"14";
230
      when x"bc"=> data_out<=x"2b";
231
      when x"bd"=> data_out<=x"22";
232
      when x"be"=> data_out<=x"39";
233
      when x"bf"=> data_out<=x"30";
234
      when x"c0"=> data_out<=x"9a";
235
      when x"c1"=> data_out<=x"93";
236
      when x"c2"=> data_out<=x"88";
237
      when x"c3"=> data_out<=x"81";
238
      when x"c4"=> data_out<=x"be";
239
      when x"c5"=> data_out<=x"b7";
240
      when x"c6"=> data_out<=x"ac";
241
      when x"c7"=> data_out<=x"a5";
242
      when x"c8"=> data_out<=x"d2";
243
      when x"c9"=> data_out<=x"db";
244
      when x"ca"=> data_out<=x"c0";
245
      when x"cb"=> data_out<=x"c9";
246
      when x"cc"=> data_out<=x"f6";
247
      when x"cd"=> data_out<=x"ff";
248
      when x"ce"=> data_out<=x"e4";
249
      when x"cf"=> data_out<=x"ed";
250
      when x"d0"=> data_out<=x"0a";
251
      when x"d1"=> data_out<=x"03";
252
      when x"d2"=> data_out<=x"18";
253
      when x"d3"=> data_out<=x"11";
254
      when x"d4"=> data_out<=x"2e";
255
      when x"d5"=> data_out<=x"27";
256
      when x"d6"=> data_out<=x"3c";
257
      when x"d7"=> data_out<=x"35";
258
      when x"d8"=> data_out<=x"42";
259
      when x"d9"=> data_out<=x"4b";
260
      when x"da"=> data_out<=x"50";
261
      when x"db"=> data_out<=x"59";
262
      when x"dc"=> data_out<=x"66";
263
      when x"dd"=> data_out<=x"6f";
264
      when x"de"=> data_out<=x"74";
265
      when x"df"=> data_out<=x"7d";
266
      when x"e0"=> data_out<=x"a1";
267
      when x"e1"=> data_out<=x"a8";
268
      when x"e2"=> data_out<=x"b3";
269
      when x"e3"=> data_out<=x"ba";
270
      when x"e4"=> data_out<=x"85";
271
      when x"e5"=> data_out<=x"8c";
272
      when x"e6"=> data_out<=x"97";
273
      when x"e7"=> data_out<=x"9e";
274
      when x"e8"=> data_out<=x"e9";
275
      when x"e9"=> data_out<=x"e0";
276
      when x"ea"=> data_out<=x"fb";
277
      when x"eb"=> data_out<=x"f2";
278
      when x"ec"=> data_out<=x"cd";
279
      when x"ed"=> data_out<=x"c4";
280
      when x"ee"=> data_out<=x"df";
281
      when x"ef"=> data_out<=x"d6";
282
      when x"f0"=> data_out<=x"31";
283
      when x"f1"=> data_out<=x"38";
284
      when x"f2"=> data_out<=x"23";
285
      when x"f3"=> data_out<=x"2a";
286
      when x"f4"=> data_out<=x"15";
287
      when x"f5"=> data_out<=x"1c";
288
      when x"f6"=> data_out<=x"07";
289
      when x"f7"=> data_out<=x"0e";
290
      when x"f8"=> data_out<=x"79";
291
      when x"f9"=> data_out<=x"70";
292
      when x"fa"=> data_out<=x"6b";
293
      when x"fb"=> data_out<=x"62";
294
      when x"fc"=> data_out<=x"5d";
295
      when x"fd"=> data_out<=x"54";
296
      when x"fe"=> data_out<=x"4f";
297
      when others=> data_out<=x"46";
298
 
299
   end case;
300
 end process;
301
 
302
end beh_x9;

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.