module __std__clzt_pow2_16( input wire [15:0] value, output wire [4:0] out ); function automatic [1:0] priority_sel_2b_4way (input reg [3:0] sel, input reg [1:0] case0, input reg [1:0] case1, input reg [1:0] case2, input reg [1:0] case3, input reg [1:0] default_value); begin casez (sel) 4'b???1: begin priority_sel_2b_4way = case0; end 4'b??10: begin priority_sel_2b_4way = case1; end 4'b?100: begin priority_sel_2b_4way = case2; end 4'b1000: begin priority_sel_2b_4way = case3; end 4'b0000: begin priority_sel_2b_4way = default_value; end default: begin // Propagate X priority_sel_2b_4way = 2'dx; end endcase end endfunction wire nor_950; wire nor_952; wire nor_958; wire and_959; wire and_960; wire nor_962; wire and_963; wire and_964; wire and_965; wire and_968; wire nor_969; wire nor_970; wire and_980; wire and_982; wire and_983; wire literal_987; wire literal_985; wire nor_999; wire [1:0] priority_sel_1023; assign nor_950 = ~(value[13] | value[12]); assign nor_952 = ~(value[9] | value[8]); assign nor_958 = ~(value[5] | value[4]); assign and_959 = ~(value[15] | value[14]) & nor_950; assign and_960 = ~(value[11] | value[10]) & nor_952; assign nor_962 = ~(value[1] | value[0]); assign and_963 = ~(value[7] | value[6]) & nor_958; assign and_964 = and_959 & and_960; assign and_965 = ~(value[3] | value[2]) & nor_962; assign and_968 = and_963 & and_965; assign nor_969 = ~(~and_963 | and_965); assign nor_970 = ~(~and_964 | and_968); assign and_980 = and_964 & and_968; assign and_982 = nor_970 & ~nor_969; assign and_983 = nor_970 & nor_969; assign literal_987 = 1'h0; assign literal_985 = 1'h1; assign nor_999 = ~(~and_959 | and_960); assign priority_sel_1023 = priority_sel_2b_4way({nor_999, and_982, and_983, and_980}, 2'h0, ~(value[3] | value[2] | nor_962) ? {literal_985, ~(value[1] | ~value[0])} : {literal_987, ~(value[3] | ~value[2])}, ~(value[7] | value[6] | nor_958) ? {literal_985, ~(value[5] | ~value[4])} : {literal_987, ~(value[7] | ~value[6])}, ~(value[11] | value[10] | nor_952) ? {literal_985, ~(value[9] | ~value[8])} : {literal_987, ~(value[11] | ~value[10])}, ~(value[15] | value[14] | nor_950) ? {literal_985, ~(value[13] | ~value[12])} : {literal_987, ~(value[15] | ~value[14])}); assign out = {and_980, nor_970, and_983 & ~and_980 | nor_999 & ~and_982 & ~and_983 & ~and_980, priority_sel_1023}; endmodule