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_138; wire [7:0] one_hot_139; wire [3:0] MAX_EXPONENT; wire [3:0] lz; wire [3:0] exp; wire [7:0] BIAS; wire ne_149; wire [7:0] bexp; wire [3:0] add_154; 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_138 = {unsigned__1[0], unsigned__1[1], unsigned__1[2], unsigned__1[3], unsigned__1[4], unsigned__1[5], unsigned__1[6]}; assign one_hot_139 = {reverse_138[6:0] == 7'h00, reverse_138[6] && reverse_138[5:0] == 6'h00, reverse_138[5] && reverse_138[4:0] == 5'h00, reverse_138[4] && reverse_138[3:0] == 4'h0, reverse_138[3] && reverse_138[2:0] == 3'h0, reverse_138[2] && reverse_138[1:0] == 2'h0, reverse_138[1] && !reverse_138[0], reverse_138[0]}; assign MAX_EXPONENT = 4'h6; assign lz = {1'h0, {one_hot_139[4] | one_hot_139[5] | one_hot_139[6] | one_hot_139[7], one_hot_139[2] | one_hot_139[3] | one_hot_139[6] | one_hot_139[7], one_hot_139[1] | one_hot_139[3] | one_hot_139[5] | one_hot_139[7]}}; assign exp = MAX_EXPONENT - lz; assign BIAS = 8'h7f; assign ne_149 = x[6:0] != 7'h00; assign bexp = {4'h0, exp} + BIAS; assign add_154 = lz + 4'h1; assign fraction = add_154 >= 4'h7 ? 7'h00 : unsigned__1 << add_154; assign result__2 = {sign, x == 8'h80 ? 8'h86 : bexp & {8{ne_149}}, fraction & {7{ne_149}}}; assign out = result__2; endmodule