module __hfloat16__normalize( input wire sign, input wire [4:0] exp, input wire [10:0] fraction_with_hidden, output wire [15:0] out ); wire [10:0] reverse_170; wire [11:0] one_hot_171; wire [3:0] encode_173; wire [4:0] concat_174; wire is_denormal; wire nor_178; wire [4:0] sub_180; wire [9:0] normalized_fraction; assign reverse_170 = {fraction_with_hidden[0], fraction_with_hidden[1], fraction_with_hidden[2], fraction_with_hidden[3], fraction_with_hidden[4], fraction_with_hidden[5], fraction_with_hidden[6], fraction_with_hidden[7], fraction_with_hidden[8], fraction_with_hidden[9], fraction_with_hidden[10]}; assign one_hot_171 = {reverse_170[10:0] == 11'h000, reverse_170[10] && reverse_170[9:0] == 10'h000, reverse_170[9] && reverse_170[8:0] == 9'h000, reverse_170[8] && reverse_170[7:0] == 8'h00, reverse_170[7] && reverse_170[6:0] == 7'h00, reverse_170[6] && reverse_170[5:0] == 6'h00, reverse_170[5] && reverse_170[4:0] == 5'h00, reverse_170[4] && reverse_170[3:0] == 4'h0, reverse_170[3] && reverse_170[2:0] == 3'h0, reverse_170[2] && reverse_170[1:0] == 2'h0, reverse_170[1] && !reverse_170[0], reverse_170[0]}; assign encode_173 = {one_hot_171[8] | one_hot_171[9] | one_hot_171[10] | one_hot_171[11], one_hot_171[4] | one_hot_171[5] | one_hot_171[6] | one_hot_171[7], one_hot_171[2] | one_hot_171[3] | one_hot_171[6] | one_hot_171[7] | one_hot_171[10] | one_hot_171[11], one_hot_171[1] | one_hot_171[3] | one_hot_171[5] | one_hot_171[7] | one_hot_171[9] | one_hot_171[11]}; assign concat_174 = {1'h0, encode_173}; assign is_denormal = exp <= concat_174; assign nor_178 = ~(is_denormal | encode_173 == 4'hb); assign sub_180 = exp - concat_174; assign normalized_fraction = encode_173 >= 4'ha ? 10'h000 : fraction_with_hidden[9:0] << encode_173; assign out = {sign, sub_180 & {5{nor_178}}, normalized_fraction & {10{nor_178}}}; endmodule