| 1 |
2 |
homer.hsin |
/*
|
| 2 |
|
|
* Copyright 2012, Homer Hsing <homer.hsing@gmail.com>
|
| 3 |
|
|
*
|
| 4 |
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
| 5 |
|
|
* you may not use this file except in compliance with the License.
|
| 6 |
|
|
* You may obtain a copy of the License at
|
| 7 |
|
|
*
|
| 8 |
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
| 9 |
|
|
*
|
| 10 |
|
|
* Unless required by applicable law or agreed to in writing, software
|
| 11 |
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
| 12 |
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 13 |
|
|
* See the License for the specific language governing permissions and
|
| 14 |
|
|
* limitations under the License.
|
| 15 |
|
|
*/
|
| 16 |
|
|
|
| 17 |
|
|
module table_lookup (clk, state, p0, p1, p2, p3);
|
| 18 |
|
|
input clk;
|
| 19 |
|
|
input [31:0] state;
|
| 20 |
|
|
output [31:0] p0, p1, p2, p3;
|
| 21 |
|
|
wire [7:0] b0, b1, b2, b3;
|
| 22 |
|
|
|
| 23 |
|
|
assign {b0, b1, b2, b3} = state;
|
| 24 |
|
|
T
|
| 25 |
|
|
t0 (clk, b0, {p0[23:0], p0[31:24]}),
|
| 26 |
|
|
t1 (clk, b1, {p1[15:0], p1[31:16]}),
|
| 27 |
|
|
t2 (clk, b2, {p2[7:0], p2[31:8]} ),
|
| 28 |
|
|
t3 (clk, b3, p3);
|
| 29 |
|
|
endmodule
|
| 30 |
|
|
|
| 31 |
|
|
/* substitue four bytes in a word */
|
| 32 |
|
|
module S4 (clk, in, out);
|
| 33 |
|
|
input clk;
|
| 34 |
|
|
input [31:0] in;
|
| 35 |
|
|
output [31:0] out;
|
| 36 |
|
|
|
| 37 |
|
|
S
|
| 38 |
|
|
S_0 (clk, in[31:24], out[31:24]),
|
| 39 |
|
|
S_1 (clk, in[23:16], out[23:16]),
|
| 40 |
|
|
S_2 (clk, in[15:8], out[15:8] ),
|
| 41 |
|
|
S_3 (clk, in[7:0], out[7:0] );
|
| 42 |
|
|
endmodule
|
| 43 |
|
|
|
| 44 |
|
|
/* S_box, S_box, S_box*(x+1), S_box*x */
|
| 45 |
|
|
module T (clk, in, out);
|
| 46 |
|
|
input clk;
|
| 47 |
|
|
input [7:0] in;
|
| 48 |
|
|
output reg [31:0] out;
|
| 49 |
|
|
|
| 50 |
|
|
always @ (posedge clk)
|
| 51 |
|
|
case (in)
|
| 52 |
|
|
8'h00: out <= 32'h6363a5c6;
|
| 53 |
|
|
8'h01: out <= 32'h7c7c84f8;
|
| 54 |
|
|
8'h02: out <= 32'h777799ee;
|
| 55 |
|
|
8'h03: out <= 32'h7b7b8df6;
|
| 56 |
|
|
8'h04: out <= 32'hf2f20dff;
|
| 57 |
|
|
8'h05: out <= 32'h6b6bbdd6;
|
| 58 |
|
|
8'h06: out <= 32'h6f6fb1de;
|
| 59 |
|
|
8'h07: out <= 32'hc5c55491;
|
| 60 |
|
|
8'h08: out <= 32'h30305060;
|
| 61 |
|
|
8'h09: out <= 32'h01010302;
|
| 62 |
|
|
8'h0a: out <= 32'h6767a9ce;
|
| 63 |
|
|
8'h0b: out <= 32'h2b2b7d56;
|
| 64 |
|
|
8'h0c: out <= 32'hfefe19e7;
|
| 65 |
|
|
8'h0d: out <= 32'hd7d762b5;
|
| 66 |
|
|
8'h0e: out <= 32'hababe64d;
|
| 67 |
|
|
8'h0f: out <= 32'h76769aec;
|
| 68 |
|
|
8'h10: out <= 32'hcaca458f;
|
| 69 |
|
|
8'h11: out <= 32'h82829d1f;
|
| 70 |
|
|
8'h12: out <= 32'hc9c94089;
|
| 71 |
|
|
8'h13: out <= 32'h7d7d87fa;
|
| 72 |
|
|
8'h14: out <= 32'hfafa15ef;
|
| 73 |
|
|
8'h15: out <= 32'h5959ebb2;
|
| 74 |
|
|
8'h16: out <= 32'h4747c98e;
|
| 75 |
|
|
8'h17: out <= 32'hf0f00bfb;
|
| 76 |
|
|
8'h18: out <= 32'hadadec41;
|
| 77 |
|
|
8'h19: out <= 32'hd4d467b3;
|
| 78 |
|
|
8'h1a: out <= 32'ha2a2fd5f;
|
| 79 |
|
|
8'h1b: out <= 32'hafafea45;
|
| 80 |
|
|
8'h1c: out <= 32'h9c9cbf23;
|
| 81 |
|
|
8'h1d: out <= 32'ha4a4f753;
|
| 82 |
|
|
8'h1e: out <= 32'h727296e4;
|
| 83 |
|
|
8'h1f: out <= 32'hc0c05b9b;
|
| 84 |
|
|
8'h20: out <= 32'hb7b7c275;
|
| 85 |
|
|
8'h21: out <= 32'hfdfd1ce1;
|
| 86 |
|
|
8'h22: out <= 32'h9393ae3d;
|
| 87 |
|
|
8'h23: out <= 32'h26266a4c;
|
| 88 |
|
|
8'h24: out <= 32'h36365a6c;
|
| 89 |
|
|
8'h25: out <= 32'h3f3f417e;
|
| 90 |
|
|
8'h26: out <= 32'hf7f702f5;
|
| 91 |
|
|
8'h27: out <= 32'hcccc4f83;
|
| 92 |
|
|
8'h28: out <= 32'h34345c68;
|
| 93 |
|
|
8'h29: out <= 32'ha5a5f451;
|
| 94 |
|
|
8'h2a: out <= 32'he5e534d1;
|
| 95 |
|
|
8'h2b: out <= 32'hf1f108f9;
|
| 96 |
|
|
8'h2c: out <= 32'h717193e2;
|
| 97 |
|
|
8'h2d: out <= 32'hd8d873ab;
|
| 98 |
|
|
8'h2e: out <= 32'h31315362;
|
| 99 |
|
|
8'h2f: out <= 32'h15153f2a;
|
| 100 |
|
|
8'h30: out <= 32'h04040c08;
|
| 101 |
|
|
8'h31: out <= 32'hc7c75295;
|
| 102 |
|
|
8'h32: out <= 32'h23236546;
|
| 103 |
|
|
8'h33: out <= 32'hc3c35e9d;
|
| 104 |
|
|
8'h34: out <= 32'h18182830;
|
| 105 |
|
|
8'h35: out <= 32'h9696a137;
|
| 106 |
|
|
8'h36: out <= 32'h05050f0a;
|
| 107 |
|
|
8'h37: out <= 32'h9a9ab52f;
|
| 108 |
|
|
8'h38: out <= 32'h0707090e;
|
| 109 |
|
|
8'h39: out <= 32'h12123624;
|
| 110 |
|
|
8'h3a: out <= 32'h80809b1b;
|
| 111 |
|
|
8'h3b: out <= 32'he2e23ddf;
|
| 112 |
|
|
8'h3c: out <= 32'hebeb26cd;
|
| 113 |
|
|
8'h3d: out <= 32'h2727694e;
|
| 114 |
|
|
8'h3e: out <= 32'hb2b2cd7f;
|
| 115 |
|
|
8'h3f: out <= 32'h75759fea;
|
| 116 |
|
|
8'h40: out <= 32'h09091b12;
|
| 117 |
|
|
8'h41: out <= 32'h83839e1d;
|
| 118 |
|
|
8'h42: out <= 32'h2c2c7458;
|
| 119 |
|
|
8'h43: out <= 32'h1a1a2e34;
|
| 120 |
|
|
8'h44: out <= 32'h1b1b2d36;
|
| 121 |
|
|
8'h45: out <= 32'h6e6eb2dc;
|
| 122 |
|
|
8'h46: out <= 32'h5a5aeeb4;
|
| 123 |
|
|
8'h47: out <= 32'ha0a0fb5b;
|
| 124 |
|
|
8'h48: out <= 32'h5252f6a4;
|
| 125 |
|
|
8'h49: out <= 32'h3b3b4d76;
|
| 126 |
|
|
8'h4a: out <= 32'hd6d661b7;
|
| 127 |
|
|
8'h4b: out <= 32'hb3b3ce7d;
|
| 128 |
|
|
8'h4c: out <= 32'h29297b52;
|
| 129 |
|
|
8'h4d: out <= 32'he3e33edd;
|
| 130 |
|
|
8'h4e: out <= 32'h2f2f715e;
|
| 131 |
|
|
8'h4f: out <= 32'h84849713;
|
| 132 |
|
|
8'h50: out <= 32'h5353f5a6;
|
| 133 |
|
|
8'h51: out <= 32'hd1d168b9;
|
| 134 |
|
|
8'h52: out <= 32'h00000000;
|
| 135 |
|
|
8'h53: out <= 32'heded2cc1;
|
| 136 |
|
|
8'h54: out <= 32'h20206040;
|
| 137 |
|
|
8'h55: out <= 32'hfcfc1fe3;
|
| 138 |
|
|
8'h56: out <= 32'hb1b1c879;
|
| 139 |
|
|
8'h57: out <= 32'h5b5bedb6;
|
| 140 |
|
|
8'h58: out <= 32'h6a6abed4;
|
| 141 |
|
|
8'h59: out <= 32'hcbcb468d;
|
| 142 |
|
|
8'h5a: out <= 32'hbebed967;
|
| 143 |
|
|
8'h5b: out <= 32'h39394b72;
|
| 144 |
|
|
8'h5c: out <= 32'h4a4ade94;
|
| 145 |
|
|
8'h5d: out <= 32'h4c4cd498;
|
| 146 |
|
|
8'h5e: out <= 32'h5858e8b0;
|
| 147 |
|
|
8'h5f: out <= 32'hcfcf4a85;
|
| 148 |
|
|
8'h60: out <= 32'hd0d06bbb;
|
| 149 |
|
|
8'h61: out <= 32'hefef2ac5;
|
| 150 |
|
|
8'h62: out <= 32'haaaae54f;
|
| 151 |
|
|
8'h63: out <= 32'hfbfb16ed;
|
| 152 |
|
|
8'h64: out <= 32'h4343c586;
|
| 153 |
|
|
8'h65: out <= 32'h4d4dd79a;
|
| 154 |
|
|
8'h66: out <= 32'h33335566;
|
| 155 |
|
|
8'h67: out <= 32'h85859411;
|
| 156 |
|
|
8'h68: out <= 32'h4545cf8a;
|
| 157 |
|
|
8'h69: out <= 32'hf9f910e9;
|
| 158 |
|
|
8'h6a: out <= 32'h02020604;
|
| 159 |
|
|
8'h6b: out <= 32'h7f7f81fe;
|
| 160 |
|
|
8'h6c: out <= 32'h5050f0a0;
|
| 161 |
|
|
8'h6d: out <= 32'h3c3c4478;
|
| 162 |
|
|
8'h6e: out <= 32'h9f9fba25;
|
| 163 |
|
|
8'h6f: out <= 32'ha8a8e34b;
|
| 164 |
|
|
8'h70: out <= 32'h5151f3a2;
|
| 165 |
|
|
8'h71: out <= 32'ha3a3fe5d;
|
| 166 |
|
|
8'h72: out <= 32'h4040c080;
|
| 167 |
|
|
8'h73: out <= 32'h8f8f8a05;
|
| 168 |
|
|
8'h74: out <= 32'h9292ad3f;
|
| 169 |
|
|
8'h75: out <= 32'h9d9dbc21;
|
| 170 |
|
|
8'h76: out <= 32'h38384870;
|
| 171 |
|
|
8'h77: out <= 32'hf5f504f1;
|
| 172 |
|
|
8'h78: out <= 32'hbcbcdf63;
|
| 173 |
|
|
8'h79: out <= 32'hb6b6c177;
|
| 174 |
|
|
8'h7a: out <= 32'hdada75af;
|
| 175 |
|
|
8'h7b: out <= 32'h21216342;
|
| 176 |
|
|
8'h7c: out <= 32'h10103020;
|
| 177 |
|
|
8'h7d: out <= 32'hffff1ae5;
|
| 178 |
|
|
8'h7e: out <= 32'hf3f30efd;
|
| 179 |
|
|
8'h7f: out <= 32'hd2d26dbf;
|
| 180 |
|
|
8'h80: out <= 32'hcdcd4c81;
|
| 181 |
|
|
8'h81: out <= 32'h0c0c1418;
|
| 182 |
|
|
8'h82: out <= 32'h13133526;
|
| 183 |
|
|
8'h83: out <= 32'hecec2fc3;
|
| 184 |
|
|
8'h84: out <= 32'h5f5fe1be;
|
| 185 |
|
|
8'h85: out <= 32'h9797a235;
|
| 186 |
|
|
8'h86: out <= 32'h4444cc88;
|
| 187 |
|
|
8'h87: out <= 32'h1717392e;
|
| 188 |
|
|
8'h88: out <= 32'hc4c45793;
|
| 189 |
|
|
8'h89: out <= 32'ha7a7f255;
|
| 190 |
|
|
8'h8a: out <= 32'h7e7e82fc;
|
| 191 |
|
|
8'h8b: out <= 32'h3d3d477a;
|
| 192 |
|
|
8'h8c: out <= 32'h6464acc8;
|
| 193 |
|
|
8'h8d: out <= 32'h5d5de7ba;
|
| 194 |
|
|
8'h8e: out <= 32'h19192b32;
|
| 195 |
|
|
8'h8f: out <= 32'h737395e6;
|
| 196 |
|
|
8'h90: out <= 32'h6060a0c0;
|
| 197 |
|
|
8'h91: out <= 32'h81819819;
|
| 198 |
|
|
8'h92: out <= 32'h4f4fd19e;
|
| 199 |
|
|
8'h93: out <= 32'hdcdc7fa3;
|
| 200 |
|
|
8'h94: out <= 32'h22226644;
|
| 201 |
|
|
8'h95: out <= 32'h2a2a7e54;
|
| 202 |
|
|
8'h96: out <= 32'h9090ab3b;
|
| 203 |
|
|
8'h97: out <= 32'h8888830b;
|
| 204 |
|
|
8'h98: out <= 32'h4646ca8c;
|
| 205 |
|
|
8'h99: out <= 32'heeee29c7;
|
| 206 |
|
|
8'h9a: out <= 32'hb8b8d36b;
|
| 207 |
|
|
8'h9b: out <= 32'h14143c28;
|
| 208 |
|
|
8'h9c: out <= 32'hdede79a7;
|
| 209 |
|
|
8'h9d: out <= 32'h5e5ee2bc;
|
| 210 |
|
|
8'h9e: out <= 32'h0b0b1d16;
|
| 211 |
|
|
8'h9f: out <= 32'hdbdb76ad;
|
| 212 |
|
|
8'ha0: out <= 32'he0e03bdb;
|
| 213 |
|
|
8'ha1: out <= 32'h32325664;
|
| 214 |
|
|
8'ha2: out <= 32'h3a3a4e74;
|
| 215 |
|
|
8'ha3: out <= 32'h0a0a1e14;
|
| 216 |
|
|
8'ha4: out <= 32'h4949db92;
|
| 217 |
|
|
8'ha5: out <= 32'h06060a0c;
|
| 218 |
|
|
8'ha6: out <= 32'h24246c48;
|
| 219 |
|
|
8'ha7: out <= 32'h5c5ce4b8;
|
| 220 |
|
|
8'ha8: out <= 32'hc2c25d9f;
|
| 221 |
|
|
8'ha9: out <= 32'hd3d36ebd;
|
| 222 |
|
|
8'haa: out <= 32'hacacef43;
|
| 223 |
|
|
8'hab: out <= 32'h6262a6c4;
|
| 224 |
|
|
8'hac: out <= 32'h9191a839;
|
| 225 |
|
|
8'had: out <= 32'h9595a431;
|
| 226 |
|
|
8'hae: out <= 32'he4e437d3;
|
| 227 |
|
|
8'haf: out <= 32'h79798bf2;
|
| 228 |
|
|
8'hb0: out <= 32'he7e732d5;
|
| 229 |
|
|
8'hb1: out <= 32'hc8c8438b;
|
| 230 |
|
|
8'hb2: out <= 32'h3737596e;
|
| 231 |
|
|
8'hb3: out <= 32'h6d6db7da;
|
| 232 |
|
|
8'hb4: out <= 32'h8d8d8c01;
|
| 233 |
|
|
8'hb5: out <= 32'hd5d564b1;
|
| 234 |
|
|
8'hb6: out <= 32'h4e4ed29c;
|
| 235 |
|
|
8'hb7: out <= 32'ha9a9e049;
|
| 236 |
|
|
8'hb8: out <= 32'h6c6cb4d8;
|
| 237 |
|
|
8'hb9: out <= 32'h5656faac;
|
| 238 |
|
|
8'hba: out <= 32'hf4f407f3;
|
| 239 |
|
|
8'hbb: out <= 32'heaea25cf;
|
| 240 |
|
|
8'hbc: out <= 32'h6565afca;
|
| 241 |
|
|
8'hbd: out <= 32'h7a7a8ef4;
|
| 242 |
|
|
8'hbe: out <= 32'haeaee947;
|
| 243 |
|
|
8'hbf: out <= 32'h08081810;
|
| 244 |
|
|
8'hc0: out <= 32'hbabad56f;
|
| 245 |
|
|
8'hc1: out <= 32'h787888f0;
|
| 246 |
|
|
8'hc2: out <= 32'h25256f4a;
|
| 247 |
|
|
8'hc3: out <= 32'h2e2e725c;
|
| 248 |
|
|
8'hc4: out <= 32'h1c1c2438;
|
| 249 |
|
|
8'hc5: out <= 32'ha6a6f157;
|
| 250 |
|
|
8'hc6: out <= 32'hb4b4c773;
|
| 251 |
|
|
8'hc7: out <= 32'hc6c65197;
|
| 252 |
|
|
8'hc8: out <= 32'he8e823cb;
|
| 253 |
|
|
8'hc9: out <= 32'hdddd7ca1;
|
| 254 |
|
|
8'hca: out <= 32'h74749ce8;
|
| 255 |
|
|
8'hcb: out <= 32'h1f1f213e;
|
| 256 |
|
|
8'hcc: out <= 32'h4b4bdd96;
|
| 257 |
|
|
8'hcd: out <= 32'hbdbddc61;
|
| 258 |
|
|
8'hce: out <= 32'h8b8b860d;
|
| 259 |
|
|
8'hcf: out <= 32'h8a8a850f;
|
| 260 |
|
|
8'hd0: out <= 32'h707090e0;
|
| 261 |
|
|
8'hd1: out <= 32'h3e3e427c;
|
| 262 |
|
|
8'hd2: out <= 32'hb5b5c471;
|
| 263 |
|
|
8'hd3: out <= 32'h6666aacc;
|
| 264 |
|
|
8'hd4: out <= 32'h4848d890;
|
| 265 |
|
|
8'hd5: out <= 32'h03030506;
|
| 266 |
|
|
8'hd6: out <= 32'hf6f601f7;
|
| 267 |
|
|
8'hd7: out <= 32'h0e0e121c;
|
| 268 |
|
|
8'hd8: out <= 32'h6161a3c2;
|
| 269 |
|
|
8'hd9: out <= 32'h35355f6a;
|
| 270 |
|
|
8'hda: out <= 32'h5757f9ae;
|
| 271 |
|
|
8'hdb: out <= 32'hb9b9d069;
|
| 272 |
|
|
8'hdc: out <= 32'h86869117;
|
| 273 |
|
|
8'hdd: out <= 32'hc1c15899;
|
| 274 |
|
|
8'hde: out <= 32'h1d1d273a;
|
| 275 |
|
|
8'hdf: out <= 32'h9e9eb927;
|
| 276 |
|
|
8'he0: out <= 32'he1e138d9;
|
| 277 |
|
|
8'he1: out <= 32'hf8f813eb;
|
| 278 |
|
|
8'he2: out <= 32'h9898b32b;
|
| 279 |
|
|
8'he3: out <= 32'h11113322;
|
| 280 |
|
|
8'he4: out <= 32'h6969bbd2;
|
| 281 |
|
|
8'he5: out <= 32'hd9d970a9;
|
| 282 |
|
|
8'he6: out <= 32'h8e8e8907;
|
| 283 |
|
|
8'he7: out <= 32'h9494a733;
|
| 284 |
|
|
8'he8: out <= 32'h9b9bb62d;
|
| 285 |
|
|
8'he9: out <= 32'h1e1e223c;
|
| 286 |
|
|
8'hea: out <= 32'h87879215;
|
| 287 |
|
|
8'heb: out <= 32'he9e920c9;
|
| 288 |
|
|
8'hec: out <= 32'hcece4987;
|
| 289 |
|
|
8'hed: out <= 32'h5555ffaa;
|
| 290 |
|
|
8'hee: out <= 32'h28287850;
|
| 291 |
|
|
8'hef: out <= 32'hdfdf7aa5;
|
| 292 |
|
|
8'hf0: out <= 32'h8c8c8f03;
|
| 293 |
|
|
8'hf1: out <= 32'ha1a1f859;
|
| 294 |
|
|
8'hf2: out <= 32'h89898009;
|
| 295 |
|
|
8'hf3: out <= 32'h0d0d171a;
|
| 296 |
|
|
8'hf4: out <= 32'hbfbfda65;
|
| 297 |
|
|
8'hf5: out <= 32'he6e631d7;
|
| 298 |
|
|
8'hf6: out <= 32'h4242c684;
|
| 299 |
|
|
8'hf7: out <= 32'h6868b8d0;
|
| 300 |
|
|
8'hf8: out <= 32'h4141c382;
|
| 301 |
|
|
8'hf9: out <= 32'h9999b029;
|
| 302 |
|
|
8'hfa: out <= 32'h2d2d775a;
|
| 303 |
|
|
8'hfb: out <= 32'h0f0f111e;
|
| 304 |
|
|
8'hfc: out <= 32'hb0b0cb7b;
|
| 305 |
|
|
8'hfd: out <= 32'h5454fca8;
|
| 306 |
|
|
8'hfe: out <= 32'hbbbbd66d;
|
| 307 |
|
|
8'hff: out <= 32'h16163a2c;
|
| 308 |
|
|
endcase
|
| 309 |
|
|
endmodule
|
| 310 |
|
|
|
| 311 |
|
|
/* S box */
|
| 312 |
|
|
module S (clk, in, out);
|
| 313 |
|
|
input clk;
|
| 314 |
|
|
input [7:0] in;
|
| 315 |
|
|
output reg [7:0] out;
|
| 316 |
|
|
|
| 317 |
|
|
always @ (posedge clk)
|
| 318 |
|
|
case (in)
|
| 319 |
|
|
8'h00: out <= 8'h63;
|
| 320 |
|
|
8'h01: out <= 8'h7c;
|
| 321 |
|
|
8'h02: out <= 8'h77;
|
| 322 |
|
|
8'h03: out <= 8'h7b;
|
| 323 |
|
|
8'h04: out <= 8'hf2;
|
| 324 |
|
|
8'h05: out <= 8'h6b;
|
| 325 |
|
|
8'h06: out <= 8'h6f;
|
| 326 |
|
|
8'h07: out <= 8'hc5;
|
| 327 |
|
|
8'h08: out <= 8'h30;
|
| 328 |
|
|
8'h09: out <= 8'h01;
|
| 329 |
|
|
8'h0a: out <= 8'h67;
|
| 330 |
|
|
8'h0b: out <= 8'h2b;
|
| 331 |
|
|
8'h0c: out <= 8'hfe;
|
| 332 |
|
|
8'h0d: out <= 8'hd7;
|
| 333 |
|
|
8'h0e: out <= 8'hab;
|
| 334 |
|
|
8'h0f: out <= 8'h76;
|
| 335 |
|
|
8'h10: out <= 8'hca;
|
| 336 |
|
|
8'h11: out <= 8'h82;
|
| 337 |
|
|
8'h12: out <= 8'hc9;
|
| 338 |
|
|
8'h13: out <= 8'h7d;
|
| 339 |
|
|
8'h14: out <= 8'hfa;
|
| 340 |
|
|
8'h15: out <= 8'h59;
|
| 341 |
|
|
8'h16: out <= 8'h47;
|
| 342 |
|
|
8'h17: out <= 8'hf0;
|
| 343 |
|
|
8'h18: out <= 8'had;
|
| 344 |
|
|
8'h19: out <= 8'hd4;
|
| 345 |
|
|
8'h1a: out <= 8'ha2;
|
| 346 |
|
|
8'h1b: out <= 8'haf;
|
| 347 |
|
|
8'h1c: out <= 8'h9c;
|
| 348 |
|
|
8'h1d: out <= 8'ha4;
|
| 349 |
|
|
8'h1e: out <= 8'h72;
|
| 350 |
|
|
8'h1f: out <= 8'hc0;
|
| 351 |
|
|
8'h20: out <= 8'hb7;
|
| 352 |
|
|
8'h21: out <= 8'hfd;
|
| 353 |
|
|
8'h22: out <= 8'h93;
|
| 354 |
|
|
8'h23: out <= 8'h26;
|
| 355 |
|
|
8'h24: out <= 8'h36;
|
| 356 |
|
|
8'h25: out <= 8'h3f;
|
| 357 |
|
|
8'h26: out <= 8'hf7;
|
| 358 |
|
|
8'h27: out <= 8'hcc;
|
| 359 |
|
|
8'h28: out <= 8'h34;
|
| 360 |
|
|
8'h29: out <= 8'ha5;
|
| 361 |
|
|
8'h2a: out <= 8'he5;
|
| 362 |
|
|
8'h2b: out <= 8'hf1;
|
| 363 |
|
|
8'h2c: out <= 8'h71;
|
| 364 |
|
|
8'h2d: out <= 8'hd8;
|
| 365 |
|
|
8'h2e: out <= 8'h31;
|
| 366 |
|
|
8'h2f: out <= 8'h15;
|
| 367 |
|
|
8'h30: out <= 8'h04;
|
| 368 |
|
|
8'h31: out <= 8'hc7;
|
| 369 |
|
|
8'h32: out <= 8'h23;
|
| 370 |
|
|
8'h33: out <= 8'hc3;
|
| 371 |
|
|
8'h34: out <= 8'h18;
|
| 372 |
|
|
8'h35: out <= 8'h96;
|
| 373 |
|
|
8'h36: out <= 8'h05;
|
| 374 |
|
|
8'h37: out <= 8'h9a;
|
| 375 |
|
|
8'h38: out <= 8'h07;
|
| 376 |
|
|
8'h39: out <= 8'h12;
|
| 377 |
|
|
8'h3a: out <= 8'h80;
|
| 378 |
|
|
8'h3b: out <= 8'he2;
|
| 379 |
|
|
8'h3c: out <= 8'heb;
|
| 380 |
|
|
8'h3d: out <= 8'h27;
|
| 381 |
|
|
8'h3e: out <= 8'hb2;
|
| 382 |
|
|
8'h3f: out <= 8'h75;
|
| 383 |
|
|
8'h40: out <= 8'h09;
|
| 384 |
|
|
8'h41: out <= 8'h83;
|
| 385 |
|
|
8'h42: out <= 8'h2c;
|
| 386 |
|
|
8'h43: out <= 8'h1a;
|
| 387 |
|
|
8'h44: out <= 8'h1b;
|
| 388 |
|
|
8'h45: out <= 8'h6e;
|
| 389 |
|
|
8'h46: out <= 8'h5a;
|
| 390 |
|
|
8'h47: out <= 8'ha0;
|
| 391 |
|
|
8'h48: out <= 8'h52;
|
| 392 |
|
|
8'h49: out <= 8'h3b;
|
| 393 |
|
|
8'h4a: out <= 8'hd6;
|
| 394 |
|
|
8'h4b: out <= 8'hb3;
|
| 395 |
|
|
8'h4c: out <= 8'h29;
|
| 396 |
|
|
8'h4d: out <= 8'he3;
|
| 397 |
|
|
8'h4e: out <= 8'h2f;
|
| 398 |
|
|
8'h4f: out <= 8'h84;
|
| 399 |
|
|
8'h50: out <= 8'h53;
|
| 400 |
|
|
8'h51: out <= 8'hd1;
|
| 401 |
|
|
8'h52: out <= 8'h00;
|
| 402 |
|
|
8'h53: out <= 8'hed;
|
| 403 |
|
|
8'h54: out <= 8'h20;
|
| 404 |
|
|
8'h55: out <= 8'hfc;
|
| 405 |
|
|
8'h56: out <= 8'hb1;
|
| 406 |
|
|
8'h57: out <= 8'h5b;
|
| 407 |
|
|
8'h58: out <= 8'h6a;
|
| 408 |
|
|
8'h59: out <= 8'hcb;
|
| 409 |
|
|
8'h5a: out <= 8'hbe;
|
| 410 |
|
|
8'h5b: out <= 8'h39;
|
| 411 |
|
|
8'h5c: out <= 8'h4a;
|
| 412 |
|
|
8'h5d: out <= 8'h4c;
|
| 413 |
|
|
8'h5e: out <= 8'h58;
|
| 414 |
|
|
8'h5f: out <= 8'hcf;
|
| 415 |
|
|
8'h60: out <= 8'hd0;
|
| 416 |
|
|
8'h61: out <= 8'hef;
|
| 417 |
|
|
8'h62: out <= 8'haa;
|
| 418 |
|
|
8'h63: out <= 8'hfb;
|
| 419 |
|
|
8'h64: out <= 8'h43;
|
| 420 |
|
|
8'h65: out <= 8'h4d;
|
| 421 |
|
|
8'h66: out <= 8'h33;
|
| 422 |
|
|
8'h67: out <= 8'h85;
|
| 423 |
|
|
8'h68: out <= 8'h45;
|
| 424 |
|
|
8'h69: out <= 8'hf9;
|
| 425 |
|
|
8'h6a: out <= 8'h02;
|
| 426 |
|
|
8'h6b: out <= 8'h7f;
|
| 427 |
|
|
8'h6c: out <= 8'h50;
|
| 428 |
|
|
8'h6d: out <= 8'h3c;
|
| 429 |
|
|
8'h6e: out <= 8'h9f;
|
| 430 |
|
|
8'h6f: out <= 8'ha8;
|
| 431 |
|
|
8'h70: out <= 8'h51;
|
| 432 |
|
|
8'h71: out <= 8'ha3;
|
| 433 |
|
|
8'h72: out <= 8'h40;
|
| 434 |
|
|
8'h73: out <= 8'h8f;
|
| 435 |
|
|
8'h74: out <= 8'h92;
|
| 436 |
|
|
8'h75: out <= 8'h9d;
|
| 437 |
|
|
8'h76: out <= 8'h38;
|
| 438 |
|
|
8'h77: out <= 8'hf5;
|
| 439 |
|
|
8'h78: out <= 8'hbc;
|
| 440 |
|
|
8'h79: out <= 8'hb6;
|
| 441 |
|
|
8'h7a: out <= 8'hda;
|
| 442 |
|
|
8'h7b: out <= 8'h21;
|
| 443 |
|
|
8'h7c: out <= 8'h10;
|
| 444 |
|
|
8'h7d: out <= 8'hff;
|
| 445 |
|
|
8'h7e: out <= 8'hf3;
|
| 446 |
|
|
8'h7f: out <= 8'hd2;
|
| 447 |
|
|
8'h80: out <= 8'hcd;
|
| 448 |
|
|
8'h81: out <= 8'h0c;
|
| 449 |
|
|
8'h82: out <= 8'h13;
|
| 450 |
|
|
8'h83: out <= 8'hec;
|
| 451 |
|
|
8'h84: out <= 8'h5f;
|
| 452 |
|
|
8'h85: out <= 8'h97;
|
| 453 |
|
|
8'h86: out <= 8'h44;
|
| 454 |
|
|
8'h87: out <= 8'h17;
|
| 455 |
|
|
8'h88: out <= 8'hc4;
|
| 456 |
|
|
8'h89: out <= 8'ha7;
|
| 457 |
|
|
8'h8a: out <= 8'h7e;
|
| 458 |
|
|
8'h8b: out <= 8'h3d;
|
| 459 |
|
|
8'h8c: out <= 8'h64;
|
| 460 |
|
|
8'h8d: out <= 8'h5d;
|
| 461 |
|
|
8'h8e: out <= 8'h19;
|
| 462 |
|
|
8'h8f: out <= 8'h73;
|
| 463 |
|
|
8'h90: out <= 8'h60;
|
| 464 |
|
|
8'h91: out <= 8'h81;
|
| 465 |
|
|
8'h92: out <= 8'h4f;
|
| 466 |
|
|
8'h93: out <= 8'hdc;
|
| 467 |
|
|
8'h94: out <= 8'h22;
|
| 468 |
|
|
8'h95: out <= 8'h2a;
|
| 469 |
|
|
8'h96: out <= 8'h90;
|
| 470 |
|
|
8'h97: out <= 8'h88;
|
| 471 |
|
|
8'h98: out <= 8'h46;
|
| 472 |
|
|
8'h99: out <= 8'hee;
|
| 473 |
|
|
8'h9a: out <= 8'hb8;
|
| 474 |
|
|
8'h9b: out <= 8'h14;
|
| 475 |
|
|
8'h9c: out <= 8'hde;
|
| 476 |
|
|
8'h9d: out <= 8'h5e;
|
| 477 |
|
|
8'h9e: out <= 8'h0b;
|
| 478 |
|
|
8'h9f: out <= 8'hdb;
|
| 479 |
|
|
8'ha0: out <= 8'he0;
|
| 480 |
|
|
8'ha1: out <= 8'h32;
|
| 481 |
|
|
8'ha2: out <= 8'h3a;
|
| 482 |
|
|
8'ha3: out <= 8'h0a;
|
| 483 |
|
|
8'ha4: out <= 8'h49;
|
| 484 |
|
|
8'ha5: out <= 8'h06;
|
| 485 |
|
|
8'ha6: out <= 8'h24;
|
| 486 |
|
|
8'ha7: out <= 8'h5c;
|
| 487 |
|
|
8'ha8: out <= 8'hc2;
|
| 488 |
|
|
8'ha9: out <= 8'hd3;
|
| 489 |
|
|
8'haa: out <= 8'hac;
|
| 490 |
|
|
8'hab: out <= 8'h62;
|
| 491 |
|
|
8'hac: out <= 8'h91;
|
| 492 |
|
|
8'had: out <= 8'h95;
|
| 493 |
|
|
8'hae: out <= 8'he4;
|
| 494 |
|
|
8'haf: out <= 8'h79;
|
| 495 |
|
|
8'hb0: out <= 8'he7;
|
| 496 |
|
|
8'hb1: out <= 8'hc8;
|
| 497 |
|
|
8'hb2: out <= 8'h37;
|
| 498 |
|
|
8'hb3: out <= 8'h6d;
|
| 499 |
|
|
8'hb4: out <= 8'h8d;
|
| 500 |
|
|
8'hb5: out <= 8'hd5;
|
| 501 |
|
|
8'hb6: out <= 8'h4e;
|
| 502 |
|
|
8'hb7: out <= 8'ha9;
|
| 503 |
|
|
8'hb8: out <= 8'h6c;
|
| 504 |
|
|
8'hb9: out <= 8'h56;
|
| 505 |
|
|
8'hba: out <= 8'hf4;
|
| 506 |
|
|
8'hbb: out <= 8'hea;
|
| 507 |
|
|
8'hbc: out <= 8'h65;
|
| 508 |
|
|
8'hbd: out <= 8'h7a;
|
| 509 |
|
|
8'hbe: out <= 8'hae;
|
| 510 |
|
|
8'hbf: out <= 8'h08;
|
| 511 |
|
|
8'hc0: out <= 8'hba;
|
| 512 |
|
|
8'hc1: out <= 8'h78;
|
| 513 |
|
|
8'hc2: out <= 8'h25;
|
| 514 |
|
|
8'hc3: out <= 8'h2e;
|
| 515 |
|
|
8'hc4: out <= 8'h1c;
|
| 516 |
|
|
8'hc5: out <= 8'ha6;
|
| 517 |
|
|
8'hc6: out <= 8'hb4;
|
| 518 |
|
|
8'hc7: out <= 8'hc6;
|
| 519 |
|
|
8'hc8: out <= 8'he8;
|
| 520 |
|
|
8'hc9: out <= 8'hdd;
|
| 521 |
|
|
8'hca: out <= 8'h74;
|
| 522 |
|
|
8'hcb: out <= 8'h1f;
|
| 523 |
|
|
8'hcc: out <= 8'h4b;
|
| 524 |
|
|
8'hcd: out <= 8'hbd;
|
| 525 |
|
|
8'hce: out <= 8'h8b;
|
| 526 |
|
|
8'hcf: out <= 8'h8a;
|
| 527 |
|
|
8'hd0: out <= 8'h70;
|
| 528 |
|
|
8'hd1: out <= 8'h3e;
|
| 529 |
|
|
8'hd2: out <= 8'hb5;
|
| 530 |
|
|
8'hd3: out <= 8'h66;
|
| 531 |
|
|
8'hd4: out <= 8'h48;
|
| 532 |
|
|
8'hd5: out <= 8'h03;
|
| 533 |
|
|
8'hd6: out <= 8'hf6;
|
| 534 |
|
|
8'hd7: out <= 8'h0e;
|
| 535 |
|
|
8'hd8: out <= 8'h61;
|
| 536 |
|
|
8'hd9: out <= 8'h35;
|
| 537 |
|
|
8'hda: out <= 8'h57;
|
| 538 |
|
|
8'hdb: out <= 8'hb9;
|
| 539 |
|
|
8'hdc: out <= 8'h86;
|
| 540 |
|
|
8'hdd: out <= 8'hc1;
|
| 541 |
|
|
8'hde: out <= 8'h1d;
|
| 542 |
|
|
8'hdf: out <= 8'h9e;
|
| 543 |
|
|
8'he0: out <= 8'he1;
|
| 544 |
|
|
8'he1: out <= 8'hf8;
|
| 545 |
|
|
8'he2: out <= 8'h98;
|
| 546 |
|
|
8'he3: out <= 8'h11;
|
| 547 |
|
|
8'he4: out <= 8'h69;
|
| 548 |
|
|
8'he5: out <= 8'hd9;
|
| 549 |
|
|
8'he6: out <= 8'h8e;
|
| 550 |
|
|
8'he7: out <= 8'h94;
|
| 551 |
|
|
8'he8: out <= 8'h9b;
|
| 552 |
|
|
8'he9: out <= 8'h1e;
|
| 553 |
|
|
8'hea: out <= 8'h87;
|
| 554 |
|
|
8'heb: out <= 8'he9;
|
| 555 |
|
|
8'hec: out <= 8'hce;
|
| 556 |
|
|
8'hed: out <= 8'h55;
|
| 557 |
|
|
8'hee: out <= 8'h28;
|
| 558 |
|
|
8'hef: out <= 8'hdf;
|
| 559 |
|
|
8'hf0: out <= 8'h8c;
|
| 560 |
|
|
8'hf1: out <= 8'ha1;
|
| 561 |
|
|
8'hf2: out <= 8'h89;
|
| 562 |
|
|
8'hf3: out <= 8'h0d;
|
| 563 |
|
|
8'hf4: out <= 8'hbf;
|
| 564 |
|
|
8'hf5: out <= 8'he6;
|
| 565 |
|
|
8'hf6: out <= 8'h42;
|
| 566 |
|
|
8'hf7: out <= 8'h68;
|
| 567 |
|
|
8'hf8: out <= 8'h41;
|
| 568 |
|
|
8'hf9: out <= 8'h99;
|
| 569 |
|
|
8'hfa: out <= 8'h2d;
|
| 570 |
|
|
8'hfb: out <= 8'h0f;
|
| 571 |
|
|
8'hfc: out <= 8'hb0;
|
| 572 |
|
|
8'hfd: out <= 8'h54;
|
| 573 |
|
|
8'hfe: out <= 8'hbb;
|
| 574 |
|
|
8'hff: out <= 8'h16;
|
| 575 |
|
|
endcase
|
| 576 |
|
|
endmodule
|