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_1744; wire nor_1746; wire nor_1748; wire nor_1750; wire nor_1760; wire nor_1762; wire and_1763; wire and_1765; wire and_1766; wire and_1767; wire nor_1769; wire nor_1771; wire and_1772; wire and_1773; wire nor_1775; wire and_1776; wire and_1777; wire and_1778; wire and_1779; wire and_1780; wire nor_1793; wire and_1795; wire and_1796; wire and_1819; wire and_1820; wire and_1822; wire nor_1823; wire nor_1843; wire nor_1850; wire and_1871; wire [2:0] concat_1874; wire [2:0] concat_1873; wire [2:0] concat_1877; wire [2:0] concat_1876; wire [2:0] concat_1880; wire [2:0] concat_1879; wire [3:0] concat_1883; wire [2:0] priority_sel_1890; assign nor_1744 = ~(value[29] | value[28]); assign nor_1746 = ~(value[25] | value[24]); assign nor_1748 = ~(value[21] | value[20]); assign nor_1750 = ~(value[17] | value[16]); assign nor_1760 = ~(value[13] | value[12]); assign nor_1762 = ~(value[9] | value[8]); assign and_1763 = ~(value[31] | value[30]) & nor_1744; assign and_1765 = ~(value[27] | value[26]) & nor_1746; assign and_1766 = ~(value[23] | value[22]) & nor_1748; assign and_1767 = ~(value[19] | value[18]) & nor_1750; assign nor_1769 = ~(value[5] | value[4]); assign nor_1771 = ~(value[1] | value[0]); assign and_1772 = ~(value[15] | value[14]) & nor_1760; assign and_1773 = ~(value[11] | value[10]) & nor_1762; assign nor_1775 = ~(value[27] | value[26] | nor_1746); assign and_1776 = and_1763 & and_1765; assign and_1777 = and_1766 & and_1767; assign and_1778 = ~(value[7] | value[6]) & nor_1769; assign and_1779 = ~(value[3] | value[2]) & nor_1771; assign and_1780 = and_1772 & and_1773; assign nor_1793 = ~(~and_1763 | and_1765); assign and_1795 = and_1776 & and_1777; assign and_1796 = and_1778 & and_1779; assign and_1819 = nor_1793 & ~nor_1775; assign and_1820 = nor_1793 & nor_1775; assign and_1822 = and_1780 & and_1796; assign nor_1823 = ~(~and_1780 | and_1796); assign nor_1843 = ~(value[31] | value[30] | nor_1744); assign nor_1850 = ~(~and_1795 | and_1822); assign and_1871 = and_1795 & and_1822; assign concat_1874 = {1'h0, ~(value[7] | value[6] | nor_1769) ? {1'h1, ~(value[5] | ~value[4])} : {1'h0, ~(value[7] | ~value[6])}}; assign concat_1873 = {1'h1, ~(value[3] | value[2] | nor_1771) ? {1'h1, ~(value[1] | ~value[0])} : {1'h0, ~(value[3] | ~value[2])}}; assign concat_1877 = {1'h0, ~(value[15] | value[14] | nor_1760) ? {1'h1, ~(value[13] | ~value[12])} : {1'h0, ~(value[15] | ~value[14])}}; assign concat_1876 = {1'h1, ~(value[11] | value[10] | nor_1762) ? {1'h1, ~(value[9] | ~value[8])} : {1'h0, ~(value[11] | ~value[10])}}; assign concat_1880 = {1'h0, ~(value[23] | value[22] | nor_1748) ? {1'h1, ~(value[21] | ~value[20])} : {1'h0, ~(value[23] | ~value[22])}}; assign concat_1879 = {1'h1, ~(value[19] | value[18] | nor_1750) ? {1'h1, ~(value[17] | ~value[16])} : {1'h0, ~(value[19] | ~value[18])}}; assign concat_1883 = {~(~and_1776 | and_1777), nor_1850 & ~nor_1823, nor_1850 & nor_1823, and_1871}; assign priority_sel_1890 = priority_sel_3b_4way(concat_1883, 3'h0, ~(~and_1778 | and_1779) ? concat_1873 : concat_1874, ~(~and_1772 | and_1773) ? concat_1876 : concat_1877, ~(~and_1766 | and_1767) ? concat_1879 : concat_1880, {nor_1793, and_1820 & ~and_1776 | nor_1843 & ~and_1819 & ~and_1820 & ~and_1776, priority_sel_1b_4way({nor_1843, and_1819, and_1820, and_1776}, 1'h0, ~(value[25] | ~value[24]), ~(value[27] | ~value[26]), ~(value[29] | ~value[28]), ~(value[31] | ~value[30]))}); assign out = {and_1871, nor_1850, priority_sel_1b_4way(concat_1883, 1'h0, 1'h1, 1'h0, 1'h1, and_1776), priority_sel_1890}; endmodule