28 wire [1:0] lutdata = INIT;
29 wire [0:0] idx = { I0 };
31 assign O = lutdata[idx];
34 module LUT2(O, I0, I1);
37 wire [3:0] lutdata = INIT;
38 wire [1:0] idx = { I1, I0 };
40 assign O = lutdata[idx];
43 module LUT3(O, I0, I1, I2);
46 wire [7:0] lutdata = INIT;
47 wire [2:0] idx = { I2, I1, I0 };
49 assign O = lutdata[idx];
52 module LUT4(O, I0, I1, I2, I3);
55 wire [15:0] lutdata = INIT;
56 wire [3:0] idx = { I3, I2, I1, I0 };
58 assign O = lutdata[idx];
61 module LUT5(O, I0, I1, I2, I3, I4);
63 input I0, I1, I2, I3, I4;
64 wire [31:0] lutdata = INIT;
65 wire [4:0] idx = { I4, I3, I2, I1, I0 };
67 assign O = lutdata[idx];
70 module LUT6(O, I0, I1, I2, I3, I4, I5);
72 input I0, I1, I2, I3, I4, I5;
73 wire [63:0] lutdata = INIT;
74 wire [5:0] idx = { I5, I4, I3, I2, I1, I0 };
76 assign O = lutdata[idx];
79 module MUXCY(O, CI, DI, S);
82 assign O = S ? CI : DI;
85 module MUXF7(O, I0, I1, S);
88 assign O = S ? I1 : I0;
91 module MUXF8(O, I0, I1, S);
94 assign O = S ? I1 : I0;
102 module XORCY(O, CI, LI);
108 module CARRY4(CO, O, CI, CYINIT, DI, S);
113 assign O = S ^ {CO[2:0], ci_or_cyinit};
114 assign CO[0] = S[0] ? ci_or_cyinit : DI[0];
115 assign CO[1] = S[1] ? CO[0] : DI[1];
116 assign CO[2] = S[2] ? CO[1] : DI[2];
117 assign CO[3] = S[3] ? CO[2] : DI[3];
118 assign ci_or_cyinit = CI | CYINIT;