module __std__clzt_pow2_8( input wire [7:0] value, output wire [3:0] out ); function automatic priority_sel_1b_4way (input reg [3:0] sel, input reg case0, input reg case1, input reg case2, input reg case3, input reg default_value); begin casez (sel) 4'b???1: begin priority_sel_1b_4way = case0; end 4'b??10: begin priority_sel_1b_4way = case1; end 4'b?100: begin priority_sel_1b_4way = case2; end 4'b1000: begin priority_sel_1b_4way = case3; end 4'b0000: begin priority_sel_1b_4way = default_value; end default: begin // Propagate X priority_sel_1b_4way = 1'dx; end endcase end endfunction wire nor_561; wire and_566; wire nor_568; wire and_571; wire nor_572; wire nor_573; wire and_575; wire and_577; wire and_578; wire nor_580; assign nor_561 = ~(value[5] | value[4]); assign and_566 = ~(value[7] | value[6]) & nor_561; assign nor_568 = ~(value[1] | value[0]); assign and_571 = ~(value[3] | value[2]) & nor_568; assign nor_572 = ~(value[3] | value[2] | nor_568); assign nor_573 = ~(~and_566 | and_571); assign and_575 = and_566 & and_571; assign and_577 = nor_573 & ~nor_572; assign and_578 = nor_573 & nor_572; assign nor_580 = ~(value[7] | value[6] | nor_561); assign out = {and_575, nor_573, and_578 & ~and_575 | nor_580 & ~and_577 & ~and_578 & ~and_575, priority_sel_1b_4way({nor_580, and_577, and_578, and_575}, 1'h0, ~(value[1] | ~value[0]), ~(value[3] | ~value[2]), ~(value[5] | ~value[4]), ~(value[7] | ~value[6]))}; endmodule