module __std__clzt_pow2_64( input wire [63:0] value, output wire [6: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 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 function automatic [2:0] priority_sel_3b_4way (input reg [3:0] sel, input reg [2:0] case0, input reg [2:0] case1, input reg [2:0] case2, input reg [2:0] case3, input reg [2:0] default_value); begin casez (sel) 4'b???1: begin priority_sel_3b_4way = case0; end 4'b??10: begin priority_sel_3b_4way = case1; end 4'b?100: begin priority_sel_3b_4way = case2; end 4'b1000: begin priority_sel_3b_4way = case3; end 4'b0000: begin priority_sel_3b_4way = default_value; end default: begin // Propagate X priority_sel_3b_4way = 3'dx; end endcase end endfunction function automatic [4:0] priority_sel_5b_2way (input reg [1:0] sel, input reg [4:0] case0, input reg [4:0] case1, input reg [4:0] default_value); begin casez (sel) 2'b?1: begin priority_sel_5b_2way = case0; end 2'b10: begin priority_sel_5b_2way = case1; end 2'b00: begin priority_sel_5b_2way = default_value; end default: begin // Propagate X priority_sel_5b_2way = 5'dx; end endcase end endfunction function automatic [5:0] priority_sel_6b_2way (input reg [1:0] sel, input reg [5:0] case0, input reg [5:0] case1, input reg [5:0] default_value); begin casez (sel) 2'b?1: begin priority_sel_6b_2way = case0; end 2'b10: begin priority_sel_6b_2way = case1; end 2'b00: begin priority_sel_6b_2way = default_value; end default: begin // Propagate X priority_sel_6b_2way = 6'dx; end endcase end endfunction wire nor_3286; wire nor_3288; wire nor_3294; wire nor_3324; wire and_3325; wire and_3326; wire nor_3328; wire and_3329; wire nor_3347; wire nor_3349; wire nor_3351; wire nor_3361; wire nor_3363; wire and_3364; wire and_3366; wire and_3367; wire nor_3381; wire nor_3383; wire nor_3370; wire nor_3372; wire and_3389; wire and_3390; wire and_3391; wire nor_3393; wire nor_3395; wire and_3396; wire and_3397; wire nor_3399; wire and_3401; wire nor_3402; wire and_3412; wire and_3404; wire and_3419; wire and_3420; wire and_3421; wire and_3422; wire and_3423; wire nor_3436; wire nor_3438; wire and_3448; wire and_3450; wire and_3456; wire and_3457; wire and_3478; wire and_3479; wire and_3480; wire and_3482; wire and_3483; wire and_3496; wire [2:0] concat_3502; wire [2:0] concat_3501; wire [2:0] concat_3499; wire [2:0] concat_3498; wire and_3503; wire and_3505; wire nor_3506; wire nor_3526; wire nor_3534; wire and_3552; wire nor_3553; wire and_3582; wire and_3586; wire [2:0] concat_3589; wire [2:0] concat_3588; wire [2:0] concat_3592; wire [2:0] concat_3591; wire [2:0] concat_3595; wire [2:0] concat_3594; wire or_3599; wire [1:0] priority_sel_3600; wire [3:0] concat_3603; wire [4:0] concat_3611; wire and_3614; wire [2:0] priority_sel_3616; wire [5:0] priority_sel_3622; assign nor_3286 = ~(value[61] | value[60]); assign nor_3288 = ~(value[57] | value[56]); assign nor_3294 = ~(value[53] | value[52]); assign nor_3324 = ~(value[29] | value[28]); assign and_3325 = ~(value[63] | value[62]) & nor_3286; assign and_3326 = ~(value[59] | value[58]) & nor_3288; assign nor_3328 = ~(value[49] | value[48]); assign and_3329 = ~(value[55] | value[54]) & nor_3294; assign nor_3347 = ~(value[25] | value[24]); assign nor_3349 = ~(value[21] | value[20]); assign nor_3351 = ~(value[17] | value[16]); assign nor_3361 = ~(value[13] | value[12]); assign nor_3363 = ~(value[9] | value[8]); assign and_3364 = ~(value[31] | value[30]) & nor_3324; assign and_3366 = and_3325 & and_3326; assign and_3367 = ~(value[51] | value[50]) & nor_3328; assign nor_3381 = ~(value[45] | value[44]); assign nor_3383 = ~(value[41] | value[40]); assign nor_3370 = ~(value[37] | value[36]); assign nor_3372 = ~(value[33] | value[32]); assign and_3389 = ~(value[27] | value[26]) & nor_3347; assign and_3390 = ~(value[23] | value[22]) & nor_3349; assign and_3391 = ~(value[19] | value[18]) & nor_3351; assign nor_3393 = ~(value[5] | value[4]); assign nor_3395 = ~(value[1] | value[0]); assign and_3396 = ~(value[15] | value[14]) & nor_3361; assign and_3397 = ~(value[11] | value[10]) & nor_3363; assign nor_3399 = ~(value[27] | value[26] | nor_3347); assign and_3401 = and_3329 & and_3367; assign nor_3402 = ~(~and_3329 | and_3367); assign and_3412 = ~(value[47] | value[46]) & nor_3381; assign and_3404 = ~(value[39] | value[38]) & nor_3370; assign and_3419 = and_3364 & and_3389; assign and_3420 = and_3390 & and_3391; assign and_3421 = ~(value[7] | value[6]) & nor_3393; assign and_3422 = ~(value[3] | value[2]) & nor_3395; assign and_3423 = and_3396 & and_3397; assign nor_3436 = ~(~and_3364 | and_3389); assign nor_3438 = ~(~and_3366 | and_3401); assign and_3448 = ~(value[43] | value[42]) & nor_3383; assign and_3450 = ~(value[35] | value[34]) & nor_3372; assign and_3456 = and_3419 & and_3420; assign and_3457 = and_3421 & and_3422; assign and_3478 = nor_3436 & ~nor_3399; assign and_3479 = nor_3436 & nor_3399; assign and_3480 = and_3366 & and_3401; assign and_3482 = nor_3438 & ~nor_3402; assign and_3483 = nor_3438 & nor_3402; assign and_3496 = and_3412 & and_3448; assign concat_3502 = {1'h0, ~(value[47] | value[46] | nor_3381) ? {1'h1, ~(value[45] | ~value[44])} : {1'h0, ~(value[47] | ~value[46])}}; assign concat_3501 = {1'h1, ~(value[43] | value[42] | nor_3383) ? {1'h1, ~(value[41] | ~value[40])} : {1'h0, ~(value[43] | ~value[42])}}; assign concat_3499 = {1'h0, ~(value[39] | value[38] | nor_3370) ? {1'h1, ~(value[37] | ~value[36])} : {1'h0, ~(value[39] | ~value[38])}}; assign concat_3498 = {1'h1, ~(value[35] | value[34] | nor_3372) ? {1'h1, ~(value[33] | ~value[32])} : {1'h0, ~(value[35] | ~value[34])}}; assign and_3503 = and_3404 & and_3450; assign and_3505 = and_3423 & and_3457; assign nor_3506 = ~(~and_3423 | and_3457); assign nor_3526 = ~(value[31] | value[30] | nor_3324); assign nor_3534 = ~(~and_3325 | and_3326); assign and_3552 = and_3496 & and_3503; assign nor_3553 = ~(~and_3456 | and_3505); assign and_3582 = and_3480 & and_3552; assign and_3586 = and_3456 & and_3505; assign concat_3589 = {1'h0, ~(value[7] | value[6] | nor_3393) ? {1'h1, ~(value[5] | ~value[4])} : {1'h0, ~(value[7] | ~value[6])}}; assign concat_3588 = {1'h1, ~(value[3] | value[2] | nor_3395) ? {1'h1, ~(value[1] | ~value[0])} : {1'h0, ~(value[3] | ~value[2])}}; assign concat_3592 = {1'h0, ~(value[15] | value[14] | nor_3361) ? {1'h1, ~(value[13] | ~value[12])} : {1'h0, ~(value[15] | ~value[14])}}; assign concat_3591 = {1'h1, ~(value[11] | value[10] | nor_3363) ? {1'h1, ~(value[9] | ~value[8])} : {1'h0, ~(value[11] | ~value[10])}}; assign concat_3595 = {1'h0, ~(value[23] | value[22] | nor_3349) ? {1'h1, ~(value[21] | ~value[20])} : {1'h0, ~(value[23] | ~value[22])}}; assign concat_3594 = {1'h1, ~(value[19] | value[18] | nor_3351) ? {1'h1, ~(value[17] | ~value[16])} : {1'h0, ~(value[19] | ~value[18])}}; assign or_3599 = and_3483 & ~and_3480 | nor_3534 & ~and_3482 & ~and_3483 & ~and_3480; assign priority_sel_3600 = priority_sel_2b_4way({nor_3534, and_3482, and_3483, and_3480}, 2'h0, ~(value[51] | value[50] | nor_3328) ? {1'h1, ~(value[49] | ~value[48])} : {1'h0, ~(value[51] | ~value[50])}, ~(value[55] | value[54] | nor_3294) ? {1'h1, ~(value[53] | ~value[52])} : {1'h0, ~(value[55] | ~value[54])}, ~(value[59] | value[58] | nor_3288) ? {1'h1, ~(value[57] | ~value[56])} : {1'h0, ~(value[59] | ~value[58])}, ~(value[63] | value[62] | nor_3286) ? {1'h1, ~(value[61] | ~value[60])} : {1'h0, ~(value[63] | ~value[62])}); assign concat_3603 = {~(~and_3419 | and_3420), nor_3553 & ~nor_3506, nor_3553 & nor_3506, and_3586}; assign concat_3611 = {1'h1, ~(~and_3496 | and_3503) ? {1'h1, ~(~and_3404 | and_3450) ? concat_3498 : concat_3499} : {1'h0, ~(~and_3412 | and_3448) ? concat_3501 : concat_3502}}; assign and_3614 = and_3582 & and_3586; assign priority_sel_3616 = priority_sel_3b_4way(concat_3603, 3'h0, ~(~and_3421 | and_3422) ? concat_3588 : concat_3589, ~(~and_3396 | and_3397) ? concat_3591 : concat_3592, ~(~and_3390 | and_3391) ? concat_3594 : concat_3595, {nor_3436, and_3479 & ~and_3419 | nor_3526 & ~and_3478 & ~and_3479 & ~and_3419, priority_sel_1b_4way({nor_3526, and_3478, and_3479, and_3419}, 1'h0, ~(value[25] | ~value[24]), ~(value[27] | ~value[26]), ~(value[29] | ~value[28]), ~(value[31] | ~value[30]))}); assign priority_sel_3622 = priority_sel_6b_2way({~(~and_3582 | and_3586), and_3614}, 6'h00, {1'h1, nor_3553, priority_sel_1b_4way(concat_3603, 1'h0, 1'h1, 1'h0, 1'h1, and_3419), priority_sel_3616}, {and_3582, priority_sel_5b_2way({~(~and_3480 | and_3552), and_3582}, {nor_3438, or_3599, priority_sel_3600, 1'h0}, concat_3611, {1'h0, nor_3438, or_3599, priority_sel_3600})}); assign out = {and_3614, priority_sel_3622}; endmodule