//substitution boxes 


module sbox1(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd14; 
    	 1:out = 4'd4; 
    	 2:out = 4'd13; 
    	 3:out = 4'd1; 
    	 4:out = 4'd2; 
    	 5:out = 4'd15; 
    	 6:out = 4'd11; 
    	 7:out = 4'd8; 
    	 8:out = 4'd3; 
    	 9:out = 4'd10; 
    	 10:out = 4'd6; 
    	 11:out = 4'd12; 
    	 12:out = 4'd5; 
    	 13:out = 4'd9; 
    	 14:out = 4'd0; 
    	 15:out = 4'd7; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd0; 
    	 1:out = 4'd15; 
    	 2:out = 4'd7; 
    	 3:out = 4'd4; 
    	 4:out = 4'd14; 
    	 5:out = 4'd2; 
    	 6:out = 4'd13; 
    	 7:out = 4'd1; 
    	 8:out = 4'd10; 
    	 9:out = 4'd6; 
    	 10:out = 4'd12; 
    	 11:out = 4'd11; 
    	 12:out = 4'd9; 
    	 13:out = 4'd5; 
    	 14:out = 4'd3; 
    	 15:out = 4'd8; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd4; 
    	 1:out = 4'd1; 
    	 2:out = 4'd14; 
    	 3:out = 4'd8; 
    	 4:out = 4'd13; 
    	 5:out = 4'd6; 
    	 6:out = 4'd2; 
    	 7:out = 4'd11; 
    	 8:out = 4'd15; 
    	 9:out = 4'd12; 
    	 10:out = 4'd9; 
    	 11:out = 4'd7; 
    	 12:out = 4'd3; 
    	 13:out = 4'd10; 
    	 14:out = 4'd5; 
    	 15:out = 4'd0; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd15; 
    	 1:out = 4'd12; 
    	 2:out = 4'd8; 
    	 3:out = 4'd2; 
    	 4:out = 4'd4; 
    	 5:out = 4'd9; 
    	 6:out = 4'd1; 
    	 7:out = 4'd7; 
    	 8:out = 4'd5; 
    	 9:out = 4'd11; 
    	 10:out = 4'd3; 
    	 11:out = 4'd14; 
    	 12:out = 4'd10; 
    	 13:out = 4'd0; 
    	 14:out = 4'd6; 
    	 15:out = 4'd13; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (*)

endmodule //  sbox1




module sbox2(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd15; 
    	 1:out = 4'd1; 
    	 2:out = 4'd8; 
    	 3:out = 4'd14; 
    	 4:out = 4'd6; 
    	 5:out = 4'd11; 
    	 6:out = 4'd3; 
    	 7:out = 4'd4; 
    	 8:out = 4'd9; 
    	 9:out = 4'd7; 
    	 10:out = 4'd2; 
    	 11:out = 4'd13; 
    	 12:out = 4'd12; 
    	 13:out = 4'd0; 
    	 14:out = 4'd5; 
    	 15:out = 4'd10; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd3; 
    	 1:out = 4'd13; 
    	 2:out = 4'd4; 
    	 3:out = 4'd7; 
    	 4:out = 4'd15; 
    	 5:out = 4'd2; 
    	 6:out = 4'd8; 
    	 7:out = 4'd14; 
    	 8:out = 4'd12; 
    	 9:out = 4'd0; 
    	 10:out = 4'd1; 
    	 11:out = 4'd10; 
    	 12:out = 4'd6; 
    	 13:out = 4'd9; 
    	 14:out = 4'd11; 
    	 15:out = 4'd5; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd0; 
    	 1:out = 4'd14; 
    	 2:out = 4'd7; 
    	 3:out = 4'd11; 
    	 4:out = 4'd10; 
    	 5:out = 4'd4; 
    	 6:out = 4'd13; 
    	 7:out = 4'd1; 
    	 8:out = 4'd5; 
    	 9:out = 4'd8; 
    	 10:out = 4'd12; 
    	 11:out = 4'd6; 
    	 12:out = 4'd9; 
    	 13:out = 4'd3; 
    	 14:out = 4'd2; 
    	 15:out = 4'd15; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd13; 
    	 1:out = 4'd8; 
    	 2:out = 4'd10; 
    	 3:out = 4'd1; 
    	 4:out = 4'd3; 
    	 5:out = 4'd15; 
    	 6:out = 4'd4; 
    	 7:out = 4'd2; 
    	 8:out = 4'd11; 
    	 9:out = 4'd6; 
    	 10:out = 4'd7; 
    	 11:out = 4'd12; 
    	 12:out = 4'd0; 
    	 13:out = 4'd5; 
    	 14:out = 4'd14; 
    	 15:out = 4'd9; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (*)

endmodule //  sbox2



module sbox3(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd10; 
    	 1:out = 4'd0; 
    	 2:out = 4'd9; 
    	 3:out = 4'd14; 
    	 4:out = 4'd6; 
    	 5:out = 4'd3; 
    	 6:out = 4'd15; 
    	 7:out = 4'd5; 
    	 8:out = 4'd1; 
    	 9:out = 4'd13; 
    	 10:out = 4'd12; 
    	 11:out = 4'd7; 
    	 12:out = 4'd11; 
    	 13:out = 4'd4; 
    	 14:out = 4'd2; 
    	 15:out = 4'd8; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd13; 
    	 1:out = 4'd7; 
    	 2:out = 4'd0; 
    	 3:out = 4'd9; 
    	 4:out = 4'd3; 
    	 5:out = 4'd4; 
    	 6:out = 4'd6; 
    	 7:out = 4'd10; 
    	 8:out = 4'd2; 
    	 9:out = 4'd8; 
    	 10:out = 4'd5; 
    	 11:out = 4'd14; 
    	 12:out = 4'd12; 
    	 13:out = 4'd11; 
    	 14:out = 4'd15; 
    	 15:out = 4'd1; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd13; 
    	 1:out = 4'd6; 
    	 2:out = 4'd4; 
    	 3:out = 4'd9; 
    	 4:out = 4'd8; 
    	 5:out = 4'd15; 
    	 6:out = 4'd3; 
    	 7:out = 4'd0; 
    	 8:out = 4'd11; 
    	 9:out = 4'd1; 
    	 10:out = 4'd2; 
    	 11:out = 4'd12; 
    	 12:out = 4'd5; 
    	 13:out = 4'd10; 
    	 14:out = 4'd14; 
    	 15:out = 4'd7; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd1; 
    	 1:out = 4'd10; 
    	 2:out = 4'd13; 
    	 3:out = 4'd0; 
    	 4:out = 4'd6; 
    	 5:out = 4'd9; 
    	 6:out = 4'd8; 
    	 7:out = 4'd7; 
    	 8:out = 4'd4; 
    	 9:out = 4'd15; 
    	 10:out = 4'd14; 
    	 11:out = 4'd3; 
    	 12:out = 4'd11; 
    	 13:out = 4'd5; 
    	 14:out = 4'd2; 
    	 15:out = 4'd12; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (*)

endmodule //  sbox3



module sbox4(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd7; 
    	 1:out = 4'd13; 
    	 2:out = 4'd14; 
    	 3:out = 4'd3; 
    	 4:out = 4'd0; 
    	 5:out = 4'd6; 
    	 6:out = 4'd9; 
    	 7:out = 4'd10; 
    	 8:out = 4'd1; 
    	 9:out = 4'd2; 
    	 10:out = 4'd8; 
    	 11:out = 4'd5; 
    	 12:out = 4'd11; 
    	 13:out = 4'd12; 
    	 14:out = 4'd4; 
    	 15:out = 4'd15; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd13; 
    	 1:out = 4'd8; 
    	 2:out = 4'd11; 
    	 3:out = 4'd5; 
    	 4:out = 4'd6; 
    	 5:out = 4'd15; 
    	 6:out = 4'd0; 
    	 7:out = 4'd3; 
    	 8:out = 4'd4; 
    	 9:out = 4'd7; 
    	 10:out = 4'd2; 
    	 11:out = 4'd12; 
    	 12:out = 4'd1; 
    	 13:out = 4'd10; 
    	 14:out = 4'd14; 
    	 15:out = 4'd9; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd10; 
    	 1:out = 4'd6; 
    	 2:out = 4'd9; 
    	 3:out = 4'd0; 
    	 4:out = 4'd12; 
    	 5:out = 4'd11; 
    	 6:out = 4'd7; 
    	 7:out = 4'd13; 
    	 8:out = 4'd15; 
    	 9:out = 4'd1; 
    	 10:out = 4'd3; 
    	 11:out = 4'd14; 
    	 12:out = 4'd5; 
    	 13:out = 4'd2; 
    	 14:out = 4'd8; 
    	 15:out = 4'd4; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd3; 
    	 1:out = 4'd15; 
    	 2:out = 4'd0; 
    	 3:out = 4'd6; 
    	 4:out = 4'd10; 
    	 5:out = 4'd1; 
    	 6:out = 4'd13; 
    	 7:out = 4'd8; 
    	 8:out = 4'd9; 
    	 9:out = 4'd4; 
    	 10:out = 4'd5; 
    	 11:out = 4'd11; 
    	 12:out = 4'd12; 
    	 13:out = 4'd7; 
    	 14:out = 4'd2; 
    	 15:out = 4'd14; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (posedge clk)

endmodule //  sbox4



module sbox5(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd2; 
    	 1:out = 4'd12; 
    	 2:out = 4'd4; 
    	 3:out = 4'd1; 
    	 4:out = 4'd7; 
    	 5:out = 4'd10; 
    	 6:out = 4'd11; 
    	 7:out = 4'd6; 
    	 8:out = 4'd8; 
    	 9:out = 4'd5; 
    	 10:out = 4'd3; 
    	 11:out = 4'd15; 
    	 12:out = 4'd13; 
    	 13:out = 4'd0; 
    	 14:out = 4'd14; 
    	 15:out = 4'd9; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd14; 
    	 1:out = 4'd11; 
    	 2:out = 4'd2; 
    	 3:out = 4'd12; 
    	 4:out = 4'd4; 
    	 5:out = 4'd7; 
    	 6:out = 4'd13; 
    	 7:out = 4'd1; 
    	 8:out = 4'd5; 
    	 9:out = 4'd0; 
    	 10:out = 4'd15; 
    	 11:out = 4'd10; 
    	 12:out = 4'd3; 
    	 13:out = 4'd9; 
    	 14:out = 4'd8; 
    	 15:out = 4'd6; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd4; 
    	 1:out = 4'd2; 
    	 2:out = 4'd1; 
    	 3:out = 4'd11; 
    	 4:out = 4'd10; 
    	 5:out = 4'd13; 
    	 6:out = 4'd7; 
    	 7:out = 4'd8; 
    	 8:out = 4'd15; 
    	 9:out = 4'd9; 
    	 10:out = 4'd12; 
    	 11:out = 4'd5; 
    	 12:out = 4'd6; 
    	 13:out = 4'd3; 
    	 14:out = 4'd0; 
    	 15:out = 4'd14; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd11; 
    	 1:out = 4'd8; 
    	 2:out = 4'd12; 
    	 3:out = 4'd7; 
    	 4:out = 4'd1; 
    	 5:out = 4'd14; 
    	 6:out = 4'd2; 
    	 7:out = 4'd13; 
    	 8:out = 4'd6; 
    	 9:out = 4'd15; 
    	 10:out = 4'd0; 
    	 11:out = 4'd9; 
    	 12:out = 4'd10; 
    	 13:out = 4'd4; 
    	 14:out = 4'd5; 
    	 15:out = 4'd3; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (posedge clk)

endmodule //  sbox5


module sbox6(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd12; 
    	 1:out = 4'd1; 
    	 2:out = 4'd10; 
    	 3:out = 4'd15; 
    	 4:out = 4'd9; 
    	 5:out = 4'd2; 
    	 6:out = 4'd6; 
    	 7:out = 4'd8; 
    	 8:out = 4'd0; 
    	 9:out = 4'd13; 
    	 10:out = 4'd3; 
    	 11:out = 4'd4; 
    	 12:out = 4'd14; 
    	 13:out = 4'd7; 
    	 14:out = 4'd5; 
    	 15:out = 4'd11; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd10; 
    	 1:out = 4'd15; 
    	 2:out = 4'd4; 
    	 3:out = 4'd2; 
    	 4:out = 4'd7; 
    	 5:out = 4'd12; 
    	 6:out = 4'd9; 
    	 7:out = 4'd5; 
    	 8:out = 4'd6; 
    	 9:out = 4'd1; 
    	 10:out = 4'd13; 
    	 11:out = 4'd14; 
    	 12:out = 4'd0; 
    	 13:out = 4'd11; 
    	 14:out = 4'd3; 
    	 15:out = 4'd8; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd9; 
    	 1:out = 4'd14; 
    	 2:out = 4'd15; 
    	 3:out = 4'd5; 
    	 4:out = 4'd2; 
    	 5:out = 4'd8; 
    	 6:out = 4'd12; 
    	 7:out = 4'd3; 
    	 8:out = 4'd7; 
    	 9:out = 4'd0; 
    	 10:out = 4'd4; 
    	 11:out = 4'd10; 
    	 12:out = 4'd1; 
    	 13:out = 4'd13; 
    	 14:out = 4'd11; 
    	 15:out = 4'd6; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd4; 
    	 1:out = 4'd3; 
    	 2:out = 4'd2; 
    	 3:out = 4'd12; 
    	 4:out = 4'd9; 
    	 5:out = 4'd5; 
    	 6:out = 4'd15; 
    	 7:out = 4'd10; 
    	 8:out = 4'd11; 
    	 9:out = 4'd14; 
    	 10:out = 4'd1; 
    	 11:out = 4'd7; 
    	 12:out = 4'd6; 
    	 13:out = 4'd0; 
    	 14:out = 4'd8; 
    	 15:out = 4'd13; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (posedge clk)

endmodule //  sbox6


module sbox7(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd4; 
    	 1:out = 4'd11; 
    	 2:out = 4'd2; 
    	 3:out = 4'd14; 
    	 4:out = 4'd15; 
    	 5:out = 4'd0; 
    	 6:out = 4'd8; 
    	 7:out = 4'd13; 
    	 8:out = 4'd3; 
    	 9:out = 4'd12; 
    	 10:out = 4'd9; 
    	 11:out = 4'd7; 
    	 12:out = 4'd5; 
    	 13:out = 4'd10; 
    	 14:out = 4'd6; 
    	 15:out = 4'd1; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd13; 
    	 1:out = 4'd0; 
    	 2:out = 4'd11; 
    	 3:out = 4'd7; 
    	 4:out = 4'd4; 
    	 5:out = 4'd9; 
    	 6:out = 4'd1; 
    	 7:out = 4'd10; 
    	 8:out = 4'd14; 
    	 9:out = 4'd3; 
    	 10:out = 4'd5; 
    	 11:out = 4'd12; 
    	 12:out = 4'd2; 
    	 13:out = 4'd15; 
    	 14:out = 4'd8; 
    	 15:out = 4'd6; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd1; 
    	 1:out = 4'd4; 
    	 2:out = 4'd11; 
    	 3:out = 4'd13; 
    	 4:out = 4'd12; 
    	 5:out = 4'd3; 
    	 6:out = 4'd7; 
    	 7:out = 4'd14; 
    	 8:out = 4'd10; 
    	 9:out = 4'd15; 
    	 10:out = 4'd6; 
    	 11:out = 4'd8; 
    	 12:out = 4'd0; 
    	 13:out = 4'd5; 
    	 14:out = 4'd9; 
    	 15:out = 4'd2; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd6; 
    	 1:out = 4'd11; 
    	 2:out = 4'd13; 
    	 3:out = 4'd8; 
    	 4:out = 4'd1; 
    	 5:out = 4'd4; 
    	 6:out = 4'd10; 
    	 7:out = 4'd7; 
    	 8:out = 4'd9; 
    	 9:out = 4'd5; 
    	 10:out = 4'd0; 
    	 11:out = 4'd15; 
    	 12:out = 4'd14; 
    	 13:out = 4'd2; 
    	 14:out = 4'd3; 
    	 15:out = 4'd12; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (posedge clk)

endmodule //  sbox7




module sbox8(row,col,out); 
   input wire [1:0] row;     //  bit 1 and 6 form the 2-bit value
   input wire [3:0] col;     //  bit 2,3,4,5 form the 4-bit value
   output reg [3:0] out;     //  subsutition table returns 4-bit values

   always@(*) 
     begin 
    //all values are considered as 4 bits wide 
    case(row) 
      0: 
        begin 
           case(col) 
    	 0:out = 4'd13; 
    	 1:out = 4'd2; 
    	 2:out = 4'd8; 
    	 3:out = 4'd4; 
    	 4:out = 4'd6; 
    	 5:out = 4'd15; 
    	 6:out = 4'd11; 
    	 7:out = 4'd1; 
    	 8:out = 4'd10; 
    	 9:out = 4'd9; 
    	 10:out = 4'd3; 
    	 11:out = 4'd14; 
    	 12:out = 4'd5; 
    	 13:out = 4'd0; 
    	 14:out = 4'd12; 
    	 15:out = 4'd7; 
           endcase //  case (col)
        end //  case: 0

      1: 
        begin 
           case(col) 
    	 0:out = 4'd1; 
    	 1:out = 4'd15; 
    	 2:out = 4'd13; 
    	 3:out = 4'd8; 
    	 4:out = 4'd10; 
    	 5:out = 4'd3; 
    	 6:out = 4'd7; 
    	 7:out = 4'd4; 
    	 8:out = 4'd12; 
    	 9:out = 4'd5; 
    	 10:out = 4'd6; 
    	 11:out = 4'd11; 
    	 12:out = 4'd0; 
    	 13:out = 4'd14; 
    	 14:out = 4'd9; 
    	 15:out = 4'd2; 
           endcase //  case (col)
        end //  case: 1

      2: 
        begin 
           case(col) 
    	 0:out = 4'd7; 
    	 1:out = 4'd11; 
    	 2:out = 4'd4; 
    	 3:out = 4'd1; 
    	 4:out = 4'd9; 
    	 5:out = 4'd12; 
    	 6:out = 4'd14; 
    	 7:out = 4'd2; 
    	 8:out = 4'd0; 
    	 9:out = 4'd6; 
    	 10:out = 4'd10; 
    	 11:out = 4'd13; 
    	 12:out = 4'd15; 
    	 13:out = 4'd3; 
    	 14:out = 4'd5; 
    	 15:out = 4'd8; 
           endcase //  case (col)
        end //  case: 2

      3: 
        begin 
           case(col) 
    	 0:out = 4'd2; 
    	 1:out = 4'd1; 
    	 2:out = 4'd14; 
    	 3:out = 4'd7; 
    	 4:out = 4'd4; 
    	 5:out = 4'd10; 
    	 6:out = 4'd8; 
    	 7:out = 4'd13; 
    	 8:out = 4'd15; 
    	 9:out = 4'd12; 
    	 10:out = 4'd9; 
    	 11:out = 4'd0; 
    	 12:out = 4'd3; 
    	 13:out = 4'd5; 
    	 14:out = 4'd6; 
    	 15:out = 4'd11; 
           endcase //  case (col)
        end //  case: 3
    endcase //  case (row)

     end //  always@ (posedge clk)

endmodule //  sbox8