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_129; wire [7:0] one_hot_130; wire [3:0] MAX_EXPONENT; wire [3:0] lz; wire [3:0] exp; wire eq_138; wire [7:0] BIAS; wire eq_144; wire [7:0] bexp; wire [3:0] add_147; 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_129 = {unsigned__1[0], unsigned__1[1], unsigned__1[2], unsigned__1[3], unsigned__1[4], unsigned__1[5], unsigned__1[6]}; assign one_hot_130 = {reverse_129[6:0] == 7'h00, reverse_129[6] && reverse_129[5:0] == 6'h00, reverse_129[5] && reverse_129[4:0] == 5'h00, reverse_129[4] && reverse_129[3:0] == 4'h0, reverse_129[3] && reverse_129[2:0] == 3'h0, reverse_129[2] && reverse_129[1:0] == 2'h0, reverse_129[1] && !reverse_129[0], reverse_129[0]}; assign MAX_EXPONENT = 4'h6; assign lz = {1'h0, {one_hot_130[4] | one_hot_130[5] | one_hot_130[6] | one_hot_130[7], one_hot_130[2] | one_hot_130[3] | one_hot_130[6] | one_hot_130[7], one_hot_130[1] | one_hot_130[3] | one_hot_130[5] | one_hot_130[7]}}; assign exp = MAX_EXPONENT - lz; assign eq_138 = unsigned__1 == 7'h00; assign BIAS = 8'h7f; assign eq_144 = x == 8'h80; assign bexp = {4'h0, exp} + BIAS; assign add_147 = lz + 4'h1; assign fraction = add_147 >= 4'h7 ? 7'h00 : unsigned__1 << add_147; assign result__2 = {sign, eq_144 ? 8'h86 : bexp & {8{~eq_138}}, fraction & {7{~(eq_144 | eq_138)}}}; assign out = result__2; endmodule