module bsg_thermometer_count
(
  i,
  o
);

  input [15:0] i;
  output [4:0] o;
  wire [4:0] o;
  wire N0,N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14;
  wire [15:0] \big.one_hot ;

  bsg_encode_one_hot_width_p17
  \big.encode_one_hot 
  (
    .i({ i[15:15], \big.one_hot  }),
    .addr_o(o)
  );

  assign \big.one_hot [15] = N0 & i[14];
  assign N0 = ~i[15];
  assign \big.one_hot [14] = N1 & i[13];
  assign N1 = ~i[14];
  assign \big.one_hot [13] = N2 & i[12];
  assign N2 = ~i[13];
  assign \big.one_hot [12] = N3 & i[11];
  assign N3 = ~i[12];
  assign \big.one_hot [11] = N4 & i[10];
  assign N4 = ~i[11];
  assign \big.one_hot [10] = N5 & i[9];
  assign N5 = ~i[10];
  assign \big.one_hot [9] = N6 & i[8];
  assign N6 = ~i[9];
  assign \big.one_hot [8] = N7 & i[7];
  assign N7 = ~i[8];
  assign \big.one_hot [7] = N8 & i[6];
  assign N8 = ~i[7];
  assign \big.one_hot [6] = N9 & i[5];
  assign N9 = ~i[6];
  assign \big.one_hot [5] = N10 & i[4];
  assign N10 = ~i[5];
  assign \big.one_hot [4] = N11 & i[3];
  assign N11 = ~i[4];
  assign \big.one_hot [3] = N12 & i[2];
  assign N12 = ~i[3];
  assign \big.one_hot [2] = N13 & i[1];
  assign N13 = ~i[2];
  assign \big.one_hot [1] = N14 & i[0];
  assign N14 = ~i[1];
  assign \big.one_hot [0] = ~i[0];

endmodule