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_3145; wire nor_3147; wire nor_3153; wire nor_3183; wire and_3184; wire and_3185; wire nor_3187; wire and_3188; wire nor_3206; wire nor_3208; wire nor_3210; wire nor_3220; wire nor_3222; wire and_3223; wire and_3225; wire and_3226; wire nor_3240; wire nor_3242; wire nor_3229; wire nor_3231; wire and_3248; wire and_3249; wire and_3250; wire nor_3252; wire nor_3254; wire and_3255; wire and_3256; wire nor_3258; wire and_3260; wire nor_3261; wire and_3271; wire and_3263; wire and_3278; wire and_3279; wire and_3280; wire and_3281; wire and_3282; wire nor_3295; wire nor_3297; wire and_3307; wire and_3309; wire and_3315; wire and_3316; wire and_3337; wire and_3338; wire and_3339; wire and_3341; wire and_3342; wire and_3355; wire [2:0] concat_3361; wire [2:0] concat_3360; wire [2:0] concat_3358; wire [2:0] concat_3357; wire and_3362; wire and_3364; wire nor_3365; wire nor_3385; wire nor_3393; wire and_3411; wire nor_3412; wire and_3441; wire and_3445; wire [2:0] concat_3448; wire [2:0] concat_3447; wire [2:0] concat_3451; wire [2:0] concat_3450; wire [2:0] concat_3454; wire [2:0] concat_3453; wire or_3458; wire [1:0] priority_sel_3459; wire [3:0] concat_3462; wire [4:0] concat_3470; wire and_3473; wire [2:0] priority_sel_3475; wire [5:0] priority_sel_3481; assign nor_3145 = ~(value[61] | value[60]); assign nor_3147 = ~(value[57] | value[56]); assign nor_3153 = ~(value[53] | value[52]); assign nor_3183 = ~(value[29] | value[28]); assign and_3184 = ~(value[63] | value[62]) & nor_3145; assign and_3185 = ~(value[59] | value[58]) & nor_3147; assign nor_3187 = ~(value[49] | value[48]); assign and_3188 = ~(value[55] | value[54]) & nor_3153; assign nor_3206 = ~(value[25] | value[24]); assign nor_3208 = ~(value[21] | value[20]); assign nor_3210 = ~(value[17] | value[16]); assign nor_3220 = ~(value[13] | value[12]); assign nor_3222 = ~(value[9] | value[8]); assign and_3223 = ~(value[31] | value[30]) & nor_3183; assign and_3225 = and_3184 & and_3185; assign and_3226 = ~(value[51] | value[50]) & nor_3187; assign nor_3240 = ~(value[45] | value[44]); assign nor_3242 = ~(value[41] | value[40]); assign nor_3229 = ~(value[37] | value[36]); assign nor_3231 = ~(value[33] | value[32]); assign and_3248 = ~(value[27] | value[26]) & nor_3206; assign and_3249 = ~(value[23] | value[22]) & nor_3208; assign and_3250 = ~(value[19] | value[18]) & nor_3210; assign nor_3252 = ~(value[5] | value[4]); assign nor_3254 = ~(value[1] | value[0]); assign and_3255 = ~(value[15] | value[14]) & nor_3220; assign and_3256 = ~(value[11] | value[10]) & nor_3222; assign nor_3258 = ~(value[27] | value[26] | nor_3206); assign and_3260 = and_3188 & and_3226; assign nor_3261 = ~(~and_3188 | and_3226); assign and_3271 = ~(value[47] | value[46]) & nor_3240; assign and_3263 = ~(value[39] | value[38]) & nor_3229; assign and_3278 = and_3223 & and_3248; assign and_3279 = and_3249 & and_3250; assign and_3280 = ~(value[7] | value[6]) & nor_3252; assign and_3281 = ~(value[3] | value[2]) & nor_3254; assign and_3282 = and_3255 & and_3256; assign nor_3295 = ~(~and_3223 | and_3248); assign nor_3297 = ~(~and_3225 | and_3260); assign and_3307 = ~(value[43] | value[42]) & nor_3242; assign and_3309 = ~(value[35] | value[34]) & nor_3231; assign and_3315 = and_3278 & and_3279; assign and_3316 = and_3280 & and_3281; assign and_3337 = nor_3295 & ~nor_3258; assign and_3338 = nor_3295 & nor_3258; assign and_3339 = and_3225 & and_3260; assign and_3341 = nor_3297 & ~nor_3261; assign and_3342 = nor_3297 & nor_3261; assign and_3355 = and_3271 & and_3307; assign concat_3361 = {1'h0, ~(value[47] | value[46] | nor_3240) ? {1'h1, ~(value[45] | ~value[44])} : {1'h0, ~(value[47] | ~value[46])}}; assign concat_3360 = {1'h1, ~(value[43] | value[42] | nor_3242) ? {1'h1, ~(value[41] | ~value[40])} : {1'h0, ~(value[43] | ~value[42])}}; assign concat_3358 = {1'h0, ~(value[39] | value[38] | nor_3229) ? {1'h1, ~(value[37] | ~value[36])} : {1'h0, ~(value[39] | ~value[38])}}; assign concat_3357 = {1'h1, ~(value[35] | value[34] | nor_3231) ? {1'h1, ~(value[33] | ~value[32])} : {1'h0, ~(value[35] | ~value[34])}}; assign and_3362 = and_3263 & and_3309; assign and_3364 = and_3282 & and_3316; assign nor_3365 = ~(~and_3282 | and_3316); assign nor_3385 = ~(value[31] | value[30] | nor_3183); assign nor_3393 = ~(~and_3184 | and_3185); assign and_3411 = and_3355 & and_3362; assign nor_3412 = ~(~and_3315 | and_3364); assign and_3441 = and_3339 & and_3411; assign and_3445 = and_3315 & and_3364; assign concat_3448 = {1'h0, ~(value[7] | value[6] | nor_3252) ? {1'h1, ~(value[5] | ~value[4])} : {1'h0, ~(value[7] | ~value[6])}}; assign concat_3447 = {1'h1, ~(value[3] | value[2] | nor_3254) ? {1'h1, ~(value[1] | ~value[0])} : {1'h0, ~(value[3] | ~value[2])}}; assign concat_3451 = {1'h0, ~(value[15] | value[14] | nor_3220) ? {1'h1, ~(value[13] | ~value[12])} : {1'h0, ~(value[15] | ~value[14])}}; assign concat_3450 = {1'h1, ~(value[11] | value[10] | nor_3222) ? {1'h1, ~(value[9] | ~value[8])} : {1'h0, ~(value[11] | ~value[10])}}; assign concat_3454 = {1'h0, ~(value[23] | value[22] | nor_3208) ? {1'h1, ~(value[21] | ~value[20])} : {1'h0, ~(value[23] | ~value[22])}}; assign concat_3453 = {1'h1, ~(value[19] | value[18] | nor_3210) ? {1'h1, ~(value[17] | ~value[16])} : {1'h0, ~(value[19] | ~value[18])}}; assign or_3458 = and_3342 & ~and_3339 | nor_3393 & ~and_3341 & ~and_3342 & ~and_3339; assign priority_sel_3459 = priority_sel_2b_4way({nor_3393, and_3341, and_3342, and_3339}, 2'h0, ~(value[51] | value[50] | nor_3187) ? {1'h1, ~(value[49] | ~value[48])} : {1'h0, ~(value[51] | ~value[50])}, ~(value[55] | value[54] | nor_3153) ? {1'h1, ~(value[53] | ~value[52])} : {1'h0, ~(value[55] | ~value[54])}, ~(value[59] | value[58] | nor_3147) ? {1'h1, ~(value[57] | ~value[56])} : {1'h0, ~(value[59] | ~value[58])}, ~(value[63] | value[62] | nor_3145) ? {1'h1, ~(value[61] | ~value[60])} : {1'h0, ~(value[63] | ~value[62])}); assign concat_3462 = {~(~and_3278 | and_3279), nor_3412 & ~nor_3365, nor_3412 & nor_3365, and_3445}; assign concat_3470 = {1'h1, ~(~and_3355 | and_3362) ? {1'h1, ~(~and_3263 | and_3309) ? concat_3357 : concat_3358} : {1'h0, ~(~and_3271 | and_3307) ? concat_3360 : concat_3361}}; assign and_3473 = and_3441 & and_3445; assign priority_sel_3475 = priority_sel_3b_4way(concat_3462, 3'h0, ~(~and_3280 | and_3281) ? concat_3447 : concat_3448, ~(~and_3255 | and_3256) ? concat_3450 : concat_3451, ~(~and_3249 | and_3250) ? concat_3453 : concat_3454, {nor_3295, and_3338 & ~and_3278 | nor_3385 & ~and_3337 & ~and_3338 & ~and_3278, priority_sel_1b_4way({nor_3385, and_3337, and_3338, and_3278}, 1'h0, ~(value[25] | ~value[24]), ~(value[27] | ~value[26]), ~(value[29] | ~value[28]), ~(value[31] | ~value[30]))}); assign priority_sel_3481 = priority_sel_6b_2way({~(~and_3441 | and_3445), and_3473}, 6'h00, {1'h1, nor_3412, priority_sel_1b_4way(concat_3462, 1'h0, 1'h1, 1'h0, 1'h1, and_3278), priority_sel_3475}, {and_3441, priority_sel_5b_2way({~(~and_3339 | and_3411), and_3441}, {nor_3297, or_3458, priority_sel_3459, 1'h0}, concat_3470, {1'h0, nor_3297, or_3458, priority_sel_3459})}); assign out = {and_3473, priority_sel_3481}; endmodule