module __bfloat16__from_int8( input wire [7:0] x, output wire [15:0] out ); wire sign; wire [6:0] unsigned__1; wire [6:0] reverse_128; wire [7:0] one_hot_129; wire [3:0] MAX_EXPONENT; wire [3:0] lz; wire [3:0] exp; wire eq_137; wire [7:0] BIAS; wire eq_143; wire [7:0] bexp; wire [3:0] add_146; wire [6:0] fraction; wire [15:0] result__2; assign sign = x[7]; assign unsigned__1 = sign ? -x[6:0] : x[6:0]; assign reverse_128 = {unsigned__1[0], unsigned__1[1], unsigned__1[2], unsigned__1[3], unsigned__1[4], unsigned__1[5], unsigned__1[6]}; assign one_hot_129 = {reverse_128[6:0] == 7'h00, reverse_128[6] && reverse_128[5:0] == 6'h00, reverse_128[5] && reverse_128[4:0] == 5'h00, reverse_128[4] && reverse_128[3:0] == 4'h0, reverse_128[3] && reverse_128[2:0] == 3'h0, reverse_128[2] && reverse_128[1:0] == 2'h0, reverse_128[1] && !reverse_128[0], reverse_128[0]}; assign MAX_EXPONENT = 4'h6; assign lz = {1'h0, {one_hot_129[4] | one_hot_129[5] | one_hot_129[6] | one_hot_129[7], one_hot_129[2] | one_hot_129[3] | one_hot_129[6] | one_hot_129[7], one_hot_129[1] | one_hot_129[3] | one_hot_129[5] | one_hot_129[7]}}; assign exp = MAX_EXPONENT - lz; assign eq_137 = unsigned__1 == 7'h00; assign BIAS = 8'h7f; assign eq_143 = x == 8'h80; assign bexp = {4'h0, exp} + BIAS; assign add_146 = lz + 4'h1; assign fraction = add_146 >= 4'h7 ? 7'h00 : unsigned__1 << add_146; assign result__2 = {sign, eq_143 ? 8'h86 : bexp & {8{~eq_137}}, fraction & {7{~(eq_143 | eq_137)}}}; assign out = result__2; endmodule