module __std__clzt_pow2_32( input wire [31:0] value, output wire [5: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 [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 wire nor_1706; wire nor_1708; wire nor_1710; wire nor_1712; wire nor_1722; wire nor_1724; wire and_1725; wire and_1727; wire and_1728; wire and_1729; wire nor_1731; wire nor_1733; wire and_1734; wire and_1735; wire nor_1737; wire and_1738; wire and_1739; wire and_1740; wire and_1741; wire and_1742; wire nor_1755; wire and_1757; wire and_1758; wire and_1781; wire and_1782; wire and_1784; wire nor_1785; wire nor_1805; wire nor_1812; wire and_1833; wire [2:0] concat_1836; wire [2:0] concat_1835; wire [2:0] concat_1839; wire [2:0] concat_1838; wire [2:0] concat_1842; wire [2:0] concat_1841; wire [3:0] concat_1845; wire [2:0] priority_sel_1852; assign nor_1706 = ~(value[29] | value[28]); assign nor_1708 = ~(value[25] | value[24]); assign nor_1710 = ~(value[21] | value[20]); assign nor_1712 = ~(value[17] | value[16]); assign nor_1722 = ~(value[13] | value[12]); assign nor_1724 = ~(value[9] | value[8]); assign and_1725 = ~(value[31] | value[30]) & nor_1706; assign and_1727 = ~(value[27] | value[26]) & nor_1708; assign and_1728 = ~(value[23] | value[22]) & nor_1710; assign and_1729 = ~(value[19] | value[18]) & nor_1712; assign nor_1731 = ~(value[5] | value[4]); assign nor_1733 = ~(value[1] | value[0]); assign and_1734 = ~(value[15] | value[14]) & nor_1722; assign and_1735 = ~(value[11] | value[10]) & nor_1724; assign nor_1737 = ~(value[27] | value[26] | nor_1708); assign and_1738 = and_1725 & and_1727; assign and_1739 = and_1728 & and_1729; assign and_1740 = ~(value[7] | value[6]) & nor_1731; assign and_1741 = ~(value[3] | value[2]) & nor_1733; assign and_1742 = and_1734 & and_1735; assign nor_1755 = ~(~and_1725 | and_1727); assign and_1757 = and_1738 & and_1739; assign and_1758 = and_1740 & and_1741; assign and_1781 = nor_1755 & ~nor_1737; assign and_1782 = nor_1755 & nor_1737; assign and_1784 = and_1742 & and_1758; assign nor_1785 = ~(~and_1742 | and_1758); assign nor_1805 = ~(value[31] | value[30] | nor_1706); assign nor_1812 = ~(~and_1757 | and_1784); assign and_1833 = and_1757 & and_1784; assign concat_1836 = {1'h0, ~(value[7] | value[6] | nor_1731) ? {1'h1, ~(value[5] | ~value[4])} : {1'h0, ~(value[7] | ~value[6])}}; assign concat_1835 = {1'h1, ~(value[3] | value[2] | nor_1733) ? {1'h1, ~(value[1] | ~value[0])} : {1'h0, ~(value[3] | ~value[2])}}; assign concat_1839 = {1'h0, ~(value[15] | value[14] | nor_1722) ? {1'h1, ~(value[13] | ~value[12])} : {1'h0, ~(value[15] | ~value[14])}}; assign concat_1838 = {1'h1, ~(value[11] | value[10] | nor_1724) ? {1'h1, ~(value[9] | ~value[8])} : {1'h0, ~(value[11] | ~value[10])}}; assign concat_1842 = {1'h0, ~(value[23] | value[22] | nor_1710) ? {1'h1, ~(value[21] | ~value[20])} : {1'h0, ~(value[23] | ~value[22])}}; assign concat_1841 = {1'h1, ~(value[19] | value[18] | nor_1712) ? {1'h1, ~(value[17] | ~value[16])} : {1'h0, ~(value[19] | ~value[18])}}; assign concat_1845 = {~(~and_1738 | and_1739), nor_1812 & ~nor_1785, nor_1812 & nor_1785, and_1833}; assign priority_sel_1852 = priority_sel_3b_4way(concat_1845, 3'h0, ~(~and_1740 | and_1741) ? concat_1835 : concat_1836, ~(~and_1734 | and_1735) ? concat_1838 : concat_1839, ~(~and_1728 | and_1729) ? concat_1841 : concat_1842, {nor_1755, and_1782 & ~and_1738 | nor_1805 & ~and_1781 & ~and_1782 & ~and_1738, priority_sel_1b_4way({nor_1805, and_1781, and_1782, and_1738}, 1'h0, ~(value[25] | ~value[24]), ~(value[27] | ~value[26]), ~(value[29] | ~value[28]), ~(value[31] | ~value[30]))}); assign out = {and_1833, nor_1812, priority_sel_1b_4way(concat_1845, 1'h0, 1'h1, 1'h0, 1'h1, and_1738), priority_sel_1852}; endmodule