module __std__clzt_pow2_128( input wire [127:0] value, output wire [7: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 [3:0] priority_sel_4b_2way (input reg [1:0] sel, input reg [3:0] case0, input reg [3:0] case1, input reg [3:0] default_value); begin casez (sel) 2'b?1: begin priority_sel_4b_2way = case0; end 2'b10: begin priority_sel_4b_2way = case1; end 2'b00: begin priority_sel_4b_2way = default_value; end default: begin // Propagate X priority_sel_4b_2way = 4'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 function automatic [6:0] priority_sel_7b_2way (input reg [1:0] sel, input reg [6:0] case0, input reg [6:0] case1, input reg [6:0] default_value); begin casez (sel) 2'b?1: begin priority_sel_7b_2way = case0; end 2'b10: begin priority_sel_7b_2way = case1; end 2'b00: begin priority_sel_7b_2way = default_value; end default: begin // Propagate X priority_sel_7b_2way = 7'dx; end endcase end endfunction wire nor_6213; wire nor_6219; wire and_6228; wire nor_6230; wire and_6256; wire nor_6258; wire nor_6285; wire and_6287; wire nor_6288; wire and_6338; wire nor_6339; wire nor_6361; wire nor_6363; wire nor_6365; wire nor_6367; wire nor_6377; wire nor_6379; wire and_6380; wire nor_6382; wire nor_6385; wire nor_6387; wire nor_6405; wire nor_6407; wire nor_6396; wire nor_6398; wire nor_6423; wire nor_6425; wire nor_6414; wire nor_6416; wire nor_6440; wire nor_6432; wire nor_6434; wire nor_6443; wire nor_6445; wire nor_6447; wire nor_6457; wire nor_6459; wire and_6460; wire and_6462; wire and_6463; wire and_6464; wire nor_6466; wire nor_6468; wire and_6469; wire and_6470; wire nor_6472; wire and_6474; wire and_6476; wire and_6477; wire and_6478; wire and_6494; wire and_6486; wire and_6511; wire and_6503; wire and_6525; wire and_6527; wire and_6528; wire and_6518; wire and_6529; wire and_6530; wire and_6531; wire nor_6533; wire nor_6535; wire and_6536; wire and_6537; wire nor_6539; wire and_6540; wire and_6541; wire and_6542; wire and_6543; wire and_6544; wire nor_6557; wire and_6559; wire nor_6561; wire and_6571; wire and_6573; wire and_6579; wire and_6580; wire and_6582; wire nor_6592; wire and_6599; wire and_6600; wire and_6601; wire and_6602; wire and_6603; wire nor_6616; wire and_6618; wire and_6619; wire and_6640; wire and_6641; wire and_6642; wire [2:0] concat_6652; wire [2:0] concat_6651; wire and_6653; wire [2:0] concat_6659; wire [2:0] concat_6658; wire [2:0] concat_6656; wire [2:0] concat_6655; wire and_6660; wire and_6661; wire [2:0] concat_6667; wire [2:0] concat_6666; wire [2:0] concat_6664; wire [2:0] concat_6663; wire [2:0] concat_6670; wire [2:0] concat_6669; wire and_6678; wire and_6679; wire and_6700; wire and_6701; wire and_6702; wire and_6704; wire nor_6705; wire nor_6725; wire and_6732; wire or_6734; wire priority_sel_6735; wire and_6740; wire and_6741; wire or_6746; wire priority_sel_6747; wire and_6749; wire nor_6750; wire nor_6770; wire and_6777; wire nor_6778; wire and_6804; wire nor_6812; wire and_6830; wire and_6834; wire [2:0] concat_6837; wire [2:0] concat_6836; wire [2:0] concat_6840; wire [2:0] concat_6839; wire [2:0] concat_6843; wire [2:0] concat_6842; wire [3:0] priority_sel_6847; wire and_6849; wire and_6857; wire [2:0] concat_6860; wire [2:0] concat_6859; wire [2:0] concat_6863; wire [2:0] concat_6862; wire [2:0] concat_6866; wire [2:0] concat_6865; wire [3:0] concat_6870; wire [4:0] concat_6878; wire [4:0] concat_6883; wire [4:0] concat_6884; wire [3:0] concat_6885; wire and_6890; wire and_6892; wire [2:0] priority_sel_6894; wire [4:0] priority_sel_6897; wire [2:0] priority_sel_6899; wire and_6910; wire [5:0] priority_sel_6911; wire [6:0] priority_sel_6917; assign nor_6213 = ~(value[61] | value[60]); assign nor_6219 = ~(value[125] | value[124]); assign and_6228 = ~(value[63] | value[62]) & nor_6213; assign nor_6230 = ~(value[57] | value[56]); assign and_6256 = ~(value[127] | value[126]) & nor_6219; assign nor_6258 = ~(value[121] | value[120]); assign nor_6285 = ~(value[29] | value[28]); assign and_6287 = ~(value[59] | value[58]) & nor_6230; assign nor_6288 = ~(value[59] | value[58] | nor_6230); assign and_6338 = ~(value[123] | value[122]) & nor_6258; assign nor_6339 = ~(value[123] | value[122] | nor_6258); assign nor_6361 = ~(value[93] | value[92]); assign nor_6363 = ~(value[25] | value[24]); assign nor_6365 = ~(value[21] | value[20]); assign nor_6367 = ~(value[17] | value[16]); assign nor_6377 = ~(value[13] | value[12]); assign nor_6379 = ~(value[9] | value[8]); assign and_6380 = ~(value[31] | value[30]) & nor_6285; assign nor_6382 = ~(~and_6228 | and_6287); assign nor_6385 = ~(value[53] | value[52]); assign nor_6387 = ~(value[49] | value[48]); assign nor_6405 = ~(value[45] | value[44]); assign nor_6407 = ~(value[41] | value[40]); assign nor_6396 = ~(value[37] | value[36]); assign nor_6398 = ~(value[33] | value[32]); assign nor_6423 = ~(value[109] | value[108]); assign nor_6425 = ~(value[105] | value[104]); assign nor_6414 = ~(value[101] | value[100]); assign nor_6416 = ~(value[97] | value[96]); assign nor_6440 = ~(~and_6256 | and_6338); assign nor_6432 = ~(value[117] | value[116]); assign nor_6434 = ~(value[113] | value[112]); assign nor_6443 = ~(value[89] | value[88]); assign nor_6445 = ~(value[85] | value[84]); assign nor_6447 = ~(value[81] | value[80]); assign nor_6457 = ~(value[77] | value[76]); assign nor_6459 = ~(value[73] | value[72]); assign and_6460 = ~(value[95] | value[94]) & nor_6361; assign and_6462 = ~(value[27] | value[26]) & nor_6363; assign and_6463 = ~(value[23] | value[22]) & nor_6365; assign and_6464 = ~(value[19] | value[18]) & nor_6367; assign nor_6466 = ~(value[5] | value[4]); assign nor_6468 = ~(value[1] | value[0]); assign and_6469 = ~(value[15] | value[14]) & nor_6377; assign and_6470 = ~(value[11] | value[10]) & nor_6379; assign nor_6472 = ~(value[27] | value[26] | nor_6363); assign and_6474 = and_6228 & and_6287; assign and_6476 = nor_6382 & ~nor_6288; assign and_6477 = nor_6382 & nor_6288; assign and_6478 = ~(value[55] | value[54]) & nor_6385; assign and_6494 = ~(value[47] | value[46]) & nor_6405; assign and_6486 = ~(value[39] | value[38]) & nor_6396; assign and_6511 = ~(value[111] | value[110]) & nor_6423; assign and_6503 = ~(value[103] | value[102]) & nor_6414; assign and_6525 = and_6256 & and_6338; assign and_6527 = nor_6440 & ~nor_6339; assign and_6528 = nor_6440 & nor_6339; assign and_6518 = ~(value[119] | value[118]) & nor_6432; assign and_6529 = ~(value[91] | value[90]) & nor_6443; assign and_6530 = ~(value[87] | value[86]) & nor_6445; assign and_6531 = ~(value[83] | value[82]) & nor_6447; assign nor_6533 = ~(value[69] | value[68]); assign nor_6535 = ~(value[65] | value[64]); assign and_6536 = ~(value[79] | value[78]) & nor_6457; assign and_6537 = ~(value[75] | value[74]) & nor_6459; assign nor_6539 = ~(value[91] | value[90] | nor_6443); assign and_6540 = and_6380 & and_6462; assign and_6541 = and_6463 & and_6464; assign and_6542 = ~(value[7] | value[6]) & nor_6466; assign and_6543 = ~(value[3] | value[2]) & nor_6468; assign and_6544 = and_6469 & and_6470; assign nor_6557 = ~(~and_6380 | and_6462); assign and_6559 = ~(value[51] | value[50]) & nor_6387; assign nor_6561 = ~(value[63] | value[62] | nor_6213); assign and_6571 = ~(value[43] | value[42]) & nor_6407; assign and_6573 = ~(value[35] | value[34]) & nor_6398; assign and_6579 = ~(value[115] | value[114]) & nor_6434; assign and_6580 = ~(value[107] | value[106]) & nor_6425; assign and_6582 = ~(value[99] | value[98]) & nor_6416; assign nor_6592 = ~(value[127] | value[126] | nor_6219); assign and_6599 = and_6460 & and_6529; assign and_6600 = and_6530 & and_6531; assign and_6601 = ~(value[71] | value[70]) & nor_6533; assign and_6602 = ~(value[67] | value[66]) & nor_6535; assign and_6603 = and_6536 & and_6537; assign nor_6616 = ~(~and_6460 | and_6529); assign and_6618 = and_6540 & and_6541; assign and_6619 = and_6542 & and_6543; assign and_6640 = nor_6557 & ~nor_6472; assign and_6641 = nor_6557 & nor_6472; assign and_6642 = and_6478 & and_6559; assign concat_6652 = {1'h0, ~(value[55] | value[54] | nor_6385) ? {1'h1, ~(value[53] | ~value[52])} : {1'h0, ~(value[55] | ~value[54])}}; assign concat_6651 = {1'h1, ~(value[51] | value[50] | nor_6387) ? {1'h1, ~(value[49] | ~value[48])} : {1'h0, ~(value[51] | ~value[50])}}; assign and_6653 = and_6494 & and_6571; assign concat_6659 = {1'h0, ~(value[47] | value[46] | nor_6405) ? {1'h1, ~(value[45] | ~value[44])} : {1'h0, ~(value[47] | ~value[46])}}; assign concat_6658 = {1'h1, ~(value[43] | value[42] | nor_6407) ? {1'h1, ~(value[41] | ~value[40])} : {1'h0, ~(value[43] | ~value[42])}}; assign concat_6656 = {1'h0, ~(value[39] | value[38] | nor_6396) ? {1'h1, ~(value[37] | ~value[36])} : {1'h0, ~(value[39] | ~value[38])}}; assign concat_6655 = {1'h1, ~(value[35] | value[34] | nor_6398) ? {1'h1, ~(value[33] | ~value[32])} : {1'h0, ~(value[35] | ~value[34])}}; assign and_6660 = and_6518 & and_6579; assign and_6661 = and_6511 & and_6580; assign concat_6667 = {1'h0, ~(value[111] | value[110] | nor_6423) ? {1'h1, ~(value[109] | ~value[108])} : {1'h0, ~(value[111] | ~value[110])}}; assign concat_6666 = {1'h1, ~(value[107] | value[106] | nor_6425) ? {1'h1, ~(value[105] | ~value[104])} : {1'h0, ~(value[107] | ~value[106])}}; assign concat_6664 = {1'h0, ~(value[103] | value[102] | nor_6414) ? {1'h1, ~(value[101] | ~value[100])} : {1'h0, ~(value[103] | ~value[102])}}; assign concat_6663 = {1'h1, ~(value[99] | value[98] | nor_6416) ? {1'h1, ~(value[97] | ~value[96])} : {1'h0, ~(value[99] | ~value[98])}}; assign concat_6670 = {1'h0, ~(value[119] | value[118] | nor_6432) ? {1'h1, ~(value[117] | ~value[116])} : {1'h0, ~(value[119] | ~value[118])}}; assign concat_6669 = {1'h1, ~(value[115] | value[114] | nor_6434) ? {1'h1, ~(value[113] | ~value[112])} : {1'h0, ~(value[115] | ~value[114])}}; assign and_6678 = and_6599 & and_6600; assign and_6679 = and_6601 & and_6602; assign and_6700 = nor_6616 & ~nor_6539; assign and_6701 = nor_6616 & nor_6539; assign and_6702 = and_6486 & and_6573; assign and_6704 = and_6544 & and_6619; assign nor_6705 = ~(~and_6544 | and_6619); assign nor_6725 = ~(value[31] | value[30] | nor_6285); assign and_6732 = and_6474 & and_6642; assign or_6734 = and_6477 & ~and_6474 | nor_6561 & ~and_6476 & ~and_6477 & ~and_6474; assign priority_sel_6735 = priority_sel_1b_4way({nor_6561, and_6476, and_6477, and_6474}, 1'h0, ~(value[57] | ~value[56]), ~(value[59] | ~value[58]), ~(value[61] | ~value[60]), ~(value[63] | ~value[62])); assign and_6740 = and_6503 & and_6582; assign and_6741 = and_6525 & and_6660; assign or_6746 = and_6528 & ~and_6525 | nor_6592 & ~and_6527 & ~and_6528 & ~and_6525; assign priority_sel_6747 = priority_sel_1b_4way({nor_6592, and_6527, and_6528, and_6525}, 1'h0, ~(value[121] | ~value[120]), ~(value[123] | ~value[122]), ~(value[125] | ~value[124]), ~(value[127] | ~value[126])); assign and_6749 = and_6603 & and_6679; assign nor_6750 = ~(~and_6603 | and_6679); assign nor_6770 = ~(value[95] | value[94] | nor_6361); assign and_6777 = and_6653 & and_6702; assign nor_6778 = ~(~and_6618 | and_6704); assign and_6804 = and_6661 & and_6740; assign nor_6812 = ~(~and_6678 | and_6749); assign and_6830 = and_6732 & and_6777; assign and_6834 = and_6618 & and_6704; assign concat_6837 = {1'h0, ~(value[7] | value[6] | nor_6466) ? {1'h1, ~(value[5] | ~value[4])} : {1'h0, ~(value[7] | ~value[6])}}; assign concat_6836 = {1'h1, ~(value[3] | value[2] | nor_6468) ? {1'h1, ~(value[1] | ~value[0])} : {1'h0, ~(value[3] | ~value[2])}}; assign concat_6840 = {1'h0, ~(value[15] | value[14] | nor_6377) ? {1'h1, ~(value[13] | ~value[12])} : {1'h0, ~(value[15] | ~value[14])}}; assign concat_6839 = {1'h1, ~(value[11] | value[10] | nor_6379) ? {1'h1, ~(value[9] | ~value[8])} : {1'h0, ~(value[11] | ~value[10])}}; assign concat_6843 = {1'h0, ~(value[23] | value[22] | nor_6365) ? {1'h1, ~(value[21] | ~value[20])} : {1'h0, ~(value[23] | ~value[22])}}; assign concat_6842 = {1'h1, ~(value[19] | value[18] | nor_6367) ? {1'h1, ~(value[17] | ~value[16])} : {1'h0, ~(value[19] | ~value[18])}}; assign priority_sel_6847 = priority_sel_4b_2way({~(~and_6474 | and_6642), and_6732}, {nor_6382, or_6734, priority_sel_6735, 1'h0}, {1'h1, ~(~and_6478 | and_6559) ? concat_6651 : concat_6652}, {1'h0, nor_6382, or_6734, priority_sel_6735}); assign and_6849 = and_6741 & and_6804; assign and_6857 = and_6678 & and_6749; assign concat_6860 = {1'h0, ~(value[71] | value[70] | nor_6533) ? {1'h1, ~(value[69] | ~value[68])} : {1'h0, ~(value[71] | ~value[70])}}; assign concat_6859 = {1'h1, ~(value[67] | value[66] | nor_6535) ? {1'h1, ~(value[65] | ~value[64])} : {1'h0, ~(value[67] | ~value[66])}}; assign concat_6863 = {1'h0, ~(value[79] | value[78] | nor_6457) ? {1'h1, ~(value[77] | ~value[76])} : {1'h0, ~(value[79] | ~value[78])}}; assign concat_6862 = {1'h1, ~(value[75] | value[74] | nor_6459) ? {1'h1, ~(value[73] | ~value[72])} : {1'h0, ~(value[75] | ~value[74])}}; assign concat_6866 = {1'h0, ~(value[87] | value[86] | nor_6445) ? {1'h1, ~(value[85] | ~value[84])} : {1'h0, ~(value[87] | ~value[86])}}; assign concat_6865 = {1'h1, ~(value[83] | value[82] | nor_6447) ? {1'h1, ~(value[81] | ~value[80])} : {1'h0, ~(value[83] | ~value[82])}}; assign concat_6870 = {~(~and_6540 | and_6541), nor_6778 & ~nor_6705, nor_6778 & nor_6705, and_6834}; assign concat_6878 = {1'h1, ~(~and_6653 | and_6702) ? {1'h1, ~(~and_6486 | and_6573) ? concat_6655 : concat_6656} : {1'h0, ~(~and_6494 | and_6571) ? concat_6658 : concat_6659}}; assign concat_6883 = {1'h1, ~(~and_6661 | and_6740) ? {1'h1, ~(~and_6503 | and_6582) ? concat_6663 : concat_6664} : {1'h0, ~(~and_6511 | and_6580) ? concat_6666 : concat_6667}}; assign concat_6884 = {1'h0, ~(~and_6525 | and_6660) ? {1'h1, ~(~and_6518 | and_6579) ? concat_6669 : concat_6670} : {and_6525, nor_6440, or_6746, priority_sel_6747}}; assign concat_6885 = {~(~and_6599 | and_6600), nor_6812 & ~nor_6750, nor_6812 & nor_6750, and_6857}; assign and_6890 = and_6849 & and_6857; assign and_6892 = and_6830 & and_6834; assign priority_sel_6894 = priority_sel_3b_4way(concat_6870, 3'h0, ~(~and_6542 | and_6543) ? concat_6836 : concat_6837, ~(~and_6469 | and_6470) ? concat_6839 : concat_6840, ~(~and_6463 | and_6464) ? concat_6842 : concat_6843, {nor_6557, and_6641 & ~and_6540 | nor_6725 & ~and_6640 & ~and_6641 & ~and_6540, priority_sel_1b_4way({nor_6725, and_6640, and_6641, and_6540}, 1'h0, ~(value[25] | ~value[24]), ~(value[27] | ~value[26]), ~(value[29] | ~value[28]), ~(value[31] | ~value[30]))}); assign priority_sel_6897 = priority_sel_5b_2way({~(~and_6741 | and_6804), and_6849}, {nor_6440, or_6746, priority_sel_6747, 2'h0}, concat_6883, concat_6884); assign priority_sel_6899 = priority_sel_3b_4way(concat_6885, 3'h0, ~(~and_6601 | and_6602) ? concat_6859 : concat_6860, ~(~and_6536 | and_6537) ? concat_6862 : concat_6863, ~(~and_6530 | and_6531) ? concat_6865 : concat_6866, {nor_6616, and_6701 & ~and_6599 | nor_6770 & ~and_6700 & ~and_6701 & ~and_6599, priority_sel_1b_4way({nor_6770, and_6700, and_6701, and_6599}, 1'h0, ~(value[89] | ~value[88]), ~(value[91] | ~value[90]), ~(value[93] | ~value[92]), ~(value[95] | ~value[94]))}); assign and_6910 = and_6890 & and_6892; assign priority_sel_6911 = priority_sel_6b_2way({~(~and_6830 | and_6834), and_6892}, 6'h00, {1'h1, nor_6778, priority_sel_1b_4way(concat_6870, 1'h0, 1'h1, 1'h0, 1'h1, and_6540), priority_sel_6894}, {and_6830, priority_sel_5b_2way({~(~and_6732 | and_6777), and_6830}, {priority_sel_6847, 1'h0}, concat_6878, {1'h0, priority_sel_6847})}); assign priority_sel_6917 = priority_sel_7b_2way({~(~and_6890 | and_6892), and_6910}, 7'h00, {1'h1, priority_sel_6911}, {and_6890, priority_sel_6b_2way({~(~and_6849 | and_6857), and_6890}, {priority_sel_6897, 1'h0}, {1'h1, nor_6812, priority_sel_1b_4way(concat_6885, 1'h0, 1'h1, 1'h0, 1'h1, and_6599), priority_sel_6899}, {and_6849, priority_sel_6897})}); assign out = {and_6910, priority_sel_6917}; endmodule