From b07918a0af5e077cbbde7757325ad8f620064981 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joachim=20Stro=CC=88mbergson?= Date: Fri, 28 Nov 2014 11:57:29 +0100 Subject: Reworked the sbox and inverse sbox. Slighly smaller design and much shorter source files. --- src/rtl/aes_inv_sbox.v | 1338 ++++++++++------------------------------------- src/rtl/aes_sbox.v | 1340 ++++++++++-------------------------------------- 2 files changed, 523 insertions(+), 2155 deletions(-) (limited to 'src') diff --git a/src/rtl/aes_inv_sbox.v b/src/rtl/aes_inv_sbox.v index 6a3c01a..99d0b00 100644 --- a/src/rtl/aes_inv_sbox.v +++ b/src/rtl/aes_inv_sbox.v @@ -45,1089 +45,273 @@ module aes_inv_sbox( //---------------------------------------------------------------- // Wires. //---------------------------------------------------------------- - reg [7 : 0] tmp_new_sbox0; - reg [7 : 0] tmp_new_sbox1; - reg [7 : 0] tmp_new_sbox2; - reg [7 : 0] tmp_new_sbox3; + wire [7 : 0] inv_sbox [0 : 255]; //---------------------------------------------------------------- // Concurrent assignments for ports. //---------------------------------------------------------------- - assign new_sword = {tmp_new_sbox0, tmp_new_sbox1, - tmp_new_sbox2, tmp_new_sbox3}; + assign inv_sbox[8'h00] = 8'h52; + assign inv_sbox[8'h01] = 8'h09; + assign inv_sbox[8'h02] = 8'h6a; + assign inv_sbox[8'h03] = 8'hd5; + assign inv_sbox[8'h04] = 8'h30; + assign inv_sbox[8'h05] = 8'h36; + assign inv_sbox[8'h06] = 8'ha5; + assign inv_sbox[8'h07] = 8'h38; + assign inv_sbox[8'h08] = 8'hbf; + assign inv_sbox[8'h09] = 8'h40; + assign inv_sbox[8'h0a] = 8'ha3; + assign inv_sbox[8'h0b] = 8'h9e; + assign inv_sbox[8'h0c] = 8'h81; + assign inv_sbox[8'h0d] = 8'hf3; + assign inv_sbox[8'h0e] = 8'hd7; + assign inv_sbox[8'h0f] = 8'hfb; + assign inv_sbox[8'h10] = 8'h7c; + assign inv_sbox[8'h11] = 8'he3; + assign inv_sbox[8'h12] = 8'h39; + assign inv_sbox[8'h13] = 8'h82; + assign inv_sbox[8'h14] = 8'h9b; + assign inv_sbox[8'h15] = 8'h2f; + assign inv_sbox[8'h16] = 8'hff; + assign inv_sbox[8'h17] = 8'h87; + assign inv_sbox[8'h18] = 8'h34; + assign inv_sbox[8'h19] = 8'h8e; + assign inv_sbox[8'h1a] = 8'h43; + assign inv_sbox[8'h1b] = 8'h44; + assign inv_sbox[8'h1c] = 8'hc4; + assign inv_sbox[8'h1d] = 8'hde; + assign inv_sbox[8'h1e] = 8'he9; + assign inv_sbox[8'h1f] = 8'hcb; + assign inv_sbox[8'h20] = 8'h54; + assign inv_sbox[8'h21] = 8'h7b; + assign inv_sbox[8'h22] = 8'h94; + assign inv_sbox[8'h23] = 8'h32; + assign inv_sbox[8'h24] = 8'ha6; + assign inv_sbox[8'h25] = 8'hc2; + assign inv_sbox[8'h26] = 8'h23; + assign inv_sbox[8'h27] = 8'h3d; + assign inv_sbox[8'h28] = 8'hee; + assign inv_sbox[8'h29] = 8'h4c; + assign inv_sbox[8'h2a] = 8'h95; + assign inv_sbox[8'h2b] = 8'h0b; + assign inv_sbox[8'h2c] = 8'h42; + assign inv_sbox[8'h2d] = 8'hfa; + assign inv_sbox[8'h2e] = 8'hc3; + assign inv_sbox[8'h2f] = 8'h4e; + assign inv_sbox[8'h30] = 8'h08; + assign inv_sbox[8'h31] = 8'h2e; + assign inv_sbox[8'h32] = 8'ha1; + assign inv_sbox[8'h33] = 8'h66; + assign inv_sbox[8'h34] = 8'h28; + assign inv_sbox[8'h35] = 8'hd9; + assign inv_sbox[8'h36] = 8'h24; + assign inv_sbox[8'h37] = 8'hb2; + assign inv_sbox[8'h38] = 8'h76; + assign inv_sbox[8'h39] = 8'h5b; + assign inv_sbox[8'h3a] = 8'ha2; + assign inv_sbox[8'h3b] = 8'h49; + assign inv_sbox[8'h3c] = 8'h6d; + assign inv_sbox[8'h3d] = 8'h8b; + assign inv_sbox[8'h3e] = 8'hd1; + assign inv_sbox[8'h3f] = 8'h25; + assign inv_sbox[8'h40] = 8'h72; + assign inv_sbox[8'h41] = 8'hf8; + assign inv_sbox[8'h42] = 8'hf6; + assign inv_sbox[8'h43] = 8'h64; + assign inv_sbox[8'h44] = 8'h86; + assign inv_sbox[8'h45] = 8'h68; + assign inv_sbox[8'h46] = 8'h98; + assign inv_sbox[8'h47] = 8'h16; + assign inv_sbox[8'h48] = 8'hd4; + assign inv_sbox[8'h49] = 8'ha4; + assign inv_sbox[8'h4a] = 8'h5c; + assign inv_sbox[8'h4b] = 8'hcc; + assign inv_sbox[8'h4c] = 8'h5d; + assign inv_sbox[8'h4d] = 8'h65; + assign inv_sbox[8'h4e] = 8'hb6; + assign inv_sbox[8'h4f] = 8'h92; + assign inv_sbox[8'h50] = 8'h6c; + assign inv_sbox[8'h51] = 8'h70; + assign inv_sbox[8'h52] = 8'h48; + assign inv_sbox[8'h53] = 8'h50; + assign inv_sbox[8'h54] = 8'hfd; + assign inv_sbox[8'h55] = 8'hed; + assign inv_sbox[8'h56] = 8'hb9; + assign inv_sbox[8'h57] = 8'hda; + assign inv_sbox[8'h58] = 8'h5e; + assign inv_sbox[8'h59] = 8'h15; + assign inv_sbox[8'h5a] = 8'h46; + assign inv_sbox[8'h5b] = 8'h57; + assign inv_sbox[8'h5c] = 8'ha7; + assign inv_sbox[8'h5d] = 8'h8d; + assign inv_sbox[8'h5e] = 8'h9d; + assign inv_sbox[8'h5f] = 8'h84; + assign inv_sbox[8'h60] = 8'h90; + assign inv_sbox[8'h61] = 8'hd8; + assign inv_sbox[8'h62] = 8'hab; + assign inv_sbox[8'h63] = 8'h00; + assign inv_sbox[8'h64] = 8'h8c; + assign inv_sbox[8'h65] = 8'hbc; + assign inv_sbox[8'h66] = 8'hd3; + assign inv_sbox[8'h67] = 8'h0a; + assign inv_sbox[8'h68] = 8'hf7; + assign inv_sbox[8'h69] = 8'he4; + assign inv_sbox[8'h6a] = 8'h58; + assign inv_sbox[8'h6b] = 8'h05; + assign inv_sbox[8'h6c] = 8'hb8; + assign inv_sbox[8'h6d] = 8'hb3; + assign inv_sbox[8'h6e] = 8'h45; + assign inv_sbox[8'h6f] = 8'h06; + assign inv_sbox[8'h70] = 8'hd0; + assign inv_sbox[8'h71] = 8'h2c; + assign inv_sbox[8'h72] = 8'h1e; + assign inv_sbox[8'h73] = 8'h8f; + assign inv_sbox[8'h74] = 8'hca; + assign inv_sbox[8'h75] = 8'h3f; + assign inv_sbox[8'h76] = 8'h0f; + assign inv_sbox[8'h77] = 8'h02; + assign inv_sbox[8'h78] = 8'hc1; + assign inv_sbox[8'h79] = 8'haf; + assign inv_sbox[8'h7a] = 8'hbd; + assign inv_sbox[8'h7b] = 8'h03; + assign inv_sbox[8'h7c] = 8'h01; + assign inv_sbox[8'h7d] = 8'h13; + assign inv_sbox[8'h7e] = 8'h8a; + assign inv_sbox[8'h7f] = 8'h6b; + assign inv_sbox[8'h80] = 8'h3a; + assign inv_sbox[8'h81] = 8'h91; + assign inv_sbox[8'h82] = 8'h11; + assign inv_sbox[8'h83] = 8'h41; + assign inv_sbox[8'h84] = 8'h4f; + assign inv_sbox[8'h85] = 8'h67; + assign inv_sbox[8'h86] = 8'hdc; + assign inv_sbox[8'h87] = 8'hea; + assign inv_sbox[8'h88] = 8'h97; + assign inv_sbox[8'h89] = 8'hf2; + assign inv_sbox[8'h8a] = 8'hcf; + assign inv_sbox[8'h8b] = 8'hce; + assign inv_sbox[8'h8c] = 8'hf0; + assign inv_sbox[8'h8d] = 8'hb4; + assign inv_sbox[8'h8e] = 8'he6; + assign inv_sbox[8'h8f] = 8'h73; + assign inv_sbox[8'h90] = 8'h96; + assign inv_sbox[8'h91] = 8'hac; + assign inv_sbox[8'h92] = 8'h74; + assign inv_sbox[8'h93] = 8'h22; + assign inv_sbox[8'h94] = 8'he7; + assign inv_sbox[8'h95] = 8'had; + assign inv_sbox[8'h96] = 8'h35; + assign inv_sbox[8'h97] = 8'h85; + assign inv_sbox[8'h98] = 8'he2; + assign inv_sbox[8'h99] = 8'hf9; + assign inv_sbox[8'h9a] = 8'h37; + assign inv_sbox[8'h9b] = 8'he8; + assign inv_sbox[8'h9c] = 8'h1c; + assign inv_sbox[8'h9d] = 8'h75; + assign inv_sbox[8'h9e] = 8'hdf; + assign inv_sbox[8'h9f] = 8'h6e; + assign inv_sbox[8'ha0] = 8'h47; + assign inv_sbox[8'ha1] = 8'hf1; + assign inv_sbox[8'ha2] = 8'h1a; + assign inv_sbox[8'ha3] = 8'h71; + assign inv_sbox[8'ha4] = 8'h1d; + assign inv_sbox[8'ha5] = 8'h29; + assign inv_sbox[8'ha6] = 8'hc5; + assign inv_sbox[8'ha7] = 8'h89; + assign inv_sbox[8'ha8] = 8'h6f; + assign inv_sbox[8'ha9] = 8'hb7; + assign inv_sbox[8'haa] = 8'h62; + assign inv_sbox[8'hab] = 8'h0e; + assign inv_sbox[8'hac] = 8'haa; + assign inv_sbox[8'had] = 8'h18; + assign inv_sbox[8'hae] = 8'hbe; + assign inv_sbox[8'haf] = 8'h1b; + assign inv_sbox[8'hb0] = 8'hfc; + assign inv_sbox[8'hb1] = 8'h56; + assign inv_sbox[8'hb2] = 8'h3e; + assign inv_sbox[8'hb3] = 8'h4b; + assign inv_sbox[8'hb4] = 8'hc6; + assign inv_sbox[8'hb5] = 8'hd2; + assign inv_sbox[8'hb6] = 8'h79; + assign inv_sbox[8'hb7] = 8'h20; + assign inv_sbox[8'hb8] = 8'h9a; + assign inv_sbox[8'hb9] = 8'hdb; + assign inv_sbox[8'hba] = 8'hc0; + assign inv_sbox[8'hbb] = 8'hfe; + assign inv_sbox[8'hbc] = 8'h78; + assign inv_sbox[8'hbd] = 8'hcd; + assign inv_sbox[8'hbe] = 8'h5a; + assign inv_sbox[8'hbf] = 8'hf4; + assign inv_sbox[8'hc0] = 8'h1f; + assign inv_sbox[8'hc1] = 8'hdd; + assign inv_sbox[8'hc2] = 8'ha8; + assign inv_sbox[8'hc3] = 8'h33; + assign inv_sbox[8'hc4] = 8'h88; + assign inv_sbox[8'hc5] = 8'h07; + assign inv_sbox[8'hc6] = 8'hc7; + assign inv_sbox[8'hc7] = 8'h31; + assign inv_sbox[8'hc8] = 8'hb1; + assign inv_sbox[8'hc9] = 8'h12; + assign inv_sbox[8'hca] = 8'h10; + assign inv_sbox[8'hcb] = 8'h59; + assign inv_sbox[8'hcc] = 8'h27; + assign inv_sbox[8'hcd] = 8'h80; + assign inv_sbox[8'hce] = 8'hec; + assign inv_sbox[8'hcf] = 8'h5f; + assign inv_sbox[8'hd0] = 8'h60; + assign inv_sbox[8'hd1] = 8'h51; + assign inv_sbox[8'hd2] = 8'h7f; + assign inv_sbox[8'hd3] = 8'ha9; + assign inv_sbox[8'hd4] = 8'h19; + assign inv_sbox[8'hd5] = 8'hb5; + assign inv_sbox[8'hd6] = 8'h4a; + assign inv_sbox[8'hd7] = 8'h0d; + assign inv_sbox[8'hd8] = 8'h2d; + assign inv_sbox[8'hd9] = 8'he5; + assign inv_sbox[8'hda] = 8'h7a; + assign inv_sbox[8'hdb] = 8'h9f; + assign inv_sbox[8'hdc] = 8'h93; + assign inv_sbox[8'hdd] = 8'hc9; + assign inv_sbox[8'hde] = 8'h9c; + assign inv_sbox[8'hdf] = 8'hef; + assign inv_sbox[8'he0] = 8'ha0; + assign inv_sbox[8'he1] = 8'he0; + assign inv_sbox[8'he2] = 8'h3b; + assign inv_sbox[8'he3] = 8'h4d; + assign inv_sbox[8'he4] = 8'hae; + assign inv_sbox[8'he5] = 8'h2a; + assign inv_sbox[8'he6] = 8'hf5; + assign inv_sbox[8'he7] = 8'hb0; + assign inv_sbox[8'he8] = 8'hc8; + assign inv_sbox[8'he9] = 8'heb; + assign inv_sbox[8'hea] = 8'hbb; + assign inv_sbox[8'heb] = 8'h3c; + assign inv_sbox[8'hec] = 8'h83; + assign inv_sbox[8'hed] = 8'h53; + assign inv_sbox[8'hee] = 8'h99; + assign inv_sbox[8'hef] = 8'h61; + assign inv_sbox[8'hf0] = 8'h17; + assign inv_sbox[8'hf1] = 8'h2b; + assign inv_sbox[8'hf2] = 8'h04; + assign inv_sbox[8'hf3] = 8'h7e; + assign inv_sbox[8'hf4] = 8'hba; + assign inv_sbox[8'hf5] = 8'h77; + assign inv_sbox[8'hf6] = 8'hd6; + assign inv_sbox[8'hf7] = 8'h26; + assign inv_sbox[8'hf8] = 8'he1; + assign inv_sbox[8'hf9] = 8'h69; + assign inv_sbox[8'hfa] = 8'h14; + assign inv_sbox[8'hfb] = 8'h63; + assign inv_sbox[8'hfc] = 8'h55; + assign inv_sbox[8'hfd] = 8'h21; + assign inv_sbox[8'hfe] = 8'h0c; + assign inv_sbox[8'hff] = 8'h7d; - - //---------------------------------------------------------------- - // inv_sbox_rom0 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : inv_sbox_rom0 - case(sword[31 : 24]) - 8'h00: tmp_new_sbox0 = 8'h52; - 8'h01: tmp_new_sbox0 = 8'h09; - 8'h02: tmp_new_sbox0 = 8'h6a; - 8'h03: tmp_new_sbox0 = 8'hd5; - 8'h04: tmp_new_sbox0 = 8'h30; - 8'h05: tmp_new_sbox0 = 8'h36; - 8'h06: tmp_new_sbox0 = 8'ha5; - 8'h07: tmp_new_sbox0 = 8'h38; - 8'h08: tmp_new_sbox0 = 8'hbf; - 8'h09: tmp_new_sbox0 = 8'h40; - 8'h0a: tmp_new_sbox0 = 8'ha3; - 8'h0b: tmp_new_sbox0 = 8'h9e; - 8'h0c: tmp_new_sbox0 = 8'h81; - 8'h0d: tmp_new_sbox0 = 8'hf3; - 8'h0e: tmp_new_sbox0 = 8'hd7; - 8'h0f: tmp_new_sbox0 = 8'hfb; - 8'h10: tmp_new_sbox0 = 8'h7c; - 8'h11: tmp_new_sbox0 = 8'he3; - 8'h12: tmp_new_sbox0 = 8'h39; - 8'h13: tmp_new_sbox0 = 8'h82; - 8'h14: tmp_new_sbox0 = 8'h9b; - 8'h15: tmp_new_sbox0 = 8'h2f; - 8'h16: tmp_new_sbox0 = 8'hff; - 8'h17: tmp_new_sbox0 = 8'h87; - 8'h18: tmp_new_sbox0 = 8'h34; - 8'h19: tmp_new_sbox0 = 8'h8e; - 8'h1a: tmp_new_sbox0 = 8'h43; - 8'h1b: tmp_new_sbox0 = 8'h44; - 8'h1c: tmp_new_sbox0 = 8'hc4; - 8'h1d: tmp_new_sbox0 = 8'hde; - 8'h1e: tmp_new_sbox0 = 8'he9; - 8'h1f: tmp_new_sbox0 = 8'hcb; - 8'h20: tmp_new_sbox0 = 8'h54; - 8'h21: tmp_new_sbox0 = 8'h7b; - 8'h22: tmp_new_sbox0 = 8'h94; - 8'h23: tmp_new_sbox0 = 8'h32; - 8'h24: tmp_new_sbox0 = 8'ha6; - 8'h25: tmp_new_sbox0 = 8'hc2; - 8'h26: tmp_new_sbox0 = 8'h23; - 8'h27: tmp_new_sbox0 = 8'h3d; - 8'h28: tmp_new_sbox0 = 8'hee; - 8'h29: tmp_new_sbox0 = 8'h4c; - 8'h2a: tmp_new_sbox0 = 8'h95; - 8'h2b: tmp_new_sbox0 = 8'h0b; - 8'h2c: tmp_new_sbox0 = 8'h42; - 8'h2d: tmp_new_sbox0 = 8'hfa; - 8'h2e: tmp_new_sbox0 = 8'hc3; - 8'h2f: tmp_new_sbox0 = 8'h4e; - 8'h30: tmp_new_sbox0 = 8'h08; - 8'h31: tmp_new_sbox0 = 8'h2e; - 8'h32: tmp_new_sbox0 = 8'ha1; - 8'h33: tmp_new_sbox0 = 8'h66; - 8'h34: tmp_new_sbox0 = 8'h28; - 8'h35: tmp_new_sbox0 = 8'hd9; - 8'h36: tmp_new_sbox0 = 8'h24; - 8'h37: tmp_new_sbox0 = 8'hb2; - 8'h38: tmp_new_sbox0 = 8'h76; - 8'h39: tmp_new_sbox0 = 8'h5b; - 8'h3a: tmp_new_sbox0 = 8'ha2; - 8'h3b: tmp_new_sbox0 = 8'h49; - 8'h3c: tmp_new_sbox0 = 8'h6d; - 8'h3d: tmp_new_sbox0 = 8'h8b; - 8'h3e: tmp_new_sbox0 = 8'hd1; - 8'h3f: tmp_new_sbox0 = 8'h25; - 8'h40: tmp_new_sbox0 = 8'h72; - 8'h41: tmp_new_sbox0 = 8'hf8; - 8'h42: tmp_new_sbox0 = 8'hf6; - 8'h43: tmp_new_sbox0 = 8'h64; - 8'h44: tmp_new_sbox0 = 8'h86; - 8'h45: tmp_new_sbox0 = 8'h68; - 8'h46: tmp_new_sbox0 = 8'h98; - 8'h47: tmp_new_sbox0 = 8'h16; - 8'h48: tmp_new_sbox0 = 8'hd4; - 8'h49: tmp_new_sbox0 = 8'ha4; - 8'h4a: tmp_new_sbox0 = 8'h5c; - 8'h4b: tmp_new_sbox0 = 8'hcc; - 8'h4c: tmp_new_sbox0 = 8'h5d; - 8'h4d: tmp_new_sbox0 = 8'h65; - 8'h4e: tmp_new_sbox0 = 8'hb6; - 8'h4f: tmp_new_sbox0 = 8'h92; - 8'h50: tmp_new_sbox0 = 8'h6c; - 8'h51: tmp_new_sbox0 = 8'h70; - 8'h52: tmp_new_sbox0 = 8'h48; - 8'h53: tmp_new_sbox0 = 8'h50; - 8'h54: tmp_new_sbox0 = 8'hfd; - 8'h55: tmp_new_sbox0 = 8'hed; - 8'h56: tmp_new_sbox0 = 8'hb9; - 8'h57: tmp_new_sbox0 = 8'hda; - 8'h58: tmp_new_sbox0 = 8'h5e; - 8'h59: tmp_new_sbox0 = 8'h15; - 8'h5a: tmp_new_sbox0 = 8'h46; - 8'h5b: tmp_new_sbox0 = 8'h57; - 8'h5c: tmp_new_sbox0 = 8'ha7; - 8'h5d: tmp_new_sbox0 = 8'h8d; - 8'h5e: tmp_new_sbox0 = 8'h9d; - 8'h5f: tmp_new_sbox0 = 8'h84; - 8'h60: tmp_new_sbox0 = 8'h90; - 8'h61: tmp_new_sbox0 = 8'hd8; - 8'h62: tmp_new_sbox0 = 8'hab; - 8'h63: tmp_new_sbox0 = 8'h00; - 8'h64: tmp_new_sbox0 = 8'h8c; - 8'h65: tmp_new_sbox0 = 8'hbc; - 8'h66: tmp_new_sbox0 = 8'hd3; - 8'h67: tmp_new_sbox0 = 8'h0a; - 8'h68: tmp_new_sbox0 = 8'hf7; - 8'h69: tmp_new_sbox0 = 8'he4; - 8'h6a: tmp_new_sbox0 = 8'h58; - 8'h6b: tmp_new_sbox0 = 8'h05; - 8'h6c: tmp_new_sbox0 = 8'hb8; - 8'h6d: tmp_new_sbox0 = 8'hb3; - 8'h6e: tmp_new_sbox0 = 8'h45; - 8'h6f: tmp_new_sbox0 = 8'h06; - 8'h70: tmp_new_sbox0 = 8'hd0; - 8'h71: tmp_new_sbox0 = 8'h2c; - 8'h72: tmp_new_sbox0 = 8'h1e; - 8'h73: tmp_new_sbox0 = 8'h8f; - 8'h74: tmp_new_sbox0 = 8'hca; - 8'h75: tmp_new_sbox0 = 8'h3f; - 8'h76: tmp_new_sbox0 = 8'h0f; - 8'h77: tmp_new_sbox0 = 8'h02; - 8'h78: tmp_new_sbox0 = 8'hc1; - 8'h79: tmp_new_sbox0 = 8'haf; - 8'h7a: tmp_new_sbox0 = 8'hbd; - 8'h7b: tmp_new_sbox0 = 8'h03; - 8'h7c: tmp_new_sbox0 = 8'h01; - 8'h7d: tmp_new_sbox0 = 8'h13; - 8'h7e: tmp_new_sbox0 = 8'h8a; - 8'h7f: tmp_new_sbox0 = 8'h6b; - 8'h80: tmp_new_sbox0 = 8'h3a; - 8'h81: tmp_new_sbox0 = 8'h91; - 8'h82: tmp_new_sbox0 = 8'h11; - 8'h83: tmp_new_sbox0 = 8'h41; - 8'h84: tmp_new_sbox0 = 8'h4f; - 8'h85: tmp_new_sbox0 = 8'h67; - 8'h86: tmp_new_sbox0 = 8'hdc; - 8'h87: tmp_new_sbox0 = 8'hea; - 8'h88: tmp_new_sbox0 = 8'h97; - 8'h89: tmp_new_sbox0 = 8'hf2; - 8'h8a: tmp_new_sbox0 = 8'hcf; - 8'h8b: tmp_new_sbox0 = 8'hce; - 8'h8c: tmp_new_sbox0 = 8'hf0; - 8'h8d: tmp_new_sbox0 = 8'hb4; - 8'h8e: tmp_new_sbox0 = 8'he6; - 8'h8f: tmp_new_sbox0 = 8'h73; - 8'h90: tmp_new_sbox0 = 8'h96; - 8'h91: tmp_new_sbox0 = 8'hac; - 8'h92: tmp_new_sbox0 = 8'h74; - 8'h93: tmp_new_sbox0 = 8'h22; - 8'h94: tmp_new_sbox0 = 8'he7; - 8'h95: tmp_new_sbox0 = 8'had; - 8'h96: tmp_new_sbox0 = 8'h35; - 8'h97: tmp_new_sbox0 = 8'h85; - 8'h98: tmp_new_sbox0 = 8'he2; - 8'h99: tmp_new_sbox0 = 8'hf9; - 8'h9a: tmp_new_sbox0 = 8'h37; - 8'h9b: tmp_new_sbox0 = 8'he8; - 8'h9c: tmp_new_sbox0 = 8'h1c; - 8'h9d: tmp_new_sbox0 = 8'h75; - 8'h9e: tmp_new_sbox0 = 8'hdf; - 8'h9f: tmp_new_sbox0 = 8'h6e; - 8'ha0: tmp_new_sbox0 = 8'h47; - 8'ha1: tmp_new_sbox0 = 8'hf1; - 8'ha2: tmp_new_sbox0 = 8'h1a; - 8'ha3: tmp_new_sbox0 = 8'h71; - 8'ha4: tmp_new_sbox0 = 8'h1d; - 8'ha5: tmp_new_sbox0 = 8'h29; - 8'ha6: tmp_new_sbox0 = 8'hc5; - 8'ha7: tmp_new_sbox0 = 8'h89; - 8'ha8: tmp_new_sbox0 = 8'h6f; - 8'ha9: tmp_new_sbox0 = 8'hb7; - 8'haa: tmp_new_sbox0 = 8'h62; - 8'hab: tmp_new_sbox0 = 8'h0e; - 8'hac: tmp_new_sbox0 = 8'haa; - 8'had: tmp_new_sbox0 = 8'h18; - 8'hae: tmp_new_sbox0 = 8'hbe; - 8'haf: tmp_new_sbox0 = 8'h1b; - 8'hb0: tmp_new_sbox0 = 8'hfc; - 8'hb1: tmp_new_sbox0 = 8'h56; - 8'hb2: tmp_new_sbox0 = 8'h3e; - 8'hb3: tmp_new_sbox0 = 8'h4b; - 8'hb4: tmp_new_sbox0 = 8'hc6; - 8'hb5: tmp_new_sbox0 = 8'hd2; - 8'hb6: tmp_new_sbox0 = 8'h79; - 8'hb7: tmp_new_sbox0 = 8'h20; - 8'hb8: tmp_new_sbox0 = 8'h9a; - 8'hb9: tmp_new_sbox0 = 8'hdb; - 8'hba: tmp_new_sbox0 = 8'hc0; - 8'hbb: tmp_new_sbox0 = 8'hfe; - 8'hbc: tmp_new_sbox0 = 8'h78; - 8'hbd: tmp_new_sbox0 = 8'hcd; - 8'hbe: tmp_new_sbox0 = 8'h5a; - 8'hbf: tmp_new_sbox0 = 8'hf4; - 8'hc0: tmp_new_sbox0 = 8'h1f; - 8'hc1: tmp_new_sbox0 = 8'hdd; - 8'hc2: tmp_new_sbox0 = 8'ha8; - 8'hc3: tmp_new_sbox0 = 8'h33; - 8'hc4: tmp_new_sbox0 = 8'h88; - 8'hc5: tmp_new_sbox0 = 8'h07; - 8'hc6: tmp_new_sbox0 = 8'hc7; - 8'hc7: tmp_new_sbox0 = 8'h31; - 8'hc8: tmp_new_sbox0 = 8'hb1; - 8'hc9: tmp_new_sbox0 = 8'h12; - 8'hca: tmp_new_sbox0 = 8'h10; - 8'hcb: tmp_new_sbox0 = 8'h59; - 8'hcc: tmp_new_sbox0 = 8'h27; - 8'hcd: tmp_new_sbox0 = 8'h80; - 8'hce: tmp_new_sbox0 = 8'hec; - 8'hcf: tmp_new_sbox0 = 8'h5f; - 8'hd0: tmp_new_sbox0 = 8'h60; - 8'hd1: tmp_new_sbox0 = 8'h51; - 8'hd2: tmp_new_sbox0 = 8'h7f; - 8'hd3: tmp_new_sbox0 = 8'ha9; - 8'hd4: tmp_new_sbox0 = 8'h19; - 8'hd5: tmp_new_sbox0 = 8'hb5; - 8'hd6: tmp_new_sbox0 = 8'h4a; - 8'hd7: tmp_new_sbox0 = 8'h0d; - 8'hd8: tmp_new_sbox0 = 8'h2d; - 8'hd9: tmp_new_sbox0 = 8'he5; - 8'hda: tmp_new_sbox0 = 8'h7a; - 8'hdb: tmp_new_sbox0 = 8'h9f; - 8'hdc: tmp_new_sbox0 = 8'h93; - 8'hdd: tmp_new_sbox0 = 8'hc9; - 8'hde: tmp_new_sbox0 = 8'h9c; - 8'hdf: tmp_new_sbox0 = 8'hef; - 8'he0: tmp_new_sbox0 = 8'ha0; - 8'he1: tmp_new_sbox0 = 8'he0; - 8'he2: tmp_new_sbox0 = 8'h3b; - 8'he3: tmp_new_sbox0 = 8'h4d; - 8'he4: tmp_new_sbox0 = 8'hae; - 8'he5: tmp_new_sbox0 = 8'h2a; - 8'he6: tmp_new_sbox0 = 8'hf5; - 8'he7: tmp_new_sbox0 = 8'hb0; - 8'he8: tmp_new_sbox0 = 8'hc8; - 8'he9: tmp_new_sbox0 = 8'heb; - 8'hea: tmp_new_sbox0 = 8'hbb; - 8'heb: tmp_new_sbox0 = 8'h3c; - 8'hec: tmp_new_sbox0 = 8'h83; - 8'hed: tmp_new_sbox0 = 8'h53; - 8'hee: tmp_new_sbox0 = 8'h99; - 8'hef: tmp_new_sbox0 = 8'h61; - 8'hf0: tmp_new_sbox0 = 8'h17; - 8'hf1: tmp_new_sbox0 = 8'h2b; - 8'hf2: tmp_new_sbox0 = 8'h04; - 8'hf3: tmp_new_sbox0 = 8'h7e; - 8'hf4: tmp_new_sbox0 = 8'hba; - 8'hf5: tmp_new_sbox0 = 8'h77; - 8'hf6: tmp_new_sbox0 = 8'hd6; - 8'hf7: tmp_new_sbox0 = 8'h26; - 8'hf8: tmp_new_sbox0 = 8'he1; - 8'hf9: tmp_new_sbox0 = 8'h69; - 8'hfa: tmp_new_sbox0 = 8'h14; - 8'hfb: tmp_new_sbox0 = 8'h63; - 8'hfc: tmp_new_sbox0 = 8'h55; - 8'hfd: tmp_new_sbox0 = 8'h21; - 8'hfe: tmp_new_sbox0 = 8'h0c; - 8'hff: tmp_new_sbox0 = 8'h7d; - endcase // case (sword) - end // inv_sbox_rom0 - - - //---------------------------------------------------------------- - // inv_sbox_rom1 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : inv_sbox_rom1 - case(sword[23 : 16]) - 8'h00: tmp_new_sbox1 = 8'h52; - 8'h01: tmp_new_sbox1 = 8'h09; - 8'h02: tmp_new_sbox1 = 8'h6a; - 8'h03: tmp_new_sbox1 = 8'hd5; - 8'h04: tmp_new_sbox1 = 8'h30; - 8'h05: tmp_new_sbox1 = 8'h36; - 8'h06: tmp_new_sbox1 = 8'ha5; - 8'h07: tmp_new_sbox1 = 8'h38; - 8'h08: tmp_new_sbox1 = 8'hbf; - 8'h09: tmp_new_sbox1 = 8'h40; - 8'h0a: tmp_new_sbox1 = 8'ha3; - 8'h0b: tmp_new_sbox1 = 8'h9e; - 8'h0c: tmp_new_sbox1 = 8'h81; - 8'h0d: tmp_new_sbox1 = 8'hf3; - 8'h0e: tmp_new_sbox1 = 8'hd7; - 8'h0f: tmp_new_sbox1 = 8'hfb; - 8'h10: tmp_new_sbox1 = 8'h7c; - 8'h11: tmp_new_sbox1 = 8'he3; - 8'h12: tmp_new_sbox1 = 8'h39; - 8'h13: tmp_new_sbox1 = 8'h82; - 8'h14: tmp_new_sbox1 = 8'h9b; - 8'h15: tmp_new_sbox1 = 8'h2f; - 8'h16: tmp_new_sbox1 = 8'hff; - 8'h17: tmp_new_sbox1 = 8'h87; - 8'h18: tmp_new_sbox1 = 8'h34; - 8'h19: tmp_new_sbox1 = 8'h8e; - 8'h1a: tmp_new_sbox1 = 8'h43; - 8'h1b: tmp_new_sbox1 = 8'h44; - 8'h1c: tmp_new_sbox1 = 8'hc4; - 8'h1d: tmp_new_sbox1 = 8'hde; - 8'h1e: tmp_new_sbox1 = 8'he9; - 8'h1f: tmp_new_sbox1 = 8'hcb; - 8'h20: tmp_new_sbox1 = 8'h54; - 8'h21: tmp_new_sbox1 = 8'h7b; - 8'h22: tmp_new_sbox1 = 8'h94; - 8'h23: tmp_new_sbox1 = 8'h32; - 8'h24: tmp_new_sbox1 = 8'ha6; - 8'h25: tmp_new_sbox1 = 8'hc2; - 8'h26: tmp_new_sbox1 = 8'h23; - 8'h27: tmp_new_sbox1 = 8'h3d; - 8'h28: tmp_new_sbox1 = 8'hee; - 8'h29: tmp_new_sbox1 = 8'h4c; - 8'h2a: tmp_new_sbox1 = 8'h95; - 8'h2b: tmp_new_sbox1 = 8'h0b; - 8'h2c: tmp_new_sbox1 = 8'h42; - 8'h2d: tmp_new_sbox1 = 8'hfa; - 8'h2e: tmp_new_sbox1 = 8'hc3; - 8'h2f: tmp_new_sbox1 = 8'h4e; - 8'h30: tmp_new_sbox1 = 8'h08; - 8'h31: tmp_new_sbox1 = 8'h2e; - 8'h32: tmp_new_sbox1 = 8'ha1; - 8'h33: tmp_new_sbox1 = 8'h66; - 8'h34: tmp_new_sbox1 = 8'h28; - 8'h35: tmp_new_sbox1 = 8'hd9; - 8'h36: tmp_new_sbox1 = 8'h24; - 8'h37: tmp_new_sbox1 = 8'hb2; - 8'h38: tmp_new_sbox1 = 8'h76; - 8'h39: tmp_new_sbox1 = 8'h5b; - 8'h3a: tmp_new_sbox1 = 8'ha2; - 8'h3b: tmp_new_sbox1 = 8'h49; - 8'h3c: tmp_new_sbox1 = 8'h6d; - 8'h3d: tmp_new_sbox1 = 8'h8b; - 8'h3e: tmp_new_sbox1 = 8'hd1; - 8'h3f: tmp_new_sbox1 = 8'h25; - 8'h40: tmp_new_sbox1 = 8'h72; - 8'h41: tmp_new_sbox1 = 8'hf8; - 8'h42: tmp_new_sbox1 = 8'hf6; - 8'h43: tmp_new_sbox1 = 8'h64; - 8'h44: tmp_new_sbox1 = 8'h86; - 8'h45: tmp_new_sbox1 = 8'h68; - 8'h46: tmp_new_sbox1 = 8'h98; - 8'h47: tmp_new_sbox1 = 8'h16; - 8'h48: tmp_new_sbox1 = 8'hd4; - 8'h49: tmp_new_sbox1 = 8'ha4; - 8'h4a: tmp_new_sbox1 = 8'h5c; - 8'h4b: tmp_new_sbox1 = 8'hcc; - 8'h4c: tmp_new_sbox1 = 8'h5d; - 8'h4d: tmp_new_sbox1 = 8'h65; - 8'h4e: tmp_new_sbox1 = 8'hb6; - 8'h4f: tmp_new_sbox1 = 8'h92; - 8'h50: tmp_new_sbox1 = 8'h6c; - 8'h51: tmp_new_sbox1 = 8'h70; - 8'h52: tmp_new_sbox1 = 8'h48; - 8'h53: tmp_new_sbox1 = 8'h50; - 8'h54: tmp_new_sbox1 = 8'hfd; - 8'h55: tmp_new_sbox1 = 8'hed; - 8'h56: tmp_new_sbox1 = 8'hb9; - 8'h57: tmp_new_sbox1 = 8'hda; - 8'h58: tmp_new_sbox1 = 8'h5e; - 8'h59: tmp_new_sbox1 = 8'h15; - 8'h5a: tmp_new_sbox1 = 8'h46; - 8'h5b: tmp_new_sbox1 = 8'h57; - 8'h5c: tmp_new_sbox1 = 8'ha7; - 8'h5d: tmp_new_sbox1 = 8'h8d; - 8'h5e: tmp_new_sbox1 = 8'h9d; - 8'h5f: tmp_new_sbox1 = 8'h84; - 8'h60: tmp_new_sbox1 = 8'h90; - 8'h61: tmp_new_sbox1 = 8'hd8; - 8'h62: tmp_new_sbox1 = 8'hab; - 8'h63: tmp_new_sbox1 = 8'h00; - 8'h64: tmp_new_sbox1 = 8'h8c; - 8'h65: tmp_new_sbox1 = 8'hbc; - 8'h66: tmp_new_sbox1 = 8'hd3; - 8'h67: tmp_new_sbox1 = 8'h0a; - 8'h68: tmp_new_sbox1 = 8'hf7; - 8'h69: tmp_new_sbox1 = 8'he4; - 8'h6a: tmp_new_sbox1 = 8'h58; - 8'h6b: tmp_new_sbox1 = 8'h05; - 8'h6c: tmp_new_sbox1 = 8'hb8; - 8'h6d: tmp_new_sbox1 = 8'hb3; - 8'h6e: tmp_new_sbox1 = 8'h45; - 8'h6f: tmp_new_sbox1 = 8'h06; - 8'h70: tmp_new_sbox1 = 8'hd0; - 8'h71: tmp_new_sbox1 = 8'h2c; - 8'h72: tmp_new_sbox1 = 8'h1e; - 8'h73: tmp_new_sbox1 = 8'h8f; - 8'h74: tmp_new_sbox1 = 8'hca; - 8'h75: tmp_new_sbox1 = 8'h3f; - 8'h76: tmp_new_sbox1 = 8'h0f; - 8'h77: tmp_new_sbox1 = 8'h02; - 8'h78: tmp_new_sbox1 = 8'hc1; - 8'h79: tmp_new_sbox1 = 8'haf; - 8'h7a: tmp_new_sbox1 = 8'hbd; - 8'h7b: tmp_new_sbox1 = 8'h03; - 8'h7c: tmp_new_sbox1 = 8'h01; - 8'h7d: tmp_new_sbox1 = 8'h13; - 8'h7e: tmp_new_sbox1 = 8'h8a; - 8'h7f: tmp_new_sbox1 = 8'h6b; - 8'h80: tmp_new_sbox1 = 8'h3a; - 8'h81: tmp_new_sbox1 = 8'h91; - 8'h82: tmp_new_sbox1 = 8'h11; - 8'h83: tmp_new_sbox1 = 8'h41; - 8'h84: tmp_new_sbox1 = 8'h4f; - 8'h85: tmp_new_sbox1 = 8'h67; - 8'h86: tmp_new_sbox1 = 8'hdc; - 8'h87: tmp_new_sbox1 = 8'hea; - 8'h88: tmp_new_sbox1 = 8'h97; - 8'h89: tmp_new_sbox1 = 8'hf2; - 8'h8a: tmp_new_sbox1 = 8'hcf; - 8'h8b: tmp_new_sbox1 = 8'hce; - 8'h8c: tmp_new_sbox1 = 8'hf0; - 8'h8d: tmp_new_sbox1 = 8'hb4; - 8'h8e: tmp_new_sbox1 = 8'he6; - 8'h8f: tmp_new_sbox1 = 8'h73; - 8'h90: tmp_new_sbox1 = 8'h96; - 8'h91: tmp_new_sbox1 = 8'hac; - 8'h92: tmp_new_sbox1 = 8'h74; - 8'h93: tmp_new_sbox1 = 8'h22; - 8'h94: tmp_new_sbox1 = 8'he7; - 8'h95: tmp_new_sbox1 = 8'had; - 8'h96: tmp_new_sbox1 = 8'h35; - 8'h97: tmp_new_sbox1 = 8'h85; - 8'h98: tmp_new_sbox1 = 8'he2; - 8'h99: tmp_new_sbox1 = 8'hf9; - 8'h9a: tmp_new_sbox1 = 8'h37; - 8'h9b: tmp_new_sbox1 = 8'he8; - 8'h9c: tmp_new_sbox1 = 8'h1c; - 8'h9d: tmp_new_sbox1 = 8'h75; - 8'h9e: tmp_new_sbox1 = 8'hdf; - 8'h9f: tmp_new_sbox1 = 8'h6e; - 8'ha0: tmp_new_sbox1 = 8'h47; - 8'ha1: tmp_new_sbox1 = 8'hf1; - 8'ha2: tmp_new_sbox1 = 8'h1a; - 8'ha3: tmp_new_sbox1 = 8'h71; - 8'ha4: tmp_new_sbox1 = 8'h1d; - 8'ha5: tmp_new_sbox1 = 8'h29; - 8'ha6: tmp_new_sbox1 = 8'hc5; - 8'ha7: tmp_new_sbox1 = 8'h89; - 8'ha8: tmp_new_sbox1 = 8'h6f; - 8'ha9: tmp_new_sbox1 = 8'hb7; - 8'haa: tmp_new_sbox1 = 8'h62; - 8'hab: tmp_new_sbox1 = 8'h0e; - 8'hac: tmp_new_sbox1 = 8'haa; - 8'had: tmp_new_sbox1 = 8'h18; - 8'hae: tmp_new_sbox1 = 8'hbe; - 8'haf: tmp_new_sbox1 = 8'h1b; - 8'hb0: tmp_new_sbox1 = 8'hfc; - 8'hb1: tmp_new_sbox1 = 8'h56; - 8'hb2: tmp_new_sbox1 = 8'h3e; - 8'hb3: tmp_new_sbox1 = 8'h4b; - 8'hb4: tmp_new_sbox1 = 8'hc6; - 8'hb5: tmp_new_sbox1 = 8'hd2; - 8'hb6: tmp_new_sbox1 = 8'h79; - 8'hb7: tmp_new_sbox1 = 8'h20; - 8'hb8: tmp_new_sbox1 = 8'h9a; - 8'hb9: tmp_new_sbox1 = 8'hdb; - 8'hba: tmp_new_sbox1 = 8'hc0; - 8'hbb: tmp_new_sbox1 = 8'hfe; - 8'hbc: tmp_new_sbox1 = 8'h78; - 8'hbd: tmp_new_sbox1 = 8'hcd; - 8'hbe: tmp_new_sbox1 = 8'h5a; - 8'hbf: tmp_new_sbox1 = 8'hf4; - 8'hc0: tmp_new_sbox1 = 8'h1f; - 8'hc1: tmp_new_sbox1 = 8'hdd; - 8'hc2: tmp_new_sbox1 = 8'ha8; - 8'hc3: tmp_new_sbox1 = 8'h33; - 8'hc4: tmp_new_sbox1 = 8'h88; - 8'hc5: tmp_new_sbox1 = 8'h07; - 8'hc6: tmp_new_sbox1 = 8'hc7; - 8'hc7: tmp_new_sbox1 = 8'h31; - 8'hc8: tmp_new_sbox1 = 8'hb1; - 8'hc9: tmp_new_sbox1 = 8'h12; - 8'hca: tmp_new_sbox1 = 8'h10; - 8'hcb: tmp_new_sbox1 = 8'h59; - 8'hcc: tmp_new_sbox1 = 8'h27; - 8'hcd: tmp_new_sbox1 = 8'h80; - 8'hce: tmp_new_sbox1 = 8'hec; - 8'hcf: tmp_new_sbox1 = 8'h5f; - 8'hd0: tmp_new_sbox1 = 8'h60; - 8'hd1: tmp_new_sbox1 = 8'h51; - 8'hd2: tmp_new_sbox1 = 8'h7f; - 8'hd3: tmp_new_sbox1 = 8'ha9; - 8'hd4: tmp_new_sbox1 = 8'h19; - 8'hd5: tmp_new_sbox1 = 8'hb5; - 8'hd6: tmp_new_sbox1 = 8'h4a; - 8'hd7: tmp_new_sbox1 = 8'h0d; - 8'hd8: tmp_new_sbox1 = 8'h2d; - 8'hd9: tmp_new_sbox1 = 8'he5; - 8'hda: tmp_new_sbox1 = 8'h7a; - 8'hdb: tmp_new_sbox1 = 8'h9f; - 8'hdc: tmp_new_sbox1 = 8'h93; - 8'hdd: tmp_new_sbox1 = 8'hc9; - 8'hde: tmp_new_sbox1 = 8'h9c; - 8'hdf: tmp_new_sbox1 = 8'hef; - 8'he0: tmp_new_sbox1 = 8'ha0; - 8'he1: tmp_new_sbox1 = 8'he0; - 8'he2: tmp_new_sbox1 = 8'h3b; - 8'he3: tmp_new_sbox1 = 8'h4d; - 8'he4: tmp_new_sbox1 = 8'hae; - 8'he5: tmp_new_sbox1 = 8'h2a; - 8'he6: tmp_new_sbox1 = 8'hf5; - 8'he7: tmp_new_sbox1 = 8'hb0; - 8'he8: tmp_new_sbox1 = 8'hc8; - 8'he9: tmp_new_sbox1 = 8'heb; - 8'hea: tmp_new_sbox1 = 8'hbb; - 8'heb: tmp_new_sbox1 = 8'h3c; - 8'hec: tmp_new_sbox1 = 8'h83; - 8'hed: tmp_new_sbox1 = 8'h53; - 8'hee: tmp_new_sbox1 = 8'h99; - 8'hef: tmp_new_sbox1 = 8'h61; - 8'hf0: tmp_new_sbox1 = 8'h17; - 8'hf1: tmp_new_sbox1 = 8'h2b; - 8'hf2: tmp_new_sbox1 = 8'h04; - 8'hf3: tmp_new_sbox1 = 8'h7e; - 8'hf4: tmp_new_sbox1 = 8'hba; - 8'hf5: tmp_new_sbox1 = 8'h77; - 8'hf6: tmp_new_sbox1 = 8'hd6; - 8'hf7: tmp_new_sbox1 = 8'h26; - 8'hf8: tmp_new_sbox1 = 8'he1; - 8'hf9: tmp_new_sbox1 = 8'h69; - 8'hfa: tmp_new_sbox1 = 8'h14; - 8'hfb: tmp_new_sbox1 = 8'h63; - 8'hfc: tmp_new_sbox1 = 8'h55; - 8'hfd: tmp_new_sbox1 = 8'h21; - 8'hfe: tmp_new_sbox1 = 8'h0c; - 8'hff: tmp_new_sbox1 = 8'h7d; - endcase // case (sword) - end // inv_sbox_rom1 - - - //---------------------------------------------------------------- - // inv_sbox_rom2 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : inv_sbox_rom2 - case(sword[15 : 8]) - 8'h00: tmp_new_sbox2 = 8'h52; - 8'h01: tmp_new_sbox2 = 8'h09; - 8'h02: tmp_new_sbox2 = 8'h6a; - 8'h03: tmp_new_sbox2 = 8'hd5; - 8'h04: tmp_new_sbox2 = 8'h30; - 8'h05: tmp_new_sbox2 = 8'h36; - 8'h06: tmp_new_sbox2 = 8'ha5; - 8'h07: tmp_new_sbox2 = 8'h38; - 8'h08: tmp_new_sbox2 = 8'hbf; - 8'h09: tmp_new_sbox2 = 8'h40; - 8'h0a: tmp_new_sbox2 = 8'ha3; - 8'h0b: tmp_new_sbox2 = 8'h9e; - 8'h0c: tmp_new_sbox2 = 8'h81; - 8'h0d: tmp_new_sbox2 = 8'hf3; - 8'h0e: tmp_new_sbox2 = 8'hd7; - 8'h0f: tmp_new_sbox2 = 8'hfb; - 8'h10: tmp_new_sbox2 = 8'h7c; - 8'h11: tmp_new_sbox2 = 8'he3; - 8'h12: tmp_new_sbox2 = 8'h39; - 8'h13: tmp_new_sbox2 = 8'h82; - 8'h14: tmp_new_sbox2 = 8'h9b; - 8'h15: tmp_new_sbox2 = 8'h2f; - 8'h16: tmp_new_sbox2 = 8'hff; - 8'h17: tmp_new_sbox2 = 8'h87; - 8'h18: tmp_new_sbox2 = 8'h34; - 8'h19: tmp_new_sbox2 = 8'h8e; - 8'h1a: tmp_new_sbox2 = 8'h43; - 8'h1b: tmp_new_sbox2 = 8'h44; - 8'h1c: tmp_new_sbox2 = 8'hc4; - 8'h1d: tmp_new_sbox2 = 8'hde; - 8'h1e: tmp_new_sbox2 = 8'he9; - 8'h1f: tmp_new_sbox2 = 8'hcb; - 8'h20: tmp_new_sbox2 = 8'h54; - 8'h21: tmp_new_sbox2 = 8'h7b; - 8'h22: tmp_new_sbox2 = 8'h94; - 8'h23: tmp_new_sbox2 = 8'h32; - 8'h24: tmp_new_sbox2 = 8'ha6; - 8'h25: tmp_new_sbox2 = 8'hc2; - 8'h26: tmp_new_sbox2 = 8'h23; - 8'h27: tmp_new_sbox2 = 8'h3d; - 8'h28: tmp_new_sbox2 = 8'hee; - 8'h29: tmp_new_sbox2 = 8'h4c; - 8'h2a: tmp_new_sbox2 = 8'h95; - 8'h2b: tmp_new_sbox2 = 8'h0b; - 8'h2c: tmp_new_sbox2 = 8'h42; - 8'h2d: tmp_new_sbox2 = 8'hfa; - 8'h2e: tmp_new_sbox2 = 8'hc3; - 8'h2f: tmp_new_sbox2 = 8'h4e; - 8'h30: tmp_new_sbox2 = 8'h08; - 8'h31: tmp_new_sbox2 = 8'h2e; - 8'h32: tmp_new_sbox2 = 8'ha1; - 8'h33: tmp_new_sbox2 = 8'h66; - 8'h34: tmp_new_sbox2 = 8'h28; - 8'h35: tmp_new_sbox2 = 8'hd9; - 8'h36: tmp_new_sbox2 = 8'h24; - 8'h37: tmp_new_sbox2 = 8'hb2; - 8'h38: tmp_new_sbox2 = 8'h76; - 8'h39: tmp_new_sbox2 = 8'h5b; - 8'h3a: tmp_new_sbox2 = 8'ha2; - 8'h3b: tmp_new_sbox2 = 8'h49; - 8'h3c: tmp_new_sbox2 = 8'h6d; - 8'h3d: tmp_new_sbox2 = 8'h8b; - 8'h3e: tmp_new_sbox2 = 8'hd1; - 8'h3f: tmp_new_sbox2 = 8'h25; - 8'h40: tmp_new_sbox2 = 8'h72; - 8'h41: tmp_new_sbox2 = 8'hf8; - 8'h42: tmp_new_sbox2 = 8'hf6; - 8'h43: tmp_new_sbox2 = 8'h64; - 8'h44: tmp_new_sbox2 = 8'h86; - 8'h45: tmp_new_sbox2 = 8'h68; - 8'h46: tmp_new_sbox2 = 8'h98; - 8'h47: tmp_new_sbox2 = 8'h16; - 8'h48: tmp_new_sbox2 = 8'hd4; - 8'h49: tmp_new_sbox2 = 8'ha4; - 8'h4a: tmp_new_sbox2 = 8'h5c; - 8'h4b: tmp_new_sbox2 = 8'hcc; - 8'h4c: tmp_new_sbox2 = 8'h5d; - 8'h4d: tmp_new_sbox2 = 8'h65; - 8'h4e: tmp_new_sbox2 = 8'hb6; - 8'h4f: tmp_new_sbox2 = 8'h92; - 8'h50: tmp_new_sbox2 = 8'h6c; - 8'h51: tmp_new_sbox2 = 8'h70; - 8'h52: tmp_new_sbox2 = 8'h48; - 8'h53: tmp_new_sbox2 = 8'h50; - 8'h54: tmp_new_sbox2 = 8'hfd; - 8'h55: tmp_new_sbox2 = 8'hed; - 8'h56: tmp_new_sbox2 = 8'hb9; - 8'h57: tmp_new_sbox2 = 8'hda; - 8'h58: tmp_new_sbox2 = 8'h5e; - 8'h59: tmp_new_sbox2 = 8'h15; - 8'h5a: tmp_new_sbox2 = 8'h46; - 8'h5b: tmp_new_sbox2 = 8'h57; - 8'h5c: tmp_new_sbox2 = 8'ha7; - 8'h5d: tmp_new_sbox2 = 8'h8d; - 8'h5e: tmp_new_sbox2 = 8'h9d; - 8'h5f: tmp_new_sbox2 = 8'h84; - 8'h60: tmp_new_sbox2 = 8'h90; - 8'h61: tmp_new_sbox2 = 8'hd8; - 8'h62: tmp_new_sbox2 = 8'hab; - 8'h63: tmp_new_sbox2 = 8'h00; - 8'h64: tmp_new_sbox2 = 8'h8c; - 8'h65: tmp_new_sbox2 = 8'hbc; - 8'h66: tmp_new_sbox2 = 8'hd3; - 8'h67: tmp_new_sbox2 = 8'h0a; - 8'h68: tmp_new_sbox2 = 8'hf7; - 8'h69: tmp_new_sbox2 = 8'he4; - 8'h6a: tmp_new_sbox2 = 8'h58; - 8'h6b: tmp_new_sbox2 = 8'h05; - 8'h6c: tmp_new_sbox2 = 8'hb8; - 8'h6d: tmp_new_sbox2 = 8'hb3; - 8'h6e: tmp_new_sbox2 = 8'h45; - 8'h6f: tmp_new_sbox2 = 8'h06; - 8'h70: tmp_new_sbox2 = 8'hd0; - 8'h71: tmp_new_sbox2 = 8'h2c; - 8'h72: tmp_new_sbox2 = 8'h1e; - 8'h73: tmp_new_sbox2 = 8'h8f; - 8'h74: tmp_new_sbox2 = 8'hca; - 8'h75: tmp_new_sbox2 = 8'h3f; - 8'h76: tmp_new_sbox2 = 8'h0f; - 8'h77: tmp_new_sbox2 = 8'h02; - 8'h78: tmp_new_sbox2 = 8'hc1; - 8'h79: tmp_new_sbox2 = 8'haf; - 8'h7a: tmp_new_sbox2 = 8'hbd; - 8'h7b: tmp_new_sbox2 = 8'h03; - 8'h7c: tmp_new_sbox2 = 8'h01; - 8'h7d: tmp_new_sbox2 = 8'h13; - 8'h7e: tmp_new_sbox2 = 8'h8a; - 8'h7f: tmp_new_sbox2 = 8'h6b; - 8'h80: tmp_new_sbox2 = 8'h3a; - 8'h81: tmp_new_sbox2 = 8'h91; - 8'h82: tmp_new_sbox2 = 8'h11; - 8'h83: tmp_new_sbox2 = 8'h41; - 8'h84: tmp_new_sbox2 = 8'h4f; - 8'h85: tmp_new_sbox2 = 8'h67; - 8'h86: tmp_new_sbox2 = 8'hdc; - 8'h87: tmp_new_sbox2 = 8'hea; - 8'h88: tmp_new_sbox2 = 8'h97; - 8'h89: tmp_new_sbox2 = 8'hf2; - 8'h8a: tmp_new_sbox2 = 8'hcf; - 8'h8b: tmp_new_sbox2 = 8'hce; - 8'h8c: tmp_new_sbox2 = 8'hf0; - 8'h8d: tmp_new_sbox2 = 8'hb4; - 8'h8e: tmp_new_sbox2 = 8'he6; - 8'h8f: tmp_new_sbox2 = 8'h73; - 8'h90: tmp_new_sbox2 = 8'h96; - 8'h91: tmp_new_sbox2 = 8'hac; - 8'h92: tmp_new_sbox2 = 8'h74; - 8'h93: tmp_new_sbox2 = 8'h22; - 8'h94: tmp_new_sbox2 = 8'he7; - 8'h95: tmp_new_sbox2 = 8'had; - 8'h96: tmp_new_sbox2 = 8'h35; - 8'h97: tmp_new_sbox2 = 8'h85; - 8'h98: tmp_new_sbox2 = 8'he2; - 8'h99: tmp_new_sbox2 = 8'hf9; - 8'h9a: tmp_new_sbox2 = 8'h37; - 8'h9b: tmp_new_sbox2 = 8'he8; - 8'h9c: tmp_new_sbox2 = 8'h1c; - 8'h9d: tmp_new_sbox2 = 8'h75; - 8'h9e: tmp_new_sbox2 = 8'hdf; - 8'h9f: tmp_new_sbox2 = 8'h6e; - 8'ha0: tmp_new_sbox2 = 8'h47; - 8'ha1: tmp_new_sbox2 = 8'hf1; - 8'ha2: tmp_new_sbox2 = 8'h1a; - 8'ha3: tmp_new_sbox2 = 8'h71; - 8'ha4: tmp_new_sbox2 = 8'h1d; - 8'ha5: tmp_new_sbox2 = 8'h29; - 8'ha6: tmp_new_sbox2 = 8'hc5; - 8'ha7: tmp_new_sbox2 = 8'h89; - 8'ha8: tmp_new_sbox2 = 8'h6f; - 8'ha9: tmp_new_sbox2 = 8'hb7; - 8'haa: tmp_new_sbox2 = 8'h62; - 8'hab: tmp_new_sbox2 = 8'h0e; - 8'hac: tmp_new_sbox2 = 8'haa; - 8'had: tmp_new_sbox2 = 8'h18; - 8'hae: tmp_new_sbox2 = 8'hbe; - 8'haf: tmp_new_sbox2 = 8'h1b; - 8'hb0: tmp_new_sbox2 = 8'hfc; - 8'hb1: tmp_new_sbox2 = 8'h56; - 8'hb2: tmp_new_sbox2 = 8'h3e; - 8'hb3: tmp_new_sbox2 = 8'h4b; - 8'hb4: tmp_new_sbox2 = 8'hc6; - 8'hb5: tmp_new_sbox2 = 8'hd2; - 8'hb6: tmp_new_sbox2 = 8'h79; - 8'hb7: tmp_new_sbox2 = 8'h20; - 8'hb8: tmp_new_sbox2 = 8'h9a; - 8'hb9: tmp_new_sbox2 = 8'hdb; - 8'hba: tmp_new_sbox2 = 8'hc0; - 8'hbb: tmp_new_sbox2 = 8'hfe; - 8'hbc: tmp_new_sbox2 = 8'h78; - 8'hbd: tmp_new_sbox2 = 8'hcd; - 8'hbe: tmp_new_sbox2 = 8'h5a; - 8'hbf: tmp_new_sbox2 = 8'hf4; - 8'hc0: tmp_new_sbox2 = 8'h1f; - 8'hc1: tmp_new_sbox2 = 8'hdd; - 8'hc2: tmp_new_sbox2 = 8'ha8; - 8'hc3: tmp_new_sbox2 = 8'h33; - 8'hc4: tmp_new_sbox2 = 8'h88; - 8'hc5: tmp_new_sbox2 = 8'h07; - 8'hc6: tmp_new_sbox2 = 8'hc7; - 8'hc7: tmp_new_sbox2 = 8'h31; - 8'hc8: tmp_new_sbox2 = 8'hb1; - 8'hc9: tmp_new_sbox2 = 8'h12; - 8'hca: tmp_new_sbox2 = 8'h10; - 8'hcb: tmp_new_sbox2 = 8'h59; - 8'hcc: tmp_new_sbox2 = 8'h27; - 8'hcd: tmp_new_sbox2 = 8'h80; - 8'hce: tmp_new_sbox2 = 8'hec; - 8'hcf: tmp_new_sbox2 = 8'h5f; - 8'hd0: tmp_new_sbox2 = 8'h60; - 8'hd1: tmp_new_sbox2 = 8'h51; - 8'hd2: tmp_new_sbox2 = 8'h7f; - 8'hd3: tmp_new_sbox2 = 8'ha9; - 8'hd4: tmp_new_sbox2 = 8'h19; - 8'hd5: tmp_new_sbox2 = 8'hb5; - 8'hd6: tmp_new_sbox2 = 8'h4a; - 8'hd7: tmp_new_sbox2 = 8'h0d; - 8'hd8: tmp_new_sbox2 = 8'h2d; - 8'hd9: tmp_new_sbox2 = 8'he5; - 8'hda: tmp_new_sbox2 = 8'h7a; - 8'hdb: tmp_new_sbox2 = 8'h9f; - 8'hdc: tmp_new_sbox2 = 8'h93; - 8'hdd: tmp_new_sbox2 = 8'hc9; - 8'hde: tmp_new_sbox2 = 8'h9c; - 8'hdf: tmp_new_sbox2 = 8'hef; - 8'he0: tmp_new_sbox2 = 8'ha0; - 8'he1: tmp_new_sbox2 = 8'he0; - 8'he2: tmp_new_sbox2 = 8'h3b; - 8'he3: tmp_new_sbox2 = 8'h4d; - 8'he4: tmp_new_sbox2 = 8'hae; - 8'he5: tmp_new_sbox2 = 8'h2a; - 8'he6: tmp_new_sbox2 = 8'hf5; - 8'he7: tmp_new_sbox2 = 8'hb0; - 8'he8: tmp_new_sbox2 = 8'hc8; - 8'he9: tmp_new_sbox2 = 8'heb; - 8'hea: tmp_new_sbox2 = 8'hbb; - 8'heb: tmp_new_sbox2 = 8'h3c; - 8'hec: tmp_new_sbox2 = 8'h83; - 8'hed: tmp_new_sbox2 = 8'h53; - 8'hee: tmp_new_sbox2 = 8'h99; - 8'hef: tmp_new_sbox2 = 8'h61; - 8'hf0: tmp_new_sbox2 = 8'h17; - 8'hf1: tmp_new_sbox2 = 8'h2b; - 8'hf2: tmp_new_sbox2 = 8'h04; - 8'hf3: tmp_new_sbox2 = 8'h7e; - 8'hf4: tmp_new_sbox2 = 8'hba; - 8'hf5: tmp_new_sbox2 = 8'h77; - 8'hf6: tmp_new_sbox2 = 8'hd6; - 8'hf7: tmp_new_sbox2 = 8'h26; - 8'hf8: tmp_new_sbox2 = 8'he1; - 8'hf9: tmp_new_sbox2 = 8'h69; - 8'hfa: tmp_new_sbox2 = 8'h14; - 8'hfb: tmp_new_sbox2 = 8'h63; - 8'hfc: tmp_new_sbox2 = 8'h55; - 8'hfd: tmp_new_sbox2 = 8'h21; - 8'hfe: tmp_new_sbox2 = 8'h0c; - 8'hff: tmp_new_sbox2 = 8'h7d; - endcase // case (sword) - end // inv_sbox_rom2 - - - //---------------------------------------------------------------- - // inv_sbox_rom3 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : inv_sbox_rom3 - case(sword[7 : 0]) - 8'h00: tmp_new_sbox3 = 8'h52; - 8'h01: tmp_new_sbox3 = 8'h09; - 8'h02: tmp_new_sbox3 = 8'h6a; - 8'h03: tmp_new_sbox3 = 8'hd5; - 8'h04: tmp_new_sbox3 = 8'h30; - 8'h05: tmp_new_sbox3 = 8'h36; - 8'h06: tmp_new_sbox3 = 8'ha5; - 8'h07: tmp_new_sbox3 = 8'h38; - 8'h08: tmp_new_sbox3 = 8'hbf; - 8'h09: tmp_new_sbox3 = 8'h40; - 8'h0a: tmp_new_sbox3 = 8'ha3; - 8'h0b: tmp_new_sbox3 = 8'h9e; - 8'h0c: tmp_new_sbox3 = 8'h81; - 8'h0d: tmp_new_sbox3 = 8'hf3; - 8'h0e: tmp_new_sbox3 = 8'hd7; - 8'h0f: tmp_new_sbox3 = 8'hfb; - 8'h10: tmp_new_sbox3 = 8'h7c; - 8'h11: tmp_new_sbox3 = 8'he3; - 8'h12: tmp_new_sbox3 = 8'h39; - 8'h13: tmp_new_sbox3 = 8'h82; - 8'h14: tmp_new_sbox3 = 8'h9b; - 8'h15: tmp_new_sbox3 = 8'h2f; - 8'h16: tmp_new_sbox3 = 8'hff; - 8'h17: tmp_new_sbox3 = 8'h87; - 8'h18: tmp_new_sbox3 = 8'h34; - 8'h19: tmp_new_sbox3 = 8'h8e; - 8'h1a: tmp_new_sbox3 = 8'h43; - 8'h1b: tmp_new_sbox3 = 8'h44; - 8'h1c: tmp_new_sbox3 = 8'hc4; - 8'h1d: tmp_new_sbox3 = 8'hde; - 8'h1e: tmp_new_sbox3 = 8'he9; - 8'h1f: tmp_new_sbox3 = 8'hcb; - 8'h20: tmp_new_sbox3 = 8'h54; - 8'h21: tmp_new_sbox3 = 8'h7b; - 8'h22: tmp_new_sbox3 = 8'h94; - 8'h23: tmp_new_sbox3 = 8'h32; - 8'h24: tmp_new_sbox3 = 8'ha6; - 8'h25: tmp_new_sbox3 = 8'hc2; - 8'h26: tmp_new_sbox3 = 8'h23; - 8'h27: tmp_new_sbox3 = 8'h3d; - 8'h28: tmp_new_sbox3 = 8'hee; - 8'h29: tmp_new_sbox3 = 8'h4c; - 8'h2a: tmp_new_sbox3 = 8'h95; - 8'h2b: tmp_new_sbox3 = 8'h0b; - 8'h2c: tmp_new_sbox3 = 8'h42; - 8'h2d: tmp_new_sbox3 = 8'hfa; - 8'h2e: tmp_new_sbox3 = 8'hc3; - 8'h2f: tmp_new_sbox3 = 8'h4e; - 8'h30: tmp_new_sbox3 = 8'h08; - 8'h31: tmp_new_sbox3 = 8'h2e; - 8'h32: tmp_new_sbox3 = 8'ha1; - 8'h33: tmp_new_sbox3 = 8'h66; - 8'h34: tmp_new_sbox3 = 8'h28; - 8'h35: tmp_new_sbox3 = 8'hd9; - 8'h36: tmp_new_sbox3 = 8'h24; - 8'h37: tmp_new_sbox3 = 8'hb2; - 8'h38: tmp_new_sbox3 = 8'h76; - 8'h39: tmp_new_sbox3 = 8'h5b; - 8'h3a: tmp_new_sbox3 = 8'ha2; - 8'h3b: tmp_new_sbox3 = 8'h49; - 8'h3c: tmp_new_sbox3 = 8'h6d; - 8'h3d: tmp_new_sbox3 = 8'h8b; - 8'h3e: tmp_new_sbox3 = 8'hd1; - 8'h3f: tmp_new_sbox3 = 8'h25; - 8'h40: tmp_new_sbox3 = 8'h72; - 8'h41: tmp_new_sbox3 = 8'hf8; - 8'h42: tmp_new_sbox3 = 8'hf6; - 8'h43: tmp_new_sbox3 = 8'h64; - 8'h44: tmp_new_sbox3 = 8'h86; - 8'h45: tmp_new_sbox3 = 8'h68; - 8'h46: tmp_new_sbox3 = 8'h98; - 8'h47: tmp_new_sbox3 = 8'h16; - 8'h48: tmp_new_sbox3 = 8'hd4; - 8'h49: tmp_new_sbox3 = 8'ha4; - 8'h4a: tmp_new_sbox3 = 8'h5c; - 8'h4b: tmp_new_sbox3 = 8'hcc; - 8'h4c: tmp_new_sbox3 = 8'h5d; - 8'h4d: tmp_new_sbox3 = 8'h65; - 8'h4e: tmp_new_sbox3 = 8'hb6; - 8'h4f: tmp_new_sbox3 = 8'h92; - 8'h50: tmp_new_sbox3 = 8'h6c; - 8'h51: tmp_new_sbox3 = 8'h70; - 8'h52: tmp_new_sbox3 = 8'h48; - 8'h53: tmp_new_sbox3 = 8'h50; - 8'h54: tmp_new_sbox3 = 8'hfd; - 8'h55: tmp_new_sbox3 = 8'hed; - 8'h56: tmp_new_sbox3 = 8'hb9; - 8'h57: tmp_new_sbox3 = 8'hda; - 8'h58: tmp_new_sbox3 = 8'h5e; - 8'h59: tmp_new_sbox3 = 8'h15; - 8'h5a: tmp_new_sbox3 = 8'h46; - 8'h5b: tmp_new_sbox3 = 8'h57; - 8'h5c: tmp_new_sbox3 = 8'ha7; - 8'h5d: tmp_new_sbox3 = 8'h8d; - 8'h5e: tmp_new_sbox3 = 8'h9d; - 8'h5f: tmp_new_sbox3 = 8'h84; - 8'h60: tmp_new_sbox3 = 8'h90; - 8'h61: tmp_new_sbox3 = 8'hd8; - 8'h62: tmp_new_sbox3 = 8'hab; - 8'h63: tmp_new_sbox3 = 8'h00; - 8'h64: tmp_new_sbox3 = 8'h8c; - 8'h65: tmp_new_sbox3 = 8'hbc; - 8'h66: tmp_new_sbox3 = 8'hd3; - 8'h67: tmp_new_sbox3 = 8'h0a; - 8'h68: tmp_new_sbox3 = 8'hf7; - 8'h69: tmp_new_sbox3 = 8'he4; - 8'h6a: tmp_new_sbox3 = 8'h58; - 8'h6b: tmp_new_sbox3 = 8'h05; - 8'h6c: tmp_new_sbox3 = 8'hb8; - 8'h6d: tmp_new_sbox3 = 8'hb3; - 8'h6e: tmp_new_sbox3 = 8'h45; - 8'h6f: tmp_new_sbox3 = 8'h06; - 8'h70: tmp_new_sbox3 = 8'hd0; - 8'h71: tmp_new_sbox3 = 8'h2c; - 8'h72: tmp_new_sbox3 = 8'h1e; - 8'h73: tmp_new_sbox3 = 8'h8f; - 8'h74: tmp_new_sbox3 = 8'hca; - 8'h75: tmp_new_sbox3 = 8'h3f; - 8'h76: tmp_new_sbox3 = 8'h0f; - 8'h77: tmp_new_sbox3 = 8'h02; - 8'h78: tmp_new_sbox3 = 8'hc1; - 8'h79: tmp_new_sbox3 = 8'haf; - 8'h7a: tmp_new_sbox3 = 8'hbd; - 8'h7b: tmp_new_sbox3 = 8'h03; - 8'h7c: tmp_new_sbox3 = 8'h01; - 8'h7d: tmp_new_sbox3 = 8'h13; - 8'h7e: tmp_new_sbox3 = 8'h8a; - 8'h7f: tmp_new_sbox3 = 8'h6b; - 8'h80: tmp_new_sbox3 = 8'h3a; - 8'h81: tmp_new_sbox3 = 8'h91; - 8'h82: tmp_new_sbox3 = 8'h11; - 8'h83: tmp_new_sbox3 = 8'h41; - 8'h84: tmp_new_sbox3 = 8'h4f; - 8'h85: tmp_new_sbox3 = 8'h67; - 8'h86: tmp_new_sbox3 = 8'hdc; - 8'h87: tmp_new_sbox3 = 8'hea; - 8'h88: tmp_new_sbox3 = 8'h97; - 8'h89: tmp_new_sbox3 = 8'hf2; - 8'h8a: tmp_new_sbox3 = 8'hcf; - 8'h8b: tmp_new_sbox3 = 8'hce; - 8'h8c: tmp_new_sbox3 = 8'hf0; - 8'h8d: tmp_new_sbox3 = 8'hb4; - 8'h8e: tmp_new_sbox3 = 8'he6; - 8'h8f: tmp_new_sbox3 = 8'h73; - 8'h90: tmp_new_sbox3 = 8'h96; - 8'h91: tmp_new_sbox3 = 8'hac; - 8'h92: tmp_new_sbox3 = 8'h74; - 8'h93: tmp_new_sbox3 = 8'h22; - 8'h94: tmp_new_sbox3 = 8'he7; - 8'h95: tmp_new_sbox3 = 8'had; - 8'h96: tmp_new_sbox3 = 8'h35; - 8'h97: tmp_new_sbox3 = 8'h85; - 8'h98: tmp_new_sbox3 = 8'he2; - 8'h99: tmp_new_sbox3 = 8'hf9; - 8'h9a: tmp_new_sbox3 = 8'h37; - 8'h9b: tmp_new_sbox3 = 8'he8; - 8'h9c: tmp_new_sbox3 = 8'h1c; - 8'h9d: tmp_new_sbox3 = 8'h75; - 8'h9e: tmp_new_sbox3 = 8'hdf; - 8'h9f: tmp_new_sbox3 = 8'h6e; - 8'ha0: tmp_new_sbox3 = 8'h47; - 8'ha1: tmp_new_sbox3 = 8'hf1; - 8'ha2: tmp_new_sbox3 = 8'h1a; - 8'ha3: tmp_new_sbox3 = 8'h71; - 8'ha4: tmp_new_sbox3 = 8'h1d; - 8'ha5: tmp_new_sbox3 = 8'h29; - 8'ha6: tmp_new_sbox3 = 8'hc5; - 8'ha7: tmp_new_sbox3 = 8'h89; - 8'ha8: tmp_new_sbox3 = 8'h6f; - 8'ha9: tmp_new_sbox3 = 8'hb7; - 8'haa: tmp_new_sbox3 = 8'h62; - 8'hab: tmp_new_sbox3 = 8'h0e; - 8'hac: tmp_new_sbox3 = 8'haa; - 8'had: tmp_new_sbox3 = 8'h18; - 8'hae: tmp_new_sbox3 = 8'hbe; - 8'haf: tmp_new_sbox3 = 8'h1b; - 8'hb0: tmp_new_sbox3 = 8'hfc; - 8'hb1: tmp_new_sbox3 = 8'h56; - 8'hb2: tmp_new_sbox3 = 8'h3e; - 8'hb3: tmp_new_sbox3 = 8'h4b; - 8'hb4: tmp_new_sbox3 = 8'hc6; - 8'hb5: tmp_new_sbox3 = 8'hd2; - 8'hb6: tmp_new_sbox3 = 8'h79; - 8'hb7: tmp_new_sbox3 = 8'h20; - 8'hb8: tmp_new_sbox3 = 8'h9a; - 8'hb9: tmp_new_sbox3 = 8'hdb; - 8'hba: tmp_new_sbox3 = 8'hc0; - 8'hbb: tmp_new_sbox3 = 8'hfe; - 8'hbc: tmp_new_sbox3 = 8'h78; - 8'hbd: tmp_new_sbox3 = 8'hcd; - 8'hbe: tmp_new_sbox3 = 8'h5a; - 8'hbf: tmp_new_sbox3 = 8'hf4; - 8'hc0: tmp_new_sbox3 = 8'h1f; - 8'hc1: tmp_new_sbox3 = 8'hdd; - 8'hc2: tmp_new_sbox3 = 8'ha8; - 8'hc3: tmp_new_sbox3 = 8'h33; - 8'hc4: tmp_new_sbox3 = 8'h88; - 8'hc5: tmp_new_sbox3 = 8'h07; - 8'hc6: tmp_new_sbox3 = 8'hc7; - 8'hc7: tmp_new_sbox3 = 8'h31; - 8'hc8: tmp_new_sbox3 = 8'hb1; - 8'hc9: tmp_new_sbox3 = 8'h12; - 8'hca: tmp_new_sbox3 = 8'h10; - 8'hcb: tmp_new_sbox3 = 8'h59; - 8'hcc: tmp_new_sbox3 = 8'h27; - 8'hcd: tmp_new_sbox3 = 8'h80; - 8'hce: tmp_new_sbox3 = 8'hec; - 8'hcf: tmp_new_sbox3 = 8'h5f; - 8'hd0: tmp_new_sbox3 = 8'h60; - 8'hd1: tmp_new_sbox3 = 8'h51; - 8'hd2: tmp_new_sbox3 = 8'h7f; - 8'hd3: tmp_new_sbox3 = 8'ha9; - 8'hd4: tmp_new_sbox3 = 8'h19; - 8'hd5: tmp_new_sbox3 = 8'hb5; - 8'hd6: tmp_new_sbox3 = 8'h4a; - 8'hd7: tmp_new_sbox3 = 8'h0d; - 8'hd8: tmp_new_sbox3 = 8'h2d; - 8'hd9: tmp_new_sbox3 = 8'he5; - 8'hda: tmp_new_sbox3 = 8'h7a; - 8'hdb: tmp_new_sbox3 = 8'h9f; - 8'hdc: tmp_new_sbox3 = 8'h93; - 8'hdd: tmp_new_sbox3 = 8'hc9; - 8'hde: tmp_new_sbox3 = 8'h9c; - 8'hdf: tmp_new_sbox3 = 8'hef; - 8'he0: tmp_new_sbox3 = 8'ha0; - 8'he1: tmp_new_sbox3 = 8'he0; - 8'he2: tmp_new_sbox3 = 8'h3b; - 8'he3: tmp_new_sbox3 = 8'h4d; - 8'he4: tmp_new_sbox3 = 8'hae; - 8'he5: tmp_new_sbox3 = 8'h2a; - 8'he6: tmp_new_sbox3 = 8'hf5; - 8'he7: tmp_new_sbox3 = 8'hb0; - 8'he8: tmp_new_sbox3 = 8'hc8; - 8'he9: tmp_new_sbox3 = 8'heb; - 8'hea: tmp_new_sbox3 = 8'hbb; - 8'heb: tmp_new_sbox3 = 8'h3c; - 8'hec: tmp_new_sbox3 = 8'h83; - 8'hed: tmp_new_sbox3 = 8'h53; - 8'hee: tmp_new_sbox3 = 8'h99; - 8'hef: tmp_new_sbox3 = 8'h61; - 8'hf0: tmp_new_sbox3 = 8'h17; - 8'hf1: tmp_new_sbox3 = 8'h2b; - 8'hf2: tmp_new_sbox3 = 8'h04; - 8'hf3: tmp_new_sbox3 = 8'h7e; - 8'hf4: tmp_new_sbox3 = 8'hba; - 8'hf5: tmp_new_sbox3 = 8'h77; - 8'hf6: tmp_new_sbox3 = 8'hd6; - 8'hf7: tmp_new_sbox3 = 8'h26; - 8'hf8: tmp_new_sbox3 = 8'he1; - 8'hf9: tmp_new_sbox3 = 8'h69; - 8'hfa: tmp_new_sbox3 = 8'h14; - 8'hfb: tmp_new_sbox3 = 8'h63; - 8'hfc: tmp_new_sbox3 = 8'h55; - 8'hfd: tmp_new_sbox3 = 8'h21; - 8'hfe: tmp_new_sbox3 = 8'h0c; - 8'hff: tmp_new_sbox3 = 8'h7d; - endcase // case (sword) - end // inv_sbox_rom3 + assign new_sword[31 : 24] = inv_sbox[sword[31 : 24]]; + assign new_sword[23 : 16] = inv_sbox[sword[23 : 16]]; + assign new_sword[15 : 08] = inv_sbox[sword[15 : 08]]; + assign new_sword[07 : 00] = inv_sbox[sword[07 : 00]]; endmodule // aes_inv_sbox diff --git a/src/rtl/aes_sbox.v b/src/rtl/aes_sbox.v index 2232ea8..47e9569 100644 --- a/src/rtl/aes_sbox.v +++ b/src/rtl/aes_sbox.v @@ -6,8 +6,7 @@ // contains four parallel S-boxes to handle a 32 bit word. // // -// Author: Joachim Strombergson -// Copyright (c) 2014, SUNET +// Copyright (c) 2013 Secworks Sweden AB // All rights reserved. // // Redistribution and use in source and binary forms, with or @@ -46,1089 +45,274 @@ module aes_sbox( //---------------------------------------------------------------- // Wires. //---------------------------------------------------------------- - reg [7 : 0] tmp_new_sbox0; - reg [7 : 0] tmp_new_sbox1; - reg [7 : 0] tmp_new_sbox2; - reg [7 : 0] tmp_new_sbox3; + wire [7 : 0] sbox [0 : 255]; //---------------------------------------------------------------- // Concurrent assignments for ports. //---------------------------------------------------------------- - assign new_sboxw = {tmp_new_sbox0, tmp_new_sbox1, - tmp_new_sbox2, tmp_new_sbox3}; + assign sbox[8'h00] = 8'h63; + assign sbox[8'h01] = 8'h7c; + assign sbox[8'h02] = 8'h77; + assign sbox[8'h03] = 8'h7b; + assign sbox[8'h04] = 8'hf2; + assign sbox[8'h05] = 8'h6b; + assign sbox[8'h06] = 8'h6f; + assign sbox[8'h07] = 8'hc5; + assign sbox[8'h08] = 8'h30; + assign sbox[8'h09] = 8'h01; + assign sbox[8'h0a] = 8'h67; + assign sbox[8'h0b] = 8'h2b; + assign sbox[8'h0c] = 8'hfe; + assign sbox[8'h0d] = 8'hd7; + assign sbox[8'h0e] = 8'hab; + assign sbox[8'h0f] = 8'h76; + assign sbox[8'h10] = 8'hca; + assign sbox[8'h11] = 8'h82; + assign sbox[8'h12] = 8'hc9; + assign sbox[8'h13] = 8'h7d; + assign sbox[8'h14] = 8'hfa; + assign sbox[8'h15] = 8'h59; + assign sbox[8'h16] = 8'h47; + assign sbox[8'h17] = 8'hf0; + assign sbox[8'h18] = 8'had; + assign sbox[8'h19] = 8'hd4; + assign sbox[8'h1a] = 8'ha2; + assign sbox[8'h1b] = 8'haf; + assign sbox[8'h1c] = 8'h9c; + assign sbox[8'h1d] = 8'ha4; + assign sbox[8'h1e] = 8'h72; + assign sbox[8'h1f] = 8'hc0; + assign sbox[8'h20] = 8'hb7; + assign sbox[8'h21] = 8'hfd; + assign sbox[8'h22] = 8'h93; + assign sbox[8'h23] = 8'h26; + assign sbox[8'h24] = 8'h36; + assign sbox[8'h25] = 8'h3f; + assign sbox[8'h26] = 8'hf7; + assign sbox[8'h27] = 8'hcc; + assign sbox[8'h28] = 8'h34; + assign sbox[8'h29] = 8'ha5; + assign sbox[8'h2a] = 8'he5; + assign sbox[8'h2b] = 8'hf1; + assign sbox[8'h2c] = 8'h71; + assign sbox[8'h2d] = 8'hd8; + assign sbox[8'h2e] = 8'h31; + assign sbox[8'h2f] = 8'h15; + assign sbox[8'h30] = 8'h04; + assign sbox[8'h31] = 8'hc7; + assign sbox[8'h32] = 8'h23; + assign sbox[8'h33] = 8'hc3; + assign sbox[8'h34] = 8'h18; + assign sbox[8'h35] = 8'h96; + assign sbox[8'h36] = 8'h05; + assign sbox[8'h37] = 8'h9a; + assign sbox[8'h38] = 8'h07; + assign sbox[8'h39] = 8'h12; + assign sbox[8'h3a] = 8'h80; + assign sbox[8'h3b] = 8'he2; + assign sbox[8'h3c] = 8'heb; + assign sbox[8'h3d] = 8'h27; + assign sbox[8'h3e] = 8'hb2; + assign sbox[8'h3f] = 8'h75; + assign sbox[8'h40] = 8'h09; + assign sbox[8'h41] = 8'h83; + assign sbox[8'h42] = 8'h2c; + assign sbox[8'h43] = 8'h1a; + assign sbox[8'h44] = 8'h1b; + assign sbox[8'h45] = 8'h6e; + assign sbox[8'h46] = 8'h5a; + assign sbox[8'h47] = 8'ha0; + assign sbox[8'h48] = 8'h52; + assign sbox[8'h49] = 8'h3b; + assign sbox[8'h4a] = 8'hd6; + assign sbox[8'h4b] = 8'hb3; + assign sbox[8'h4c] = 8'h29; + assign sbox[8'h4d] = 8'he3; + assign sbox[8'h4e] = 8'h2f; + assign sbox[8'h4f] = 8'h84; + assign sbox[8'h50] = 8'h53; + assign sbox[8'h51] = 8'hd1; + assign sbox[8'h52] = 8'h00; + assign sbox[8'h53] = 8'hed; + assign sbox[8'h54] = 8'h20; + assign sbox[8'h55] = 8'hfc; + assign sbox[8'h56] = 8'hb1; + assign sbox[8'h57] = 8'h5b; + assign sbox[8'h58] = 8'h6a; + assign sbox[8'h59] = 8'hcb; + assign sbox[8'h5a] = 8'hbe; + assign sbox[8'h5b] = 8'h39; + assign sbox[8'h5c] = 8'h4a; + assign sbox[8'h5d] = 8'h4c; + assign sbox[8'h5e] = 8'h58; + assign sbox[8'h5f] = 8'hcf; + assign sbox[8'h60] = 8'hd0; + assign sbox[8'h61] = 8'hef; + assign sbox[8'h62] = 8'haa; + assign sbox[8'h63] = 8'hfb; + assign sbox[8'h64] = 8'h43; + assign sbox[8'h65] = 8'h4d; + assign sbox[8'h66] = 8'h33; + assign sbox[8'h67] = 8'h85; + assign sbox[8'h68] = 8'h45; + assign sbox[8'h69] = 8'hf9; + assign sbox[8'h6a] = 8'h02; + assign sbox[8'h6b] = 8'h7f; + assign sbox[8'h6c] = 8'h50; + assign sbox[8'h6d] = 8'h3c; + assign sbox[8'h6e] = 8'h9f; + assign sbox[8'h6f] = 8'ha8; + assign sbox[8'h70] = 8'h51; + assign sbox[8'h71] = 8'ha3; + assign sbox[8'h72] = 8'h40; + assign sbox[8'h73] = 8'h8f; + assign sbox[8'h74] = 8'h92; + assign sbox[8'h75] = 8'h9d; + assign sbox[8'h76] = 8'h38; + assign sbox[8'h77] = 8'hf5; + assign sbox[8'h78] = 8'hbc; + assign sbox[8'h79] = 8'hb6; + assign sbox[8'h7a] = 8'hda; + assign sbox[8'h7b] = 8'h21; + assign sbox[8'h7c] = 8'h10; + assign sbox[8'h7d] = 8'hff; + assign sbox[8'h7e] = 8'hf3; + assign sbox[8'h7f] = 8'hd2; + assign sbox[8'h80] = 8'hcd; + assign sbox[8'h81] = 8'h0c; + assign sbox[8'h82] = 8'h13; + assign sbox[8'h83] = 8'hec; + assign sbox[8'h84] = 8'h5f; + assign sbox[8'h85] = 8'h97; + assign sbox[8'h86] = 8'h44; + assign sbox[8'h87] = 8'h17; + assign sbox[8'h88] = 8'hc4; + assign sbox[8'h89] = 8'ha7; + assign sbox[8'h8a] = 8'h7e; + assign sbox[8'h8b] = 8'h3d; + assign sbox[8'h8c] = 8'h64; + assign sbox[8'h8d] = 8'h5d; + assign sbox[8'h8e] = 8'h19; + assign sbox[8'h8f] = 8'h73; + assign sbox[8'h90] = 8'h60; + assign sbox[8'h91] = 8'h81; + assign sbox[8'h92] = 8'h4f; + assign sbox[8'h93] = 8'hdc; + assign sbox[8'h94] = 8'h22; + assign sbox[8'h95] = 8'h2a; + assign sbox[8'h96] = 8'h90; + assign sbox[8'h97] = 8'h88; + assign sbox[8'h98] = 8'h46; + assign sbox[8'h99] = 8'hee; + assign sbox[8'h9a] = 8'hb8; + assign sbox[8'h9b] = 8'h14; + assign sbox[8'h9c] = 8'hde; + assign sbox[8'h9d] = 8'h5e; + assign sbox[8'h9e] = 8'h0b; + assign sbox[8'h9f] = 8'hdb; + assign sbox[8'ha0] = 8'he0; + assign sbox[8'ha1] = 8'h32; + assign sbox[8'ha2] = 8'h3a; + assign sbox[8'ha3] = 8'h0a; + assign sbox[8'ha4] = 8'h49; + assign sbox[8'ha5] = 8'h06; + assign sbox[8'ha6] = 8'h24; + assign sbox[8'ha7] = 8'h5c; + assign sbox[8'ha8] = 8'hc2; + assign sbox[8'ha9] = 8'hd3; + assign sbox[8'haa] = 8'hac; + assign sbox[8'hab] = 8'h62; + assign sbox[8'hac] = 8'h91; + assign sbox[8'had] = 8'h95; + assign sbox[8'hae] = 8'he4; + assign sbox[8'haf] = 8'h79; + assign sbox[8'hb0] = 8'he7; + assign sbox[8'hb1] = 8'hc8; + assign sbox[8'hb2] = 8'h37; + assign sbox[8'hb3] = 8'h6d; + assign sbox[8'hb4] = 8'h8d; + assign sbox[8'hb5] = 8'hd5; + assign sbox[8'hb6] = 8'h4e; + assign sbox[8'hb7] = 8'ha9; + assign sbox[8'hb8] = 8'h6c; + assign sbox[8'hb9] = 8'h56; + assign sbox[8'hba] = 8'hf4; + assign sbox[8'hbb] = 8'hea; + assign sbox[8'hbc] = 8'h65; + assign sbox[8'hbd] = 8'h7a; + assign sbox[8'hbe] = 8'hae; + assign sbox[8'hbf] = 8'h08; + assign sbox[8'hc0] = 8'hba; + assign sbox[8'hc1] = 8'h78; + assign sbox[8'hc2] = 8'h25; + assign sbox[8'hc3] = 8'h2e; + assign sbox[8'hc4] = 8'h1c; + assign sbox[8'hc5] = 8'ha6; + assign sbox[8'hc6] = 8'hb4; + assign sbox[8'hc7] = 8'hc6; + assign sbox[8'hc8] = 8'he8; + assign sbox[8'hc9] = 8'hdd; + assign sbox[8'hca] = 8'h74; + assign sbox[8'hcb] = 8'h1f; + assign sbox[8'hcc] = 8'h4b; + assign sbox[8'hcd] = 8'hbd; + assign sbox[8'hce] = 8'h8b; + assign sbox[8'hcf] = 8'h8a; + assign sbox[8'hd0] = 8'h70; + assign sbox[8'hd1] = 8'h3e; + assign sbox[8'hd2] = 8'hb5; + assign sbox[8'hd3] = 8'h66; + assign sbox[8'hd4] = 8'h48; + assign sbox[8'hd5] = 8'h03; + assign sbox[8'hd6] = 8'hf6; + assign sbox[8'hd7] = 8'h0e; + assign sbox[8'hd8] = 8'h61; + assign sbox[8'hd9] = 8'h35; + assign sbox[8'hda] = 8'h57; + assign sbox[8'hdb] = 8'hb9; + assign sbox[8'hdc] = 8'h86; + assign sbox[8'hdd] = 8'hc1; + assign sbox[8'hde] = 8'h1d; + assign sbox[8'hdf] = 8'h9e; + assign sbox[8'he0] = 8'he1; + assign sbox[8'he1] = 8'hf8; + assign sbox[8'he2] = 8'h98; + assign sbox[8'he3] = 8'h11; + assign sbox[8'he4] = 8'h69; + assign sbox[8'he5] = 8'hd9; + assign sbox[8'he6] = 8'h8e; + assign sbox[8'he7] = 8'h94; + assign sbox[8'he8] = 8'h9b; + assign sbox[8'he9] = 8'h1e; + assign sbox[8'hea] = 8'h87; + assign sbox[8'heb] = 8'he9; + assign sbox[8'hec] = 8'hce; + assign sbox[8'hed] = 8'h55; + assign sbox[8'hee] = 8'h28; + assign sbox[8'hef] = 8'hdf; + assign sbox[8'hf0] = 8'h8c; + assign sbox[8'hf1] = 8'ha1; + assign sbox[8'hf2] = 8'h89; + assign sbox[8'hf3] = 8'h0d; + assign sbox[8'hf4] = 8'hbf; + assign sbox[8'hf5] = 8'he6; + assign sbox[8'hf6] = 8'h42; + assign sbox[8'hf7] = 8'h68; + assign sbox[8'hf8] = 8'h41; + assign sbox[8'hf9] = 8'h99; + assign sbox[8'hfa] = 8'h2d; + assign sbox[8'hfb] = 8'h0f; + assign sbox[8'hfc] = 8'hb0; + assign sbox[8'hfd] = 8'h54; + assign sbox[8'hfe] = 8'hbb; + assign sbox[8'hff] = 8'h16; - //---------------------------------------------------------------- - // sbox_rom0 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : sbox_rom0 - case(sboxw[31 : 24]) - 8'h00: tmp_new_sbox0 = 8'h63; - 8'h01: tmp_new_sbox0 = 8'h7c; - 8'h02: tmp_new_sbox0 = 8'h77; - 8'h03: tmp_new_sbox0 = 8'h7b; - 8'h04: tmp_new_sbox0 = 8'hf2; - 8'h05: tmp_new_sbox0 = 8'h6b; - 8'h06: tmp_new_sbox0 = 8'h6f; - 8'h07: tmp_new_sbox0 = 8'hc5; - 8'h08: tmp_new_sbox0 = 8'h30; - 8'h09: tmp_new_sbox0 = 8'h01; - 8'h0a: tmp_new_sbox0 = 8'h67; - 8'h0b: tmp_new_sbox0 = 8'h2b; - 8'h0c: tmp_new_sbox0 = 8'hfe; - 8'h0d: tmp_new_sbox0 = 8'hd7; - 8'h0e: tmp_new_sbox0 = 8'hab; - 8'h0f: tmp_new_sbox0 = 8'h76; - 8'h10: tmp_new_sbox0 = 8'hca; - 8'h11: tmp_new_sbox0 = 8'h82; - 8'h12: tmp_new_sbox0 = 8'hc9; - 8'h13: tmp_new_sbox0 = 8'h7d; - 8'h14: tmp_new_sbox0 = 8'hfa; - 8'h15: tmp_new_sbox0 = 8'h59; - 8'h16: tmp_new_sbox0 = 8'h47; - 8'h17: tmp_new_sbox0 = 8'hf0; - 8'h18: tmp_new_sbox0 = 8'had; - 8'h19: tmp_new_sbox0 = 8'hd4; - 8'h1a: tmp_new_sbox0 = 8'ha2; - 8'h1b: tmp_new_sbox0 = 8'haf; - 8'h1c: tmp_new_sbox0 = 8'h9c; - 8'h1d: tmp_new_sbox0 = 8'ha4; - 8'h1e: tmp_new_sbox0 = 8'h72; - 8'h1f: tmp_new_sbox0 = 8'hc0; - 8'h20: tmp_new_sbox0 = 8'hb7; - 8'h21: tmp_new_sbox0 = 8'hfd; - 8'h22: tmp_new_sbox0 = 8'h93; - 8'h23: tmp_new_sbox0 = 8'h26; - 8'h24: tmp_new_sbox0 = 8'h36; - 8'h25: tmp_new_sbox0 = 8'h3f; - 8'h26: tmp_new_sbox0 = 8'hf7; - 8'h27: tmp_new_sbox0 = 8'hcc; - 8'h28: tmp_new_sbox0 = 8'h34; - 8'h29: tmp_new_sbox0 = 8'ha5; - 8'h2a: tmp_new_sbox0 = 8'he5; - 8'h2b: tmp_new_sbox0 = 8'hf1; - 8'h2c: tmp_new_sbox0 = 8'h71; - 8'h2d: tmp_new_sbox0 = 8'hd8; - 8'h2e: tmp_new_sbox0 = 8'h31; - 8'h2f: tmp_new_sbox0 = 8'h15; - 8'h30: tmp_new_sbox0 = 8'h04; - 8'h31: tmp_new_sbox0 = 8'hc7; - 8'h32: tmp_new_sbox0 = 8'h23; - 8'h33: tmp_new_sbox0 = 8'hc3; - 8'h34: tmp_new_sbox0 = 8'h18; - 8'h35: tmp_new_sbox0 = 8'h96; - 8'h36: tmp_new_sbox0 = 8'h05; - 8'h37: tmp_new_sbox0 = 8'h9a; - 8'h38: tmp_new_sbox0 = 8'h07; - 8'h39: tmp_new_sbox0 = 8'h12; - 8'h3a: tmp_new_sbox0 = 8'h80; - 8'h3b: tmp_new_sbox0 = 8'he2; - 8'h3c: tmp_new_sbox0 = 8'heb; - 8'h3d: tmp_new_sbox0 = 8'h27; - 8'h3e: tmp_new_sbox0 = 8'hb2; - 8'h3f: tmp_new_sbox0 = 8'h75; - 8'h40: tmp_new_sbox0 = 8'h09; - 8'h41: tmp_new_sbox0 = 8'h83; - 8'h42: tmp_new_sbox0 = 8'h2c; - 8'h43: tmp_new_sbox0 = 8'h1a; - 8'h44: tmp_new_sbox0 = 8'h1b; - 8'h45: tmp_new_sbox0 = 8'h6e; - 8'h46: tmp_new_sbox0 = 8'h5a; - 8'h47: tmp_new_sbox0 = 8'ha0; - 8'h48: tmp_new_sbox0 = 8'h52; - 8'h49: tmp_new_sbox0 = 8'h3b; - 8'h4a: tmp_new_sbox0 = 8'hd6; - 8'h4b: tmp_new_sbox0 = 8'hb3; - 8'h4c: tmp_new_sbox0 = 8'h29; - 8'h4d: tmp_new_sbox0 = 8'he3; - 8'h4e: tmp_new_sbox0 = 8'h2f; - 8'h4f: tmp_new_sbox0 = 8'h84; - 8'h50: tmp_new_sbox0 = 8'h53; - 8'h51: tmp_new_sbox0 = 8'hd1; - 8'h52: tmp_new_sbox0 = 8'h00; - 8'h53: tmp_new_sbox0 = 8'hed; - 8'h54: tmp_new_sbox0 = 8'h20; - 8'h55: tmp_new_sbox0 = 8'hfc; - 8'h56: tmp_new_sbox0 = 8'hb1; - 8'h57: tmp_new_sbox0 = 8'h5b; - 8'h58: tmp_new_sbox0 = 8'h6a; - 8'h59: tmp_new_sbox0 = 8'hcb; - 8'h5a: tmp_new_sbox0 = 8'hbe; - 8'h5b: tmp_new_sbox0 = 8'h39; - 8'h5c: tmp_new_sbox0 = 8'h4a; - 8'h5d: tmp_new_sbox0 = 8'h4c; - 8'h5e: tmp_new_sbox0 = 8'h58; - 8'h5f: tmp_new_sbox0 = 8'hcf; - 8'h60: tmp_new_sbox0 = 8'hd0; - 8'h61: tmp_new_sbox0 = 8'hef; - 8'h62: tmp_new_sbox0 = 8'haa; - 8'h63: tmp_new_sbox0 = 8'hfb; - 8'h64: tmp_new_sbox0 = 8'h43; - 8'h65: tmp_new_sbox0 = 8'h4d; - 8'h66: tmp_new_sbox0 = 8'h33; - 8'h67: tmp_new_sbox0 = 8'h85; - 8'h68: tmp_new_sbox0 = 8'h45; - 8'h69: tmp_new_sbox0 = 8'hf9; - 8'h6a: tmp_new_sbox0 = 8'h02; - 8'h6b: tmp_new_sbox0 = 8'h7f; - 8'h6c: tmp_new_sbox0 = 8'h50; - 8'h6d: tmp_new_sbox0 = 8'h3c; - 8'h6e: tmp_new_sbox0 = 8'h9f; - 8'h6f: tmp_new_sbox0 = 8'ha8; - 8'h70: tmp_new_sbox0 = 8'h51; - 8'h71: tmp_new_sbox0 = 8'ha3; - 8'h72: tmp_new_sbox0 = 8'h40; - 8'h73: tmp_new_sbox0 = 8'h8f; - 8'h74: tmp_new_sbox0 = 8'h92; - 8'h75: tmp_new_sbox0 = 8'h9d; - 8'h76: tmp_new_sbox0 = 8'h38; - 8'h77: tmp_new_sbox0 = 8'hf5; - 8'h78: tmp_new_sbox0 = 8'hbc; - 8'h79: tmp_new_sbox0 = 8'hb6; - 8'h7a: tmp_new_sbox0 = 8'hda; - 8'h7b: tmp_new_sbox0 = 8'h21; - 8'h7c: tmp_new_sbox0 = 8'h10; - 8'h7d: tmp_new_sbox0 = 8'hff; - 8'h7e: tmp_new_sbox0 = 8'hf3; - 8'h7f: tmp_new_sbox0 = 8'hd2; - 8'h80: tmp_new_sbox0 = 8'hcd; - 8'h81: tmp_new_sbox0 = 8'h0c; - 8'h82: tmp_new_sbox0 = 8'h13; - 8'h83: tmp_new_sbox0 = 8'hec; - 8'h84: tmp_new_sbox0 = 8'h5f; - 8'h85: tmp_new_sbox0 = 8'h97; - 8'h86: tmp_new_sbox0 = 8'h44; - 8'h87: tmp_new_sbox0 = 8'h17; - 8'h88: tmp_new_sbox0 = 8'hc4; - 8'h89: tmp_new_sbox0 = 8'ha7; - 8'h8a: tmp_new_sbox0 = 8'h7e; - 8'h8b: tmp_new_sbox0 = 8'h3d; - 8'h8c: tmp_new_sbox0 = 8'h64; - 8'h8d: tmp_new_sbox0 = 8'h5d; - 8'h8e: tmp_new_sbox0 = 8'h19; - 8'h8f: tmp_new_sbox0 = 8'h73; - 8'h90: tmp_new_sbox0 = 8'h60; - 8'h91: tmp_new_sbox0 = 8'h81; - 8'h92: tmp_new_sbox0 = 8'h4f; - 8'h93: tmp_new_sbox0 = 8'hdc; - 8'h94: tmp_new_sbox0 = 8'h22; - 8'h95: tmp_new_sbox0 = 8'h2a; - 8'h96: tmp_new_sbox0 = 8'h90; - 8'h97: tmp_new_sbox0 = 8'h88; - 8'h98: tmp_new_sbox0 = 8'h46; - 8'h99: tmp_new_sbox0 = 8'hee; - 8'h9a: tmp_new_sbox0 = 8'hb8; - 8'h9b: tmp_new_sbox0 = 8'h14; - 8'h9c: tmp_new_sbox0 = 8'hde; - 8'h9d: tmp_new_sbox0 = 8'h5e; - 8'h9e: tmp_new_sbox0 = 8'h0b; - 8'h9f: tmp_new_sbox0 = 8'hdb; - 8'ha0: tmp_new_sbox0 = 8'he0; - 8'ha1: tmp_new_sbox0 = 8'h32; - 8'ha2: tmp_new_sbox0 = 8'h3a; - 8'ha3: tmp_new_sbox0 = 8'h0a; - 8'ha4: tmp_new_sbox0 = 8'h49; - 8'ha5: tmp_new_sbox0 = 8'h06; - 8'ha6: tmp_new_sbox0 = 8'h24; - 8'ha7: tmp_new_sbox0 = 8'h5c; - 8'ha8: tmp_new_sbox0 = 8'hc2; - 8'ha9: tmp_new_sbox0 = 8'hd3; - 8'haa: tmp_new_sbox0 = 8'hac; - 8'hab: tmp_new_sbox0 = 8'h62; - 8'hac: tmp_new_sbox0 = 8'h91; - 8'had: tmp_new_sbox0 = 8'h95; - 8'hae: tmp_new_sbox0 = 8'he4; - 8'haf: tmp_new_sbox0 = 8'h79; - 8'hb0: tmp_new_sbox0 = 8'he7; - 8'hb1: tmp_new_sbox0 = 8'hc8; - 8'hb2: tmp_new_sbox0 = 8'h37; - 8'hb3: tmp_new_sbox0 = 8'h6d; - 8'hb4: tmp_new_sbox0 = 8'h8d; - 8'hb5: tmp_new_sbox0 = 8'hd5; - 8'hb6: tmp_new_sbox0 = 8'h4e; - 8'hb7: tmp_new_sbox0 = 8'ha9; - 8'hb8: tmp_new_sbox0 = 8'h6c; - 8'hb9: tmp_new_sbox0 = 8'h56; - 8'hba: tmp_new_sbox0 = 8'hf4; - 8'hbb: tmp_new_sbox0 = 8'hea; - 8'hbc: tmp_new_sbox0 = 8'h65; - 8'hbd: tmp_new_sbox0 = 8'h7a; - 8'hbe: tmp_new_sbox0 = 8'hae; - 8'hbf: tmp_new_sbox0 = 8'h08; - 8'hc0: tmp_new_sbox0 = 8'hba; - 8'hc1: tmp_new_sbox0 = 8'h78; - 8'hc2: tmp_new_sbox0 = 8'h25; - 8'hc3: tmp_new_sbox0 = 8'h2e; - 8'hc4: tmp_new_sbox0 = 8'h1c; - 8'hc5: tmp_new_sbox0 = 8'ha6; - 8'hc6: tmp_new_sbox0 = 8'hb4; - 8'hc7: tmp_new_sbox0 = 8'hc6; - 8'hc8: tmp_new_sbox0 = 8'he8; - 8'hc9: tmp_new_sbox0 = 8'hdd; - 8'hca: tmp_new_sbox0 = 8'h74; - 8'hcb: tmp_new_sbox0 = 8'h1f; - 8'hcc: tmp_new_sbox0 = 8'h4b; - 8'hcd: tmp_new_sbox0 = 8'hbd; - 8'hce: tmp_new_sbox0 = 8'h8b; - 8'hcf: tmp_new_sbox0 = 8'h8a; - 8'hd0: tmp_new_sbox0 = 8'h70; - 8'hd1: tmp_new_sbox0 = 8'h3e; - 8'hd2: tmp_new_sbox0 = 8'hb5; - 8'hd3: tmp_new_sbox0 = 8'h66; - 8'hd4: tmp_new_sbox0 = 8'h48; - 8'hd5: tmp_new_sbox0 = 8'h03; - 8'hd6: tmp_new_sbox0 = 8'hf6; - 8'hd7: tmp_new_sbox0 = 8'h0e; - 8'hd8: tmp_new_sbox0 = 8'h61; - 8'hd9: tmp_new_sbox0 = 8'h35; - 8'hda: tmp_new_sbox0 = 8'h57; - 8'hdb: tmp_new_sbox0 = 8'hb9; - 8'hdc: tmp_new_sbox0 = 8'h86; - 8'hdd: tmp_new_sbox0 = 8'hc1; - 8'hde: tmp_new_sbox0 = 8'h1d; - 8'hdf: tmp_new_sbox0 = 8'h9e; - 8'he0: tmp_new_sbox0 = 8'he1; - 8'he1: tmp_new_sbox0 = 8'hf8; - 8'he2: tmp_new_sbox0 = 8'h98; - 8'he3: tmp_new_sbox0 = 8'h11; - 8'he4: tmp_new_sbox0 = 8'h69; - 8'he5: tmp_new_sbox0 = 8'hd9; - 8'he6: tmp_new_sbox0 = 8'h8e; - 8'he7: tmp_new_sbox0 = 8'h94; - 8'he8: tmp_new_sbox0 = 8'h9b; - 8'he9: tmp_new_sbox0 = 8'h1e; - 8'hea: tmp_new_sbox0 = 8'h87; - 8'heb: tmp_new_sbox0 = 8'he9; - 8'hec: tmp_new_sbox0 = 8'hce; - 8'hed: tmp_new_sbox0 = 8'h55; - 8'hee: tmp_new_sbox0 = 8'h28; - 8'hef: tmp_new_sbox0 = 8'hdf; - 8'hf0: tmp_new_sbox0 = 8'h8c; - 8'hf1: tmp_new_sbox0 = 8'ha1; - 8'hf2: tmp_new_sbox0 = 8'h89; - 8'hf3: tmp_new_sbox0 = 8'h0d; - 8'hf4: tmp_new_sbox0 = 8'hbf; - 8'hf5: tmp_new_sbox0 = 8'he6; - 8'hf6: tmp_new_sbox0 = 8'h42; - 8'hf7: tmp_new_sbox0 = 8'h68; - 8'hf8: tmp_new_sbox0 = 8'h41; - 8'hf9: tmp_new_sbox0 = 8'h99; - 8'hfa: tmp_new_sbox0 = 8'h2d; - 8'hfb: tmp_new_sbox0 = 8'h0f; - 8'hfc: tmp_new_sbox0 = 8'hb0; - 8'hfd: tmp_new_sbox0 = 8'h54; - 8'hfe: tmp_new_sbox0 = 8'hbb; - 8'hff: tmp_new_sbox0 = 8'h16; - endcase // case (sboxw[31 : 24]) - end // sbox_rom0 - - - //---------------------------------------------------------------- - // sbox_rom1 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : sbox_rom1 - case(sboxw[23 : 16]) - 8'h00: tmp_new_sbox1 = 8'h63; - 8'h01: tmp_new_sbox1 = 8'h7c; - 8'h02: tmp_new_sbox1 = 8'h77; - 8'h03: tmp_new_sbox1 = 8'h7b; - 8'h04: tmp_new_sbox1 = 8'hf2; - 8'h05: tmp_new_sbox1 = 8'h6b; - 8'h06: tmp_new_sbox1 = 8'h6f; - 8'h07: tmp_new_sbox1 = 8'hc5; - 8'h08: tmp_new_sbox1 = 8'h30; - 8'h09: tmp_new_sbox1 = 8'h01; - 8'h0a: tmp_new_sbox1 = 8'h67; - 8'h0b: tmp_new_sbox1 = 8'h2b; - 8'h0c: tmp_new_sbox1 = 8'hfe; - 8'h0d: tmp_new_sbox1 = 8'hd7; - 8'h0e: tmp_new_sbox1 = 8'hab; - 8'h0f: tmp_new_sbox1 = 8'h76; - 8'h10: tmp_new_sbox1 = 8'hca; - 8'h11: tmp_new_sbox1 = 8'h82; - 8'h12: tmp_new_sbox1 = 8'hc9; - 8'h13: tmp_new_sbox1 = 8'h7d; - 8'h14: tmp_new_sbox1 = 8'hfa; - 8'h15: tmp_new_sbox1 = 8'h59; - 8'h16: tmp_new_sbox1 = 8'h47; - 8'h17: tmp_new_sbox1 = 8'hf0; - 8'h18: tmp_new_sbox1 = 8'had; - 8'h19: tmp_new_sbox1 = 8'hd4; - 8'h1a: tmp_new_sbox1 = 8'ha2; - 8'h1b: tmp_new_sbox1 = 8'haf; - 8'h1c: tmp_new_sbox1 = 8'h9c; - 8'h1d: tmp_new_sbox1 = 8'ha4; - 8'h1e: tmp_new_sbox1 = 8'h72; - 8'h1f: tmp_new_sbox1 = 8'hc0; - 8'h20: tmp_new_sbox1 = 8'hb7; - 8'h21: tmp_new_sbox1 = 8'hfd; - 8'h22: tmp_new_sbox1 = 8'h93; - 8'h23: tmp_new_sbox1 = 8'h26; - 8'h24: tmp_new_sbox1 = 8'h36; - 8'h25: tmp_new_sbox1 = 8'h3f; - 8'h26: tmp_new_sbox1 = 8'hf7; - 8'h27: tmp_new_sbox1 = 8'hcc; - 8'h28: tmp_new_sbox1 = 8'h34; - 8'h29: tmp_new_sbox1 = 8'ha5; - 8'h2a: tmp_new_sbox1 = 8'he5; - 8'h2b: tmp_new_sbox1 = 8'hf1; - 8'h2c: tmp_new_sbox1 = 8'h71; - 8'h2d: tmp_new_sbox1 = 8'hd8; - 8'h2e: tmp_new_sbox1 = 8'h31; - 8'h2f: tmp_new_sbox1 = 8'h15; - 8'h30: tmp_new_sbox1 = 8'h04; - 8'h31: tmp_new_sbox1 = 8'hc7; - 8'h32: tmp_new_sbox1 = 8'h23; - 8'h33: tmp_new_sbox1 = 8'hc3; - 8'h34: tmp_new_sbox1 = 8'h18; - 8'h35: tmp_new_sbox1 = 8'h96; - 8'h36: tmp_new_sbox1 = 8'h05; - 8'h37: tmp_new_sbox1 = 8'h9a; - 8'h38: tmp_new_sbox1 = 8'h07; - 8'h39: tmp_new_sbox1 = 8'h12; - 8'h3a: tmp_new_sbox1 = 8'h80; - 8'h3b: tmp_new_sbox1 = 8'he2; - 8'h3c: tmp_new_sbox1 = 8'heb; - 8'h3d: tmp_new_sbox1 = 8'h27; - 8'h3e: tmp_new_sbox1 = 8'hb2; - 8'h3f: tmp_new_sbox1 = 8'h75; - 8'h40: tmp_new_sbox1 = 8'h09; - 8'h41: tmp_new_sbox1 = 8'h83; - 8'h42: tmp_new_sbox1 = 8'h2c; - 8'h43: tmp_new_sbox1 = 8'h1a; - 8'h44: tmp_new_sbox1 = 8'h1b; - 8'h45: tmp_new_sbox1 = 8'h6e; - 8'h46: tmp_new_sbox1 = 8'h5a; - 8'h47: tmp_new_sbox1 = 8'ha0; - 8'h48: tmp_new_sbox1 = 8'h52; - 8'h49: tmp_new_sbox1 = 8'h3b; - 8'h4a: tmp_new_sbox1 = 8'hd6; - 8'h4b: tmp_new_sbox1 = 8'hb3; - 8'h4c: tmp_new_sbox1 = 8'h29; - 8'h4d: tmp_new_sbox1 = 8'he3; - 8'h4e: tmp_new_sbox1 = 8'h2f; - 8'h4f: tmp_new_sbox1 = 8'h84; - 8'h50: tmp_new_sbox1 = 8'h53; - 8'h51: tmp_new_sbox1 = 8'hd1; - 8'h52: tmp_new_sbox1 = 8'h00; - 8'h53: tmp_new_sbox1 = 8'hed; - 8'h54: tmp_new_sbox1 = 8'h20; - 8'h55: tmp_new_sbox1 = 8'hfc; - 8'h56: tmp_new_sbox1 = 8'hb1; - 8'h57: tmp_new_sbox1 = 8'h5b; - 8'h58: tmp_new_sbox1 = 8'h6a; - 8'h59: tmp_new_sbox1 = 8'hcb; - 8'h5a: tmp_new_sbox1 = 8'hbe; - 8'h5b: tmp_new_sbox1 = 8'h39; - 8'h5c: tmp_new_sbox1 = 8'h4a; - 8'h5d: tmp_new_sbox1 = 8'h4c; - 8'h5e: tmp_new_sbox1 = 8'h58; - 8'h5f: tmp_new_sbox1 = 8'hcf; - 8'h60: tmp_new_sbox1 = 8'hd0; - 8'h61: tmp_new_sbox1 = 8'hef; - 8'h62: tmp_new_sbox1 = 8'haa; - 8'h63: tmp_new_sbox1 = 8'hfb; - 8'h64: tmp_new_sbox1 = 8'h43; - 8'h65: tmp_new_sbox1 = 8'h4d; - 8'h66: tmp_new_sbox1 = 8'h33; - 8'h67: tmp_new_sbox1 = 8'h85; - 8'h68: tmp_new_sbox1 = 8'h45; - 8'h69: tmp_new_sbox1 = 8'hf9; - 8'h6a: tmp_new_sbox1 = 8'h02; - 8'h6b: tmp_new_sbox1 = 8'h7f; - 8'h6c: tmp_new_sbox1 = 8'h50; - 8'h6d: tmp_new_sbox1 = 8'h3c; - 8'h6e: tmp_new_sbox1 = 8'h9f; - 8'h6f: tmp_new_sbox1 = 8'ha8; - 8'h70: tmp_new_sbox1 = 8'h51; - 8'h71: tmp_new_sbox1 = 8'ha3; - 8'h72: tmp_new_sbox1 = 8'h40; - 8'h73: tmp_new_sbox1 = 8'h8f; - 8'h74: tmp_new_sbox1 = 8'h92; - 8'h75: tmp_new_sbox1 = 8'h9d; - 8'h76: tmp_new_sbox1 = 8'h38; - 8'h77: tmp_new_sbox1 = 8'hf5; - 8'h78: tmp_new_sbox1 = 8'hbc; - 8'h79: tmp_new_sbox1 = 8'hb6; - 8'h7a: tmp_new_sbox1 = 8'hda; - 8'h7b: tmp_new_sbox1 = 8'h21; - 8'h7c: tmp_new_sbox1 = 8'h10; - 8'h7d: tmp_new_sbox1 = 8'hff; - 8'h7e: tmp_new_sbox1 = 8'hf3; - 8'h7f: tmp_new_sbox1 = 8'hd2; - 8'h80: tmp_new_sbox1 = 8'hcd; - 8'h81: tmp_new_sbox1 = 8'h0c; - 8'h82: tmp_new_sbox1 = 8'h13; - 8'h83: tmp_new_sbox1 = 8'hec; - 8'h84: tmp_new_sbox1 = 8'h5f; - 8'h85: tmp_new_sbox1 = 8'h97; - 8'h86: tmp_new_sbox1 = 8'h44; - 8'h87: tmp_new_sbox1 = 8'h17; - 8'h88: tmp_new_sbox1 = 8'hc4; - 8'h89: tmp_new_sbox1 = 8'ha7; - 8'h8a: tmp_new_sbox1 = 8'h7e; - 8'h8b: tmp_new_sbox1 = 8'h3d; - 8'h8c: tmp_new_sbox1 = 8'h64; - 8'h8d: tmp_new_sbox1 = 8'h5d; - 8'h8e: tmp_new_sbox1 = 8'h19; - 8'h8f: tmp_new_sbox1 = 8'h73; - 8'h90: tmp_new_sbox1 = 8'h60; - 8'h91: tmp_new_sbox1 = 8'h81; - 8'h92: tmp_new_sbox1 = 8'h4f; - 8'h93: tmp_new_sbox1 = 8'hdc; - 8'h94: tmp_new_sbox1 = 8'h22; - 8'h95: tmp_new_sbox1 = 8'h2a; - 8'h96: tmp_new_sbox1 = 8'h90; - 8'h97: tmp_new_sbox1 = 8'h88; - 8'h98: tmp_new_sbox1 = 8'h46; - 8'h99: tmp_new_sbox1 = 8'hee; - 8'h9a: tmp_new_sbox1 = 8'hb8; - 8'h9b: tmp_new_sbox1 = 8'h14; - 8'h9c: tmp_new_sbox1 = 8'hde; - 8'h9d: tmp_new_sbox1 = 8'h5e; - 8'h9e: tmp_new_sbox1 = 8'h0b; - 8'h9f: tmp_new_sbox1 = 8'hdb; - 8'ha0: tmp_new_sbox1 = 8'he0; - 8'ha1: tmp_new_sbox1 = 8'h32; - 8'ha2: tmp_new_sbox1 = 8'h3a; - 8'ha3: tmp_new_sbox1 = 8'h0a; - 8'ha4: tmp_new_sbox1 = 8'h49; - 8'ha5: tmp_new_sbox1 = 8'h06; - 8'ha6: tmp_new_sbox1 = 8'h24; - 8'ha7: tmp_new_sbox1 = 8'h5c; - 8'ha8: tmp_new_sbox1 = 8'hc2; - 8'ha9: tmp_new_sbox1 = 8'hd3; - 8'haa: tmp_new_sbox1 = 8'hac; - 8'hab: tmp_new_sbox1 = 8'h62; - 8'hac: tmp_new_sbox1 = 8'h91; - 8'had: tmp_new_sbox1 = 8'h95; - 8'hae: tmp_new_sbox1 = 8'he4; - 8'haf: tmp_new_sbox1 = 8'h79; - 8'hb0: tmp_new_sbox1 = 8'he7; - 8'hb1: tmp_new_sbox1 = 8'hc8; - 8'hb2: tmp_new_sbox1 = 8'h37; - 8'hb3: tmp_new_sbox1 = 8'h6d; - 8'hb4: tmp_new_sbox1 = 8'h8d; - 8'hb5: tmp_new_sbox1 = 8'hd5; - 8'hb6: tmp_new_sbox1 = 8'h4e; - 8'hb7: tmp_new_sbox1 = 8'ha9; - 8'hb8: tmp_new_sbox1 = 8'h6c; - 8'hb9: tmp_new_sbox1 = 8'h56; - 8'hba: tmp_new_sbox1 = 8'hf4; - 8'hbb: tmp_new_sbox1 = 8'hea; - 8'hbc: tmp_new_sbox1 = 8'h65; - 8'hbd: tmp_new_sbox1 = 8'h7a; - 8'hbe: tmp_new_sbox1 = 8'hae; - 8'hbf: tmp_new_sbox1 = 8'h08; - 8'hc0: tmp_new_sbox1 = 8'hba; - 8'hc1: tmp_new_sbox1 = 8'h78; - 8'hc2: tmp_new_sbox1 = 8'h25; - 8'hc3: tmp_new_sbox1 = 8'h2e; - 8'hc4: tmp_new_sbox1 = 8'h1c; - 8'hc5: tmp_new_sbox1 = 8'ha6; - 8'hc6: tmp_new_sbox1 = 8'hb4; - 8'hc7: tmp_new_sbox1 = 8'hc6; - 8'hc8: tmp_new_sbox1 = 8'he8; - 8'hc9: tmp_new_sbox1 = 8'hdd; - 8'hca: tmp_new_sbox1 = 8'h74; - 8'hcb: tmp_new_sbox1 = 8'h1f; - 8'hcc: tmp_new_sbox1 = 8'h4b; - 8'hcd: tmp_new_sbox1 = 8'hbd; - 8'hce: tmp_new_sbox1 = 8'h8b; - 8'hcf: tmp_new_sbox1 = 8'h8a; - 8'hd0: tmp_new_sbox1 = 8'h70; - 8'hd1: tmp_new_sbox1 = 8'h3e; - 8'hd2: tmp_new_sbox1 = 8'hb5; - 8'hd3: tmp_new_sbox1 = 8'h66; - 8'hd4: tmp_new_sbox1 = 8'h48; - 8'hd5: tmp_new_sbox1 = 8'h03; - 8'hd6: tmp_new_sbox1 = 8'hf6; - 8'hd7: tmp_new_sbox1 = 8'h0e; - 8'hd8: tmp_new_sbox1 = 8'h61; - 8'hd9: tmp_new_sbox1 = 8'h35; - 8'hda: tmp_new_sbox1 = 8'h57; - 8'hdb: tmp_new_sbox1 = 8'hb9; - 8'hdc: tmp_new_sbox1 = 8'h86; - 8'hdd: tmp_new_sbox1 = 8'hc1; - 8'hde: tmp_new_sbox1 = 8'h1d; - 8'hdf: tmp_new_sbox1 = 8'h9e; - 8'he0: tmp_new_sbox1 = 8'he1; - 8'he1: tmp_new_sbox1 = 8'hf8; - 8'he2: tmp_new_sbox1 = 8'h98; - 8'he3: tmp_new_sbox1 = 8'h11; - 8'he4: tmp_new_sbox1 = 8'h69; - 8'he5: tmp_new_sbox1 = 8'hd9; - 8'he6: tmp_new_sbox1 = 8'h8e; - 8'he7: tmp_new_sbox1 = 8'h94; - 8'he8: tmp_new_sbox1 = 8'h9b; - 8'he9: tmp_new_sbox1 = 8'h1e; - 8'hea: tmp_new_sbox1 = 8'h87; - 8'heb: tmp_new_sbox1 = 8'he9; - 8'hec: tmp_new_sbox1 = 8'hce; - 8'hed: tmp_new_sbox1 = 8'h55; - 8'hee: tmp_new_sbox1 = 8'h28; - 8'hef: tmp_new_sbox1 = 8'hdf; - 8'hf0: tmp_new_sbox1 = 8'h8c; - 8'hf1: tmp_new_sbox1 = 8'ha1; - 8'hf2: tmp_new_sbox1 = 8'h89; - 8'hf3: tmp_new_sbox1 = 8'h0d; - 8'hf4: tmp_new_sbox1 = 8'hbf; - 8'hf5: tmp_new_sbox1 = 8'he6; - 8'hf6: tmp_new_sbox1 = 8'h42; - 8'hf7: tmp_new_sbox1 = 8'h68; - 8'hf8: tmp_new_sbox1 = 8'h41; - 8'hf9: tmp_new_sbox1 = 8'h99; - 8'hfa: tmp_new_sbox1 = 8'h2d; - 8'hfb: tmp_new_sbox1 = 8'h0f; - 8'hfc: tmp_new_sbox1 = 8'hb0; - 8'hfd: tmp_new_sbox1 = 8'h54; - 8'hfe: tmp_new_sbox1 = 8'hbb; - 8'hff: tmp_new_sbox1 = 8'h16; - endcase // case (sboxw[23 : 16]) - end // sbox_rom1 - - - //---------------------------------------------------------------- - // sbox_rom2 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : sbox_rom2 - case(sboxw[15 : 8]) - 8'h00: tmp_new_sbox2 = 8'h63; - 8'h01: tmp_new_sbox2 = 8'h7c; - 8'h02: tmp_new_sbox2 = 8'h77; - 8'h03: tmp_new_sbox2 = 8'h7b; - 8'h04: tmp_new_sbox2 = 8'hf2; - 8'h05: tmp_new_sbox2 = 8'h6b; - 8'h06: tmp_new_sbox2 = 8'h6f; - 8'h07: tmp_new_sbox2 = 8'hc5; - 8'h08: tmp_new_sbox2 = 8'h30; - 8'h09: tmp_new_sbox2 = 8'h01; - 8'h0a: tmp_new_sbox2 = 8'h67; - 8'h0b: tmp_new_sbox2 = 8'h2b; - 8'h0c: tmp_new_sbox2 = 8'hfe; - 8'h0d: tmp_new_sbox2 = 8'hd7; - 8'h0e: tmp_new_sbox2 = 8'hab; - 8'h0f: tmp_new_sbox2 = 8'h76; - 8'h10: tmp_new_sbox2 = 8'hca; - 8'h11: tmp_new_sbox2 = 8'h82; - 8'h12: tmp_new_sbox2 = 8'hc9; - 8'h13: tmp_new_sbox2 = 8'h7d; - 8'h14: tmp_new_sbox2 = 8'hfa; - 8'h15: tmp_new_sbox2 = 8'h59; - 8'h16: tmp_new_sbox2 = 8'h47; - 8'h17: tmp_new_sbox2 = 8'hf0; - 8'h18: tmp_new_sbox2 = 8'had; - 8'h19: tmp_new_sbox2 = 8'hd4; - 8'h1a: tmp_new_sbox2 = 8'ha2; - 8'h1b: tmp_new_sbox2 = 8'haf; - 8'h1c: tmp_new_sbox2 = 8'h9c; - 8'h1d: tmp_new_sbox2 = 8'ha4; - 8'h1e: tmp_new_sbox2 = 8'h72; - 8'h1f: tmp_new_sbox2 = 8'hc0; - 8'h20: tmp_new_sbox2 = 8'hb7; - 8'h21: tmp_new_sbox2 = 8'hfd; - 8'h22: tmp_new_sbox2 = 8'h93; - 8'h23: tmp_new_sbox2 = 8'h26; - 8'h24: tmp_new_sbox2 = 8'h36; - 8'h25: tmp_new_sbox2 = 8'h3f; - 8'h26: tmp_new_sbox2 = 8'hf7; - 8'h27: tmp_new_sbox2 = 8'hcc; - 8'h28: tmp_new_sbox2 = 8'h34; - 8'h29: tmp_new_sbox2 = 8'ha5; - 8'h2a: tmp_new_sbox2 = 8'he5; - 8'h2b: tmp_new_sbox2 = 8'hf1; - 8'h2c: tmp_new_sbox2 = 8'h71; - 8'h2d: tmp_new_sbox2 = 8'hd8; - 8'h2e: tmp_new_sbox2 = 8'h31; - 8'h2f: tmp_new_sbox2 = 8'h15; - 8'h30: tmp_new_sbox2 = 8'h04; - 8'h31: tmp_new_sbox2 = 8'hc7; - 8'h32: tmp_new_sbox2 = 8'h23; - 8'h33: tmp_new_sbox2 = 8'hc3; - 8'h34: tmp_new_sbox2 = 8'h18; - 8'h35: tmp_new_sbox2 = 8'h96; - 8'h36: tmp_new_sbox2 = 8'h05; - 8'h37: tmp_new_sbox2 = 8'h9a; - 8'h38: tmp_new_sbox2 = 8'h07; - 8'h39: tmp_new_sbox2 = 8'h12; - 8'h3a: tmp_new_sbox2 = 8'h80; - 8'h3b: tmp_new_sbox2 = 8'he2; - 8'h3c: tmp_new_sbox2 = 8'heb; - 8'h3d: tmp_new_sbox2 = 8'h27; - 8'h3e: tmp_new_sbox2 = 8'hb2; - 8'h3f: tmp_new_sbox2 = 8'h75; - 8'h40: tmp_new_sbox2 = 8'h09; - 8'h41: tmp_new_sbox2 = 8'h83; - 8'h42: tmp_new_sbox2 = 8'h2c; - 8'h43: tmp_new_sbox2 = 8'h1a; - 8'h44: tmp_new_sbox2 = 8'h1b; - 8'h45: tmp_new_sbox2 = 8'h6e; - 8'h46: tmp_new_sbox2 = 8'h5a; - 8'h47: tmp_new_sbox2 = 8'ha0; - 8'h48: tmp_new_sbox2 = 8'h52; - 8'h49: tmp_new_sbox2 = 8'h3b; - 8'h4a: tmp_new_sbox2 = 8'hd6; - 8'h4b: tmp_new_sbox2 = 8'hb3; - 8'h4c: tmp_new_sbox2 = 8'h29; - 8'h4d: tmp_new_sbox2 = 8'he3; - 8'h4e: tmp_new_sbox2 = 8'h2f; - 8'h4f: tmp_new_sbox2 = 8'h84; - 8'h50: tmp_new_sbox2 = 8'h53; - 8'h51: tmp_new_sbox2 = 8'hd1; - 8'h52: tmp_new_sbox2 = 8'h00; - 8'h53: tmp_new_sbox2 = 8'hed; - 8'h54: tmp_new_sbox2 = 8'h20; - 8'h55: tmp_new_sbox2 = 8'hfc; - 8'h56: tmp_new_sbox2 = 8'hb1; - 8'h57: tmp_new_sbox2 = 8'h5b; - 8'h58: tmp_new_sbox2 = 8'h6a; - 8'h59: tmp_new_sbox2 = 8'hcb; - 8'h5a: tmp_new_sbox2 = 8'hbe; - 8'h5b: tmp_new_sbox2 = 8'h39; - 8'h5c: tmp_new_sbox2 = 8'h4a; - 8'h5d: tmp_new_sbox2 = 8'h4c; - 8'h5e: tmp_new_sbox2 = 8'h58; - 8'h5f: tmp_new_sbox2 = 8'hcf; - 8'h60: tmp_new_sbox2 = 8'hd0; - 8'h61: tmp_new_sbox2 = 8'hef; - 8'h62: tmp_new_sbox2 = 8'haa; - 8'h63: tmp_new_sbox2 = 8'hfb; - 8'h64: tmp_new_sbox2 = 8'h43; - 8'h65: tmp_new_sbox2 = 8'h4d; - 8'h66: tmp_new_sbox2 = 8'h33; - 8'h67: tmp_new_sbox2 = 8'h85; - 8'h68: tmp_new_sbox2 = 8'h45; - 8'h69: tmp_new_sbox2 = 8'hf9; - 8'h6a: tmp_new_sbox2 = 8'h02; - 8'h6b: tmp_new_sbox2 = 8'h7f; - 8'h6c: tmp_new_sbox2 = 8'h50; - 8'h6d: tmp_new_sbox2 = 8'h3c; - 8'h6e: tmp_new_sbox2 = 8'h9f; - 8'h6f: tmp_new_sbox2 = 8'ha8; - 8'h70: tmp_new_sbox2 = 8'h51; - 8'h71: tmp_new_sbox2 = 8'ha3; - 8'h72: tmp_new_sbox2 = 8'h40; - 8'h73: tmp_new_sbox2 = 8'h8f; - 8'h74: tmp_new_sbox2 = 8'h92; - 8'h75: tmp_new_sbox2 = 8'h9d; - 8'h76: tmp_new_sbox2 = 8'h38; - 8'h77: tmp_new_sbox2 = 8'hf5; - 8'h78: tmp_new_sbox2 = 8'hbc; - 8'h79: tmp_new_sbox2 = 8'hb6; - 8'h7a: tmp_new_sbox2 = 8'hda; - 8'h7b: tmp_new_sbox2 = 8'h21; - 8'h7c: tmp_new_sbox2 = 8'h10; - 8'h7d: tmp_new_sbox2 = 8'hff; - 8'h7e: tmp_new_sbox2 = 8'hf3; - 8'h7f: tmp_new_sbox2 = 8'hd2; - 8'h80: tmp_new_sbox2 = 8'hcd; - 8'h81: tmp_new_sbox2 = 8'h0c; - 8'h82: tmp_new_sbox2 = 8'h13; - 8'h83: tmp_new_sbox2 = 8'hec; - 8'h84: tmp_new_sbox2 = 8'h5f; - 8'h85: tmp_new_sbox2 = 8'h97; - 8'h86: tmp_new_sbox2 = 8'h44; - 8'h87: tmp_new_sbox2 = 8'h17; - 8'h88: tmp_new_sbox2 = 8'hc4; - 8'h89: tmp_new_sbox2 = 8'ha7; - 8'h8a: tmp_new_sbox2 = 8'h7e; - 8'h8b: tmp_new_sbox2 = 8'h3d; - 8'h8c: tmp_new_sbox2 = 8'h64; - 8'h8d: tmp_new_sbox2 = 8'h5d; - 8'h8e: tmp_new_sbox2 = 8'h19; - 8'h8f: tmp_new_sbox2 = 8'h73; - 8'h90: tmp_new_sbox2 = 8'h60; - 8'h91: tmp_new_sbox2 = 8'h81; - 8'h92: tmp_new_sbox2 = 8'h4f; - 8'h93: tmp_new_sbox2 = 8'hdc; - 8'h94: tmp_new_sbox2 = 8'h22; - 8'h95: tmp_new_sbox2 = 8'h2a; - 8'h96: tmp_new_sbox2 = 8'h90; - 8'h97: tmp_new_sbox2 = 8'h88; - 8'h98: tmp_new_sbox2 = 8'h46; - 8'h99: tmp_new_sbox2 = 8'hee; - 8'h9a: tmp_new_sbox2 = 8'hb8; - 8'h9b: tmp_new_sbox2 = 8'h14; - 8'h9c: tmp_new_sbox2 = 8'hde; - 8'h9d: tmp_new_sbox2 = 8'h5e; - 8'h9e: tmp_new_sbox2 = 8'h0b; - 8'h9f: tmp_new_sbox2 = 8'hdb; - 8'ha0: tmp_new_sbox2 = 8'he0; - 8'ha1: tmp_new_sbox2 = 8'h32; - 8'ha2: tmp_new_sbox2 = 8'h3a; - 8'ha3: tmp_new_sbox2 = 8'h0a; - 8'ha4: tmp_new_sbox2 = 8'h49; - 8'ha5: tmp_new_sbox2 = 8'h06; - 8'ha6: tmp_new_sbox2 = 8'h24; - 8'ha7: tmp_new_sbox2 = 8'h5c; - 8'ha8: tmp_new_sbox2 = 8'hc2; - 8'ha9: tmp_new_sbox2 = 8'hd3; - 8'haa: tmp_new_sbox2 = 8'hac; - 8'hab: tmp_new_sbox2 = 8'h62; - 8'hac: tmp_new_sbox2 = 8'h91; - 8'had: tmp_new_sbox2 = 8'h95; - 8'hae: tmp_new_sbox2 = 8'he4; - 8'haf: tmp_new_sbox2 = 8'h79; - 8'hb0: tmp_new_sbox2 = 8'he7; - 8'hb1: tmp_new_sbox2 = 8'hc8; - 8'hb2: tmp_new_sbox2 = 8'h37; - 8'hb3: tmp_new_sbox2 = 8'h6d; - 8'hb4: tmp_new_sbox2 = 8'h8d; - 8'hb5: tmp_new_sbox2 = 8'hd5; - 8'hb6: tmp_new_sbox2 = 8'h4e; - 8'hb7: tmp_new_sbox2 = 8'ha9; - 8'hb8: tmp_new_sbox2 = 8'h6c; - 8'hb9: tmp_new_sbox2 = 8'h56; - 8'hba: tmp_new_sbox2 = 8'hf4; - 8'hbb: tmp_new_sbox2 = 8'hea; - 8'hbc: tmp_new_sbox2 = 8'h65; - 8'hbd: tmp_new_sbox2 = 8'h7a; - 8'hbe: tmp_new_sbox2 = 8'hae; - 8'hbf: tmp_new_sbox2 = 8'h08; - 8'hc0: tmp_new_sbox2 = 8'hba; - 8'hc1: tmp_new_sbox2 = 8'h78; - 8'hc2: tmp_new_sbox2 = 8'h25; - 8'hc3: tmp_new_sbox2 = 8'h2e; - 8'hc4: tmp_new_sbox2 = 8'h1c; - 8'hc5: tmp_new_sbox2 = 8'ha6; - 8'hc6: tmp_new_sbox2 = 8'hb4; - 8'hc7: tmp_new_sbox2 = 8'hc6; - 8'hc8: tmp_new_sbox2 = 8'he8; - 8'hc9: tmp_new_sbox2 = 8'hdd; - 8'hca: tmp_new_sbox2 = 8'h74; - 8'hcb: tmp_new_sbox2 = 8'h1f; - 8'hcc: tmp_new_sbox2 = 8'h4b; - 8'hcd: tmp_new_sbox2 = 8'hbd; - 8'hce: tmp_new_sbox2 = 8'h8b; - 8'hcf: tmp_new_sbox2 = 8'h8a; - 8'hd0: tmp_new_sbox2 = 8'h70; - 8'hd1: tmp_new_sbox2 = 8'h3e; - 8'hd2: tmp_new_sbox2 = 8'hb5; - 8'hd3: tmp_new_sbox2 = 8'h66; - 8'hd4: tmp_new_sbox2 = 8'h48; - 8'hd5: tmp_new_sbox2 = 8'h03; - 8'hd6: tmp_new_sbox2 = 8'hf6; - 8'hd7: tmp_new_sbox2 = 8'h0e; - 8'hd8: tmp_new_sbox2 = 8'h61; - 8'hd9: tmp_new_sbox2 = 8'h35; - 8'hda: tmp_new_sbox2 = 8'h57; - 8'hdb: tmp_new_sbox2 = 8'hb9; - 8'hdc: tmp_new_sbox2 = 8'h86; - 8'hdd: tmp_new_sbox2 = 8'hc1; - 8'hde: tmp_new_sbox2 = 8'h1d; - 8'hdf: tmp_new_sbox2 = 8'h9e; - 8'he0: tmp_new_sbox2 = 8'he1; - 8'he1: tmp_new_sbox2 = 8'hf8; - 8'he2: tmp_new_sbox2 = 8'h98; - 8'he3: tmp_new_sbox2 = 8'h11; - 8'he4: tmp_new_sbox2 = 8'h69; - 8'he5: tmp_new_sbox2 = 8'hd9; - 8'he6: tmp_new_sbox2 = 8'h8e; - 8'he7: tmp_new_sbox2 = 8'h94; - 8'he8: tmp_new_sbox2 = 8'h9b; - 8'he9: tmp_new_sbox2 = 8'h1e; - 8'hea: tmp_new_sbox2 = 8'h87; - 8'heb: tmp_new_sbox2 = 8'he9; - 8'hec: tmp_new_sbox2 = 8'hce; - 8'hed: tmp_new_sbox2 = 8'h55; - 8'hee: tmp_new_sbox2 = 8'h28; - 8'hef: tmp_new_sbox2 = 8'hdf; - 8'hf0: tmp_new_sbox2 = 8'h8c; - 8'hf1: tmp_new_sbox2 = 8'ha1; - 8'hf2: tmp_new_sbox2 = 8'h89; - 8'hf3: tmp_new_sbox2 = 8'h0d; - 8'hf4: tmp_new_sbox2 = 8'hbf; - 8'hf5: tmp_new_sbox2 = 8'he6; - 8'hf6: tmp_new_sbox2 = 8'h42; - 8'hf7: tmp_new_sbox2 = 8'h68; - 8'hf8: tmp_new_sbox2 = 8'h41; - 8'hf9: tmp_new_sbox2 = 8'h99; - 8'hfa: tmp_new_sbox2 = 8'h2d; - 8'hfb: tmp_new_sbox2 = 8'h0f; - 8'hfc: tmp_new_sbox2 = 8'hb0; - 8'hfd: tmp_new_sbox2 = 8'h54; - 8'hfe: tmp_new_sbox2 = 8'hbb; - 8'hff: tmp_new_sbox2 = 8'h16; - endcase // case (sboxw[15 : 8]) - end // sbox_rom2 - - - //---------------------------------------------------------------- - // sbox_rom3 - // - // The logic implemeting the ROM with mux. - //---------------------------------------------------------------- - always @* - begin : sbox_rom3 - case(sboxw[7 : 0]) - 8'h00: tmp_new_sbox3 = 8'h63; - 8'h01: tmp_new_sbox3 = 8'h7c; - 8'h02: tmp_new_sbox3 = 8'h77; - 8'h03: tmp_new_sbox3 = 8'h7b; - 8'h04: tmp_new_sbox3 = 8'hf2; - 8'h05: tmp_new_sbox3 = 8'h6b; - 8'h06: tmp_new_sbox3 = 8'h6f; - 8'h07: tmp_new_sbox3 = 8'hc5; - 8'h08: tmp_new_sbox3 = 8'h30; - 8'h09: tmp_new_sbox3 = 8'h01; - 8'h0a: tmp_new_sbox3 = 8'h67; - 8'h0b: tmp_new_sbox3 = 8'h2b; - 8'h0c: tmp_new_sbox3 = 8'hfe; - 8'h0d: tmp_new_sbox3 = 8'hd7; - 8'h0e: tmp_new_sbox3 = 8'hab; - 8'h0f: tmp_new_sbox3 = 8'h76; - 8'h10: tmp_new_sbox3 = 8'hca; - 8'h11: tmp_new_sbox3 = 8'h82; - 8'h12: tmp_new_sbox3 = 8'hc9; - 8'h13: tmp_new_sbox3 = 8'h7d; - 8'h14: tmp_new_sbox3 = 8'hfa; - 8'h15: tmp_new_sbox3 = 8'h59; - 8'h16: tmp_new_sbox3 = 8'h47; - 8'h17: tmp_new_sbox3 = 8'hf0; - 8'h18: tmp_new_sbox3 = 8'had; - 8'h19: tmp_new_sbox3 = 8'hd4; - 8'h1a: tmp_new_sbox3 = 8'ha2; - 8'h1b: tmp_new_sbox3 = 8'haf; - 8'h1c: tmp_new_sbox3 = 8'h9c; - 8'h1d: tmp_new_sbox3 = 8'ha4; - 8'h1e: tmp_new_sbox3 = 8'h72; - 8'h1f: tmp_new_sbox3 = 8'hc0; - 8'h20: tmp_new_sbox3 = 8'hb7; - 8'h21: tmp_new_sbox3 = 8'hfd; - 8'h22: tmp_new_sbox3 = 8'h93; - 8'h23: tmp_new_sbox3 = 8'h26; - 8'h24: tmp_new_sbox3 = 8'h36; - 8'h25: tmp_new_sbox3 = 8'h3f; - 8'h26: tmp_new_sbox3 = 8'hf7; - 8'h27: tmp_new_sbox3 = 8'hcc; - 8'h28: tmp_new_sbox3 = 8'h34; - 8'h29: tmp_new_sbox3 = 8'ha5; - 8'h2a: tmp_new_sbox3 = 8'he5; - 8'h2b: tmp_new_sbox3 = 8'hf1; - 8'h2c: tmp_new_sbox3 = 8'h71; - 8'h2d: tmp_new_sbox3 = 8'hd8; - 8'h2e: tmp_new_sbox3 = 8'h31; - 8'h2f: tmp_new_sbox3 = 8'h15; - 8'h30: tmp_new_sbox3 = 8'h04; - 8'h31: tmp_new_sbox3 = 8'hc7; - 8'h32: tmp_new_sbox3 = 8'h23; - 8'h33: tmp_new_sbox3 = 8'hc3; - 8'h34: tmp_new_sbox3 = 8'h18; - 8'h35: tmp_new_sbox3 = 8'h96; - 8'h36: tmp_new_sbox3 = 8'h05; - 8'h37: tmp_new_sbox3 = 8'h9a; - 8'h38: tmp_new_sbox3 = 8'h07; - 8'h39: tmp_new_sbox3 = 8'h12; - 8'h3a: tmp_new_sbox3 = 8'h80; - 8'h3b: tmp_new_sbox3 = 8'he2; - 8'h3c: tmp_new_sbox3 = 8'heb; - 8'h3d: tmp_new_sbox3 = 8'h27; - 8'h3e: tmp_new_sbox3 = 8'hb2; - 8'h3f: tmp_new_sbox3 = 8'h75; - 8'h40: tmp_new_sbox3 = 8'h09; - 8'h41: tmp_new_sbox3 = 8'h83; - 8'h42: tmp_new_sbox3 = 8'h2c; - 8'h43: tmp_new_sbox3 = 8'h1a; - 8'h44: tmp_new_sbox3 = 8'h1b; - 8'h45: tmp_new_sbox3 = 8'h6e; - 8'h46: tmp_new_sbox3 = 8'h5a; - 8'h47: tmp_new_sbox3 = 8'ha0; - 8'h48: tmp_new_sbox3 = 8'h52; - 8'h49: tmp_new_sbox3 = 8'h3b; - 8'h4a: tmp_new_sbox3 = 8'hd6; - 8'h4b: tmp_new_sbox3 = 8'hb3; - 8'h4c: tmp_new_sbox3 = 8'h29; - 8'h4d: tmp_new_sbox3 = 8'he3; - 8'h4e: tmp_new_sbox3 = 8'h2f; - 8'h4f: tmp_new_sbox3 = 8'h84; - 8'h50: tmp_new_sbox3 = 8'h53; - 8'h51: tmp_new_sbox3 = 8'hd1; - 8'h52: tmp_new_sbox3 = 8'h00; - 8'h53: tmp_new_sbox3 = 8'hed; - 8'h54: tmp_new_sbox3 = 8'h20; - 8'h55: tmp_new_sbox3 = 8'hfc; - 8'h56: tmp_new_sbox3 = 8'hb1; - 8'h57: tmp_new_sbox3 = 8'h5b; - 8'h58: tmp_new_sbox3 = 8'h6a; - 8'h59: tmp_new_sbox3 = 8'hcb; - 8'h5a: tmp_new_sbox3 = 8'hbe; - 8'h5b: tmp_new_sbox3 = 8'h39; - 8'h5c: tmp_new_sbox3 = 8'h4a; - 8'h5d: tmp_new_sbox3 = 8'h4c; - 8'h5e: tmp_new_sbox3 = 8'h58; - 8'h5f: tmp_new_sbox3 = 8'hcf; - 8'h60: tmp_new_sbox3 = 8'hd0; - 8'h61: tmp_new_sbox3 = 8'hef; - 8'h62: tmp_new_sbox3 = 8'haa; - 8'h63: tmp_new_sbox3 = 8'hfb; - 8'h64: tmp_new_sbox3 = 8'h43; - 8'h65: tmp_new_sbox3 = 8'h4d; - 8'h66: tmp_new_sbox3 = 8'h33; - 8'h67: tmp_new_sbox3 = 8'h85; - 8'h68: tmp_new_sbox3 = 8'h45; - 8'h69: tmp_new_sbox3 = 8'hf9; - 8'h6a: tmp_new_sbox3 = 8'h02; - 8'h6b: tmp_new_sbox3 = 8'h7f; - 8'h6c: tmp_new_sbox3 = 8'h50; - 8'h6d: tmp_new_sbox3 = 8'h3c; - 8'h6e: tmp_new_sbox3 = 8'h9f; - 8'h6f: tmp_new_sbox3 = 8'ha8; - 8'h70: tmp_new_sbox3 = 8'h51; - 8'h71: tmp_new_sbox3 = 8'ha3; - 8'h72: tmp_new_sbox3 = 8'h40; - 8'h73: tmp_new_sbox3 = 8'h8f; - 8'h74: tmp_new_sbox3 = 8'h92; - 8'h75: tmp_new_sbox3 = 8'h9d; - 8'h76: tmp_new_sbox3 = 8'h38; - 8'h77: tmp_new_sbox3 = 8'hf5; - 8'h78: tmp_new_sbox3 = 8'hbc; - 8'h79: tmp_new_sbox3 = 8'hb6; - 8'h7a: tmp_new_sbox3 = 8'hda; - 8'h7b: tmp_new_sbox3 = 8'h21; - 8'h7c: tmp_new_sbox3 = 8'h10; - 8'h7d: tmp_new_sbox3 = 8'hff; - 8'h7e: tmp_new_sbox3 = 8'hf3; - 8'h7f: tmp_new_sbox3 = 8'hd2; - 8'h80: tmp_new_sbox3 = 8'hcd; - 8'h81: tmp_new_sbox3 = 8'h0c; - 8'h82: tmp_new_sbox3 = 8'h13; - 8'h83: tmp_new_sbox3 = 8'hec; - 8'h84: tmp_new_sbox3 = 8'h5f; - 8'h85: tmp_new_sbox3 = 8'h97; - 8'h86: tmp_new_sbox3 = 8'h44; - 8'h87: tmp_new_sbox3 = 8'h17; - 8'h88: tmp_new_sbox3 = 8'hc4; - 8'h89: tmp_new_sbox3 = 8'ha7; - 8'h8a: tmp_new_sbox3 = 8'h7e; - 8'h8b: tmp_new_sbox3 = 8'h3d; - 8'h8c: tmp_new_sbox3 = 8'h64; - 8'h8d: tmp_new_sbox3 = 8'h5d; - 8'h8e: tmp_new_sbox3 = 8'h19; - 8'h8f: tmp_new_sbox3 = 8'h73; - 8'h90: tmp_new_sbox3 = 8'h60; - 8'h91: tmp_new_sbox3 = 8'h81; - 8'h92: tmp_new_sbox3 = 8'h4f; - 8'h93: tmp_new_sbox3 = 8'hdc; - 8'h94: tmp_new_sbox3 = 8'h22; - 8'h95: tmp_new_sbox3 = 8'h2a; - 8'h96: tmp_new_sbox3 = 8'h90; - 8'h97: tmp_new_sbox3 = 8'h88; - 8'h98: tmp_new_sbox3 = 8'h46; - 8'h99: tmp_new_sbox3 = 8'hee; - 8'h9a: tmp_new_sbox3 = 8'hb8; - 8'h9b: tmp_new_sbox3 = 8'h14; - 8'h9c: tmp_new_sbox3 = 8'hde; - 8'h9d: tmp_new_sbox3 = 8'h5e; - 8'h9e: tmp_new_sbox3 = 8'h0b; - 8'h9f: tmp_new_sbox3 = 8'hdb; - 8'ha0: tmp_new_sbox3 = 8'he0; - 8'ha1: tmp_new_sbox3 = 8'h32; - 8'ha2: tmp_new_sbox3 = 8'h3a; - 8'ha3: tmp_new_sbox3 = 8'h0a; - 8'ha4: tmp_new_sbox3 = 8'h49; - 8'ha5: tmp_new_sbox3 = 8'h06; - 8'ha6: tmp_new_sbox3 = 8'h24; - 8'ha7: tmp_new_sbox3 = 8'h5c; - 8'ha8: tmp_new_sbox3 = 8'hc2; - 8'ha9: tmp_new_sbox3 = 8'hd3; - 8'haa: tmp_new_sbox3 = 8'hac; - 8'hab: tmp_new_sbox3 = 8'h62; - 8'hac: tmp_new_sbox3 = 8'h91; - 8'had: tmp_new_sbox3 = 8'h95; - 8'hae: tmp_new_sbox3 = 8'he4; - 8'haf: tmp_new_sbox3 = 8'h79; - 8'hb0: tmp_new_sbox3 = 8'he7; - 8'hb1: tmp_new_sbox3 = 8'hc8; - 8'hb2: tmp_new_sbox3 = 8'h37; - 8'hb3: tmp_new_sbox3 = 8'h6d; - 8'hb4: tmp_new_sbox3 = 8'h8d; - 8'hb5: tmp_new_sbox3 = 8'hd5; - 8'hb6: tmp_new_sbox3 = 8'h4e; - 8'hb7: tmp_new_sbox3 = 8'ha9; - 8'hb8: tmp_new_sbox3 = 8'h6c; - 8'hb9: tmp_new_sbox3 = 8'h56; - 8'hba: tmp_new_sbox3 = 8'hf4; - 8'hbb: tmp_new_sbox3 = 8'hea; - 8'hbc: tmp_new_sbox3 = 8'h65; - 8'hbd: tmp_new_sbox3 = 8'h7a; - 8'hbe: tmp_new_sbox3 = 8'hae; - 8'hbf: tmp_new_sbox3 = 8'h08; - 8'hc0: tmp_new_sbox3 = 8'hba; - 8'hc1: tmp_new_sbox3 = 8'h78; - 8'hc2: tmp_new_sbox3 = 8'h25; - 8'hc3: tmp_new_sbox3 = 8'h2e; - 8'hc4: tmp_new_sbox3 = 8'h1c; - 8'hc5: tmp_new_sbox3 = 8'ha6; - 8'hc6: tmp_new_sbox3 = 8'hb4; - 8'hc7: tmp_new_sbox3 = 8'hc6; - 8'hc8: tmp_new_sbox3 = 8'he8; - 8'hc9: tmp_new_sbox3 = 8'hdd; - 8'hca: tmp_new_sbox3 = 8'h74; - 8'hcb: tmp_new_sbox3 = 8'h1f; - 8'hcc: tmp_new_sbox3 = 8'h4b; - 8'hcd: tmp_new_sbox3 = 8'hbd; - 8'hce: tmp_new_sbox3 = 8'h8b; - 8'hcf: tmp_new_sbox3 = 8'h8a; - 8'hd0: tmp_new_sbox3 = 8'h70; - 8'hd1: tmp_new_sbox3 = 8'h3e; - 8'hd2: tmp_new_sbox3 = 8'hb5; - 8'hd3: tmp_new_sbox3 = 8'h66; - 8'hd4: tmp_new_sbox3 = 8'h48; - 8'hd5: tmp_new_sbox3 = 8'h03; - 8'hd6: tmp_new_sbox3 = 8'hf6; - 8'hd7: tmp_new_sbox3 = 8'h0e; - 8'hd8: tmp_new_sbox3 = 8'h61; - 8'hd9: tmp_new_sbox3 = 8'h35; - 8'hda: tmp_new_sbox3 = 8'h57; - 8'hdb: tmp_new_sbox3 = 8'hb9; - 8'hdc: tmp_new_sbox3 = 8'h86; - 8'hdd: tmp_new_sbox3 = 8'hc1; - 8'hde: tmp_new_sbox3 = 8'h1d; - 8'hdf: tmp_new_sbox3 = 8'h9e; - 8'he0: tmp_new_sbox3 = 8'he1; - 8'he1: tmp_new_sbox3 = 8'hf8; - 8'he2: tmp_new_sbox3 = 8'h98; - 8'he3: tmp_new_sbox3 = 8'h11; - 8'he4: tmp_new_sbox3 = 8'h69; - 8'he5: tmp_new_sbox3 = 8'hd9; - 8'he6: tmp_new_sbox3 = 8'h8e; - 8'he7: tmp_new_sbox3 = 8'h94; - 8'he8: tmp_new_sbox3 = 8'h9b; - 8'he9: tmp_new_sbox3 = 8'h1e; - 8'hea: tmp_new_sbox3 = 8'h87; - 8'heb: tmp_new_sbox3 = 8'he9; - 8'hec: tmp_new_sbox3 = 8'hce; - 8'hed: tmp_new_sbox3 = 8'h55; - 8'hee: tmp_new_sbox3 = 8'h28; - 8'hef: tmp_new_sbox3 = 8'hdf; - 8'hf0: tmp_new_sbox3 = 8'h8c; - 8'hf1: tmp_new_sbox3 = 8'ha1; - 8'hf2: tmp_new_sbox3 = 8'h89; - 8'hf3: tmp_new_sbox3 = 8'h0d; - 8'hf4: tmp_new_sbox3 = 8'hbf; - 8'hf5: tmp_new_sbox3 = 8'he6; - 8'hf6: tmp_new_sbox3 = 8'h42; - 8'hf7: tmp_new_sbox3 = 8'h68; - 8'hf8: tmp_new_sbox3 = 8'h41; - 8'hf9: tmp_new_sbox3 = 8'h99; - 8'hfa: tmp_new_sbox3 = 8'h2d; - 8'hfb: tmp_new_sbox3 = 8'h0f; - 8'hfc: tmp_new_sbox3 = 8'hb0; - 8'hfd: tmp_new_sbox3 = 8'h54; - 8'hfe: tmp_new_sbox3 = 8'hbb; - 8'hff: tmp_new_sbox3 = 8'h16; - endcase // case (sboxw[7 : 0]) - end // sbox_rom3 + assign new_sboxw[31 : 24] = sbox[sboxw[31 : 24]]; + assign new_sboxw[23 : 16] = sbox[sboxw[23 : 16]]; + assign new_sboxw[15 : 08] = sbox[sboxw[15 : 08]]; + assign new_sboxw[07 : 00] = sbox[sboxw[07 : 00]]; endmodule // aes_sbox -- cgit v1.2.3