module fex17perm(input f1, input [2:0] f2, input [3:0] f3, input [4:0] f4, input [5:0] f5, input [6:0] f6, input [7:0] f7, input [8:0] f8, input [9:0] f9, input [10:0] f10, input [11:0] f11, input [12:0] f12, input [13:0] f13, input [14:0] f14, input [15:0] f15, input [16:0] f16, input [17:0] f17, output [4:0] d0, output [4:0] d1, output [4:0] d2, output [4:0] d3, output [4:0] d4, output [4:0] d5, output [4:0] d6, output [4:0] d7, output [4:0] d8, output [4:0] d9, output [4:0] d10, output [4:0] d11, output [4:0] d12, output [4:0] d13, output [4:0] d14, output [4:0] d15, output [4:0] d16, output [4:0] d17); parameter w = 4; parameter [w:0] lev0_0 = 1; parameter [w:0] lev0_1 = 2; parameter [w:0] lev0_2 = 3; parameter [w:0] lev0_3 = 4; parameter [w:0] lev0_4 = 5; parameter [w:0] lev0_5 = 6; parameter [w:0] lev0_6 = 7; parameter [w:0] lev0_7 = 8; parameter [w:0] lev0_8 = 9; parameter [w:0] lev0_9 = 10; parameter [w:0] lev0_10 = 11; parameter [w:0] lev0_11 = 12; parameter [w:0] lev0_12 = 13; parameter [w:0] lev0_13 = 14; parameter [w:0] lev0_14 = 15; parameter [w:0] lev0_15 = 16; parameter [w:0] lev0_16 = 17; parameter [w:0] lev0_17 = 18; wire [w:0] lev1_0 = (1 == f1 ? lev0_1 : lev0_0); wire [w:0] lev1_1 = (1 == f1 ? lev0_0 : lev0_1); wire [w:0] lev2_0 = (f2[2] ? lev0_2 : lev1_0); wire [w:0] lev2_1 = (f2[1] ? lev0_2 : lev1_1); wire [w:0] lev2_2 = (f2[2] ? lev1_0 : (f2[1] ? lev1_1 : lev0_2)); wire [w:0] lev3_0 = (f3[3] ? lev0_3 : lev2_0); wire [w:0] lev3_1 = (f3[2] ? lev0_3 : lev2_1); wire [w:0] lev3_2 = (f3[1] ? lev0_3 : lev2_2); wire [w:0] lev3_3 = (f3[3] ? lev2_0 : (f3[2] ? lev2_1 : (f3[1] ? lev2_2 : lev0_3))); wire [w:0] lev4_0 = (f4[4] ? lev0_4 : lev3_0); wire [w:0] lev4_1 = (f4[3] ? lev0_4 : lev3_1); wire [w:0] lev4_2 = (f4[2] ? lev0_4 : lev3_2); wire [w:0] lev4_3 = (f4[1] ? lev0_4 : lev3_3); wire [w:0] lev4_4 = (f4[4] ? lev3_0 : (f4[3] ? lev3_1 : (f4[2] ? lev3_2 : (f4[1] ? lev3_3 : lev0_4)))); wire [w:0] lev5_0 = (f5[5] ? lev0_5 : lev4_0); wire [w:0] lev5_1 = (f5[4] ? lev0_5 : lev4_1); wire [w:0] lev5_2 = (f5[3] ? lev0_5 : lev4_2); wire [w:0] lev5_3 = (f5[2] ? lev0_5 : lev4_3); wire [w:0] lev5_4 = (f5[1] ? lev0_5 : lev4_4); wire [w:0] lev5_5 = (f5[5] ? lev4_0 : (f5[4] ? lev4_1 : (f5[3] ? lev4_2 : (f5[2] ? lev4_3 : (f5[1] ? lev4_4 : lev0_5))))); wire [w:0] lev6_0 = (f6[6] ? lev0_6 : lev5_0); wire [w:0] lev6_1 = (f6[5] ? lev0_6 : lev5_1); wire [w:0] lev6_2 = (f6[4] ? lev0_6 : lev5_2); wire [w:0] lev6_3 = (f6[3] ? lev0_6 : lev5_3); wire [w:0] lev6_4 = (f6[2] ? lev0_6 : lev5_4); wire [w:0] lev6_5 = (f6[1] ? lev0_6 : lev5_5); wire [w:0] lev6_6 = (f6[6] ? lev5_0 : (f6[5] ? lev5_1 : (f6[4] ? lev5_2 : (f6[3] ? lev5_3 : (f6[2] ? lev5_4 : (f6[1] ? lev5_5 : lev0_6)))))); wire [w:0] lev7_0 = (f7[7] ? lev0_7 : lev6_0); wire [w:0] lev7_1 = (f7[6] ? lev0_7 : lev6_1); wire [w:0] lev7_2 = (f7[5] ? lev0_7 : lev6_2); wire [w:0] lev7_3 = (f7[4] ? lev0_7 : lev6_3); wire [w:0] lev7_4 = (f7[3] ? lev0_7 : lev6_4); wire [w:0] lev7_5 = (f7[2] ? lev0_7 : lev6_5); wire [w:0] lev7_6 = (f7[1] ? lev0_7 : lev6_6); wire [w:0] lev7_7 = (f7[7] ? lev6_0 : (f7[6] ? lev6_1 : (f7[5] ? lev6_2 : (f7[4] ? lev6_3 : (f7[3] ? lev6_4 : (f7[2] ? lev6_5 : (f7[1] ? lev6_6 : lev0_7))))))); wire [w:0] lev8_0 = (f8[8] ? lev0_8 : lev7_0); wire [w:0] lev8_1 = (f8[7] ? lev0_8 : lev7_1); wire [w:0] lev8_2 = (f8[6] ? lev0_8 : lev7_2); wire [w:0] lev8_3 = (f8[5] ? lev0_8 : lev7_3); wire [w:0] lev8_4 = (f8[4] ? lev0_8 : lev7_4); wire [w:0] lev8_5 = (f8[3] ? lev0_8 : lev7_5); wire [w:0] lev8_6 = (f8[2] ? lev0_8 : lev7_6); wire [w:0] lev8_7 = (f8[1] ? lev0_8 : lev7_7); wire [w:0] lev8_8 = (f8[8] ? lev7_0 : (f8[7] ? lev7_1 : (f8[6] ? lev7_2 : (f8[5] ? lev7_3 : (f8[4] ? lev7_4 : (f8[3] ? lev7_5 : (f8[2] ? lev7_6 : (f8[1] ? lev7_7 : lev0_8)))))))); wire [w:0] lev9_0 = (f9[9] ? lev0_9 : lev8_0); wire [w:0] lev9_1 = (f9[8] ? lev0_9 : lev8_1); wire [w:0] lev9_2 = (f9[7] ? lev0_9 : lev8_2); wire [w:0] lev9_3 = (f9[6] ? lev0_9 : lev8_3); wire [w:0] lev9_4 = (f9[5] ? lev0_9 : lev8_4); wire [w:0] lev9_5 = (f9[4] ? lev0_9 : lev8_5); wire [w:0] lev9_6 = (f9[3] ? lev0_9 : lev8_6); wire [w:0] lev9_7 = (f9[2] ? lev0_9 : lev8_7); wire [w:0] lev9_8 = (f9[1] ? lev0_9 : lev8_8); wire [w:0] lev9_9 = (f9[9] ? lev8_0 : (f9[8] ? lev8_1 : (f9[7] ? lev8_2 : (f9[6] ? lev8_3 : (f9[5] ? lev8_4 : (f9[4] ? lev8_5 : (f9[3] ? lev8_6 : (f9[2] ? lev8_7 : (f9[1] ? lev8_8 : lev0_9))))))))); wire [w:0] lev10_0 = (f10[10] ? lev0_10 : lev9_0); wire [w:0] lev10_1 = (f10[9] ? lev0_10 : lev9_1); wire [w:0] lev10_2 = (f10[8] ? lev0_10 : lev9_2); wire [w:0] lev10_3 = (f10[7] ? lev0_10 : lev9_3); wire [w:0] lev10_4 = (f10[6] ? lev0_10 : lev9_4); wire [w:0] lev10_5 = (f10[5] ? lev0_10 : lev9_5); wire [w:0] lev10_6 = (f10[4] ? lev0_10 : lev9_6); wire [w:0] lev10_7 = (f10[3] ? lev0_10 : lev9_7); wire [w:0] lev10_8 = (f10[2] ? lev0_10 : lev9_8); wire [w:0] lev10_9 = (f10[1] ? lev0_10 : lev9_9); wire [w:0] lev10_10 = (f10[10] ? lev9_0 : (f10[9] ? lev9_1 : (f10[8] ? lev9_2 : (f10[7] ? lev9_3 : (f10[6] ? lev9_4 : (f10[5] ? lev9_5 : (f10[4] ? lev9_6 : (f10[3] ? lev9_7 : (f10[2] ? lev9_8 : (f10[1] ? lev9_9 : lev0_10)))))))))); wire [w:0] lev11_0 = (f11[11] ? lev0_11 : lev10_0); wire [w:0] lev11_1 = (f11[10] ? lev0_11 : lev10_1); wire [w:0] lev11_2 = (f11[9] ? lev0_11 : lev10_2); wire [w:0] lev11_3 = (f11[8] ? lev0_11 : lev10_3); wire [w:0] lev11_4 = (f11[7] ? lev0_11 : lev10_4); wire [w:0] lev11_5 = (f11[6] ? lev0_11 : lev10_5); wire [w:0] lev11_6 = (f11[5] ? lev0_11 : lev10_6); wire [w:0] lev11_7 = (f11[4] ? lev0_11 : lev10_7); wire [w:0] lev11_8 = (f11[3] ? lev0_11 : lev10_8); wire [w:0] lev11_9 = (f11[2] ? lev0_11 : lev10_9); wire [w:0] lev11_10 = (f11[1] ? lev0_11 : lev10_10); wire [w:0] lev11_11 = (f11[11] ? lev10_0 : (f11[10] ? lev10_1 : (f11[9] ? lev10_2 : (f11[8] ? lev10_3 : (f11[7] ? lev10_4 : (f11[6] ? lev10_5 : (f11[5] ? lev10_6 : (f11[4] ? lev10_7 : (f11[3] ? lev10_8 : (f11[2] ? lev10_9 : (f11[1] ? lev10_10 : lev0_11))))))))))); wire [w:0] lev12_0 = (f12[12] ? lev0_12 : lev11_0); wire [w:0] lev12_1 = (f12[11] ? lev0_12 : lev11_1); wire [w:0] lev12_2 = (f12[10] ? lev0_12 : lev11_2); wire [w:0] lev12_3 = (f12[9] ? lev0_12 : lev11_3); wire [w:0] lev12_4 = (f12[8] ? lev0_12 : lev11_4); wire [w:0] lev12_5 = (f12[7] ? lev0_12 : lev11_5); wire [w:0] lev12_6 = (f12[6] ? lev0_12 : lev11_6); wire [w:0] lev12_7 = (f12[5] ? lev0_12 : lev11_7); wire [w:0] lev12_8 = (f12[4] ? lev0_12 : lev11_8); wire [w:0] lev12_9 = (f12[3] ? lev0_12 : lev11_9); wire [w:0] lev12_10 = (f12[2] ? lev0_12 : lev11_10); wire [w:0] lev12_11 = (f12[1] ? lev0_12 : lev11_11); wire [w:0] lev12_12 = (f12[12] ? lev11_0 : (f12[11] ? lev11_1 : (f12[10] ? lev11_2 : (f12[9] ? lev11_3 : (f12[8] ? lev11_4 : (f12[7] ? lev11_5 : (f12[6] ? lev11_6 : (f12[5] ? lev11_7 : (f12[4] ? lev11_8 : (f12[3] ? lev11_9 : (f12[2] ? lev11_10 : (f12[1] ? lev11_11 : lev0_12)))))))))))); wire [w:0] lev13_0 = (f13[13] ? lev0_13 : lev12_0); wire [w:0] lev13_1 = (f13[12] ? lev0_13 : lev12_1); wire [w:0] lev13_2 = (f13[11] ? lev0_13 : lev12_2); wire [w:0] lev13_3 = (f13[10] ? lev0_13 : lev12_3); wire [w:0] lev13_4 = (f13[9] ? lev0_13 : lev12_4); wire [w:0] lev13_5 = (f13[8] ? lev0_13 : lev12_5); wire [w:0] lev13_6 = (f13[7] ? lev0_13 : lev12_6); wire [w:0] lev13_7 = (f13[6] ? lev0_13 : lev12_7); wire [w:0] lev13_8 = (f13[5] ? lev0_13 : lev12_8); wire [w:0] lev13_9 = (f13[4] ? lev0_13 : lev12_9); wire [w:0] lev13_10 = (f13[3] ? lev0_13 : lev12_10); wire [w:0] lev13_11 = (f13[2] ? lev0_13 : lev12_11); wire [w:0] lev13_12 = (f13[1] ? lev0_13 : lev12_12); wire [w:0] lev13_13 = (f13[13] ? lev12_0 : (f13[12] ? lev12_1 : (f13[11] ? lev12_2 : (f13[10] ? lev12_3 : (f13[9] ? lev12_4 : (f13[8] ? lev12_5 : (f13[7] ? lev12_6 : (f13[6] ? lev12_7 : (f13[5] ? lev12_8 : (f13[4] ? lev12_9 : (f13[3] ? lev12_10 : (f13[2] ? lev12_11 : (f13[1] ? lev12_12 : lev0_13))))))))))))); wire [w:0] lev14_0 = (f14[14] ? lev0_14 : lev13_0); wire [w:0] lev14_1 = (f14[13] ? lev0_14 : lev13_1); wire [w:0] lev14_2 = (f14[12] ? lev0_14 : lev13_2); wire [w:0] lev14_3 = (f14[11] ? lev0_14 : lev13_3); wire [w:0] lev14_4 = (f14[10] ? lev0_14 : lev13_4); wire [w:0] lev14_5 = (f14[9] ? lev0_14 : lev13_5); wire [w:0] lev14_6 = (f14[8] ? lev0_14 : lev13_6); wire [w:0] lev14_7 = (f14[7] ? lev0_14 : lev13_7); wire [w:0] lev14_8 = (f14[6] ? lev0_14 : lev13_8); wire [w:0] lev14_9 = (f14[5] ? lev0_14 : lev13_9); wire [w:0] lev14_10 = (f14[4] ? lev0_14 : lev13_10); wire [w:0] lev14_11 = (f14[3] ? lev0_14 : lev13_11); wire [w:0] lev14_12 = (f14[2] ? lev0_14 : lev13_12); wire [w:0] lev14_13 = (f14[1] ? lev0_14 : lev13_13); wire [w:0] lev14_14 = (f14[14] ? lev13_0 : (f14[13] ? lev13_1 : (f14[12] ? lev13_2 : (f14[11] ? lev13_3 : (f14[10] ? lev13_4 : (f14[9] ? lev13_5 : (f14[8] ? lev13_6 : (f14[7] ? lev13_7 : (f14[6] ? lev13_8 : (f14[5] ? lev13_9 : (f14[4] ? lev13_10 : (f14[3] ? lev13_11 : (f14[2] ? lev13_12 : (f14[1] ? lev13_13 : lev0_14)))))))))))))); wire [w:0] lev15_0 = (f15[15] ? lev0_15 : lev14_0); wire [w:0] lev15_1 = (f15[14] ? lev0_15 : lev14_1); wire [w:0] lev15_2 = (f15[13] ? lev0_15 : lev14_2); wire [w:0] lev15_3 = (f15[12] ? lev0_15 : lev14_3); wire [w:0] lev15_4 = (f15[11] ? lev0_15 : lev14_4); wire [w:0] lev15_5 = (f15[10] ? lev0_15 : lev14_5); wire [w:0] lev15_6 = (f15[9] ? lev0_15 : lev14_6); wire [w:0] lev15_7 = (f15[8] ? lev0_15 : lev14_7); wire [w:0] lev15_8 = (f15[7] ? lev0_15 : lev14_8); wire [w:0] lev15_9 = (f15[6] ? lev0_15 : lev14_9); wire [w:0] lev15_10 = (f15[5] ? lev0_15 : lev14_10); wire [w:0] lev15_11 = (f15[4] ? lev0_15 : lev14_11); wire [w:0] lev15_12 = (f15[3] ? lev0_15 : lev14_12); wire [w:0] lev15_13 = (f15[2] ? lev0_15 : lev14_13); wire [w:0] lev15_14 = (f15[1] ? lev0_15 : lev14_14); wire [w:0] lev15_15 = (f15[15] ? lev14_0 : (f15[14] ? lev14_1 : (f15[13] ? lev14_2 : (f15[12] ? lev14_3 : (f15[11] ? lev14_4 : (f15[10] ? lev14_5 : (f15[9] ? lev14_6 : (f15[8] ? lev14_7 : (f15[7] ? lev14_8 : (f15[6] ? lev14_9 : (f15[5] ? lev14_10 : (f15[4] ? lev14_11 : (f15[3] ? lev14_12 : (f15[2] ? lev14_13 : (f15[1] ? lev14_14 : lev0_15))))))))))))))); wire [w:0] lev16_0 = (f16[16] ? lev0_16 : lev15_0); wire [w:0] lev16_1 = (f16[15] ? lev0_16 : lev15_1); wire [w:0] lev16_2 = (f16[14] ? lev0_16 : lev15_2); wire [w:0] lev16_3 = (f16[13] ? lev0_16 : lev15_3); wire [w:0] lev16_4 = (f16[12] ? lev0_16 : lev15_4); wire [w:0] lev16_5 = (f16[11] ? lev0_16 : lev15_5); wire [w:0] lev16_6 = (f16[10] ? lev0_16 : lev15_6); wire [w:0] lev16_7 = (f16[9] ? lev0_16 : lev15_7); wire [w:0] lev16_8 = (f16[8] ? lev0_16 : lev15_8); wire [w:0] lev16_9 = (f16[7] ? lev0_16 : lev15_9); wire [w:0] lev16_10 = (f16[6] ? lev0_16 : lev15_10); wire [w:0] lev16_11 = (f16[5] ? lev0_16 : lev15_11); wire [w:0] lev16_12 = (f16[4] ? lev0_16 : lev15_12); wire [w:0] lev16_13 = (f16[3] ? lev0_16 : lev15_13); wire [w:0] lev16_14 = (f16[2] ? lev0_16 : lev15_14); wire [w:0] lev16_15 = (f16[1] ? lev0_16 : lev15_15); wire [w:0] lev16_16 = (f16[16] ? lev15_0 : (f16[15] ? lev15_1 : (f16[14] ? lev15_2 : (f16[13] ? lev15_3 : (f16[12] ? lev15_4 : (f16[11] ? lev15_5 : (f16[10] ? lev15_6 : (f16[9] ? lev15_7 : (f16[8] ? lev15_8 : (f16[7] ? lev15_9 : (f16[6] ? lev15_10 : (f16[5] ? lev15_11 : (f16[4] ? lev15_12 : (f16[3] ? lev15_13 : (f16[2] ? lev15_14 : (f16[1] ? lev15_15 : lev0_16)))))))))))))))); wire [w:0] lev17_0 = (f17[17] ? lev0_17 : lev16_0); wire [w:0] lev17_1 = (f17[16] ? lev0_17 : lev16_1); wire [w:0] lev17_2 = (f17[15] ? lev0_17 : lev16_2); wire [w:0] lev17_3 = (f17[14] ? lev0_17 : lev16_3); wire [w:0] lev17_4 = (f17[13] ? lev0_17 : lev16_4); wire [w:0] lev17_5 = (f17[12] ? lev0_17 : lev16_5); wire [w:0] lev17_6 = (f17[11] ? lev0_17 : lev16_6); wire [w:0] lev17_7 = (f17[10] ? lev0_17 : lev16_7); wire [w:0] lev17_8 = (f17[9] ? lev0_17 : lev16_8); wire [w:0] lev17_9 = (f17[8] ? lev0_17 : lev16_9); wire [w:0] lev17_10 = (f17[7] ? lev0_17 : lev16_10); wire [w:0] lev17_11 = (f17[6] ? lev0_17 : lev16_11); wire [w:0] lev17_12 = (f17[5] ? lev0_17 : lev16_12); wire [w:0] lev17_13 = (f17[4] ? lev0_17 : lev16_13); wire [w:0] lev17_14 = (f17[3] ? lev0_17 : lev16_14); wire [w:0] lev17_15 = (f17[2] ? lev0_17 : lev16_15); wire [w:0] lev17_16 = (f17[1] ? lev0_17 : lev16_16); wire [w:0] lev17_17 = (f17[17] ? lev16_0 : (f17[16] ? lev16_1 : (f17[15] ? lev16_2 : (f17[14] ? lev16_3 : (f17[13] ? lev16_4 : (f17[12] ? lev16_5 : (f17[11] ? lev16_6 : (f17[10] ? lev16_7 : (f17[9] ? lev16_8 : (f17[8] ? lev16_9 : (f17[7] ? lev16_10 : (f17[6] ? lev16_11 : (f17[5] ? lev16_12 : (f17[4] ? lev16_13 : (f17[3] ? lev16_14 : (f17[2] ? lev16_15 : (f17[1] ? lev16_16 : lev0_17))))))))))))))))); assign d0 = lev17_0; assign d1 = lev17_1; assign d2 = lev17_2; assign d3 = lev17_3; assign d4 = lev17_4; assign d5 = lev17_5; assign d6 = lev17_6; assign d7 = lev17_7; assign d8 = lev17_8; assign d9 = lev17_9; assign d10 = lev17_10; assign d11 = lev17_11; assign d12 = lev17_12; assign d13 = lev17_13; assign d14 = lev17_14; assign d15 = lev17_15; assign d16 = lev17_16; assign d17 = lev17_17; endmodule