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_1742; wire nor_1744; wire nor_1746; wire nor_1748; wire nor_1758; wire nor_1760; wire and_1761; wire and_1763; wire and_1764; wire and_1765; wire nor_1767; wire nor_1769; wire and_1770; wire and_1771; wire nor_1773; wire and_1774; wire and_1775; wire and_1776; wire and_1777; wire and_1778; wire nor_1791; wire and_1793; wire and_1794; wire literal_1799; wire literal_1797; wire and_1817; wire and_1818; wire and_1820; wire nor_1821; wire nor_1841; wire nor_1848; wire and_1869; wire [2:0] concat_1872; wire [2:0] concat_1871; wire [2:0] concat_1875; wire [2:0] concat_1874; wire [2:0] concat_1878; wire [2:0] concat_1877; wire [3:0] concat_1881; wire [2:0] priority_sel_1888; assign nor_1742 = ~(value[29] | value[28]); assign nor_1744 = ~(value[25] | value[24]); assign nor_1746 = ~(value[21] | value[20]); assign nor_1748 = ~(value[17] | value[16]); assign nor_1758 = ~(value[13] | value[12]); assign nor_1760 = ~(value[9] | value[8]); assign and_1761 = ~(value[31] | value[30]) & nor_1742; assign and_1763 = ~(value[27] | value[26]) & nor_1744; assign and_1764 = ~(value[23] | value[22]) & nor_1746; assign and_1765 = ~(value[19] | value[18]) & nor_1748; assign nor_1767 = ~(value[5] | value[4]); assign nor_1769 = ~(value[1] | value[0]); assign and_1770 = ~(value[15] | value[14]) & nor_1758; assign and_1771 = ~(value[11] | value[10]) & nor_1760; assign nor_1773 = ~(value[27] | value[26] | nor_1744); assign and_1774 = and_1761 & and_1763; assign and_1775 = and_1764 & and_1765; assign and_1776 = ~(value[7] | value[6]) & nor_1767; assign and_1777 = ~(value[3] | value[2]) & nor_1769; assign and_1778 = and_1770 & and_1771; assign nor_1791 = ~(~and_1761 | and_1763); assign and_1793 = and_1774 & and_1775; assign and_1794 = and_1776 & and_1777; assign literal_1799 = 1'h0; assign literal_1797 = 1'h1; assign and_1817 = nor_1791 & ~nor_1773; assign and_1818 = nor_1791 & nor_1773; assign and_1820 = and_1778 & and_1794; assign nor_1821 = ~(~and_1778 | and_1794); assign nor_1841 = ~(value[31] | value[30] | nor_1742); assign nor_1848 = ~(~and_1793 | and_1820); assign and_1869 = and_1793 & and_1820; assign concat_1872 = {literal_1799, ~(value[7] | value[6] | nor_1767) ? {literal_1797, ~(value[5] | ~value[4])} : {literal_1799, ~(value[7] | ~value[6])}}; assign concat_1871 = {literal_1797, ~(value[3] | value[2] | nor_1769) ? {literal_1797, ~(value[1] | ~value[0])} : {literal_1799, ~(value[3] | ~value[2])}}; assign concat_1875 = {literal_1799, ~(value[15] | value[14] | nor_1758) ? {literal_1797, ~(value[13] | ~value[12])} : {literal_1799, ~(value[15] | ~value[14])}}; assign concat_1874 = {literal_1797, ~(value[11] | value[10] | nor_1760) ? {literal_1797, ~(value[9] | ~value[8])} : {literal_1799, ~(value[11] | ~value[10])}}; assign concat_1878 = {literal_1799, ~(value[23] | value[22] | nor_1746) ? {literal_1797, ~(value[21] | ~value[20])} : {literal_1799, ~(value[23] | ~value[22])}}; assign concat_1877 = {literal_1797, ~(value[19] | value[18] | nor_1748) ? {literal_1797, ~(value[17] | ~value[16])} : {literal_1799, ~(value[19] | ~value[18])}}; assign concat_1881 = {~(~and_1774 | and_1775), nor_1848 & ~nor_1821, nor_1848 & nor_1821, and_1869}; assign priority_sel_1888 = priority_sel_3b_4way(concat_1881, 3'h0, ~(~and_1776 | and_1777) ? concat_1871 : concat_1872, ~(~and_1770 | and_1771) ? concat_1874 : concat_1875, ~(~and_1764 | and_1765) ? concat_1877 : concat_1878, {nor_1791, and_1818 & ~and_1774 | nor_1841 & ~and_1817 & ~and_1818 & ~and_1774, priority_sel_1b_4way({nor_1841, and_1817, and_1818, and_1774}, literal_1799, ~(value[25] | ~value[24]), ~(value[27] | ~value[26]), ~(value[29] | ~value[28]), ~(value[31] | ~value[30]))}); assign out = {and_1869, nor_1848, priority_sel_1b_4way(concat_1881, literal_1799, literal_1797, literal_1799, literal_1797, and_1774), priority_sel_1888}; endmodule