16.2.1 Combinatorial Logic

16.2.1.1 AND2

2-Input AND.
Figure 16-73. AND2
Table 16-165. AND2 I/O
InputsOutput
A, BY
Table 16-166. AND2 Truth Table
ABY
X00
0X0
111

16.2.1.2 AND3

3-Input AND.
Figure 16-74. AND3
Table 16-167. AND3 I/O
InputOutput
A, B, CY
Table 16-168. AND3 Truth Table
ABCY
XX00
X0X0
0XX0
1111

16.2.1.3 AND4

4-Input AND.
Figure 16-75. AND4
Table 16-169. AND4 I/O
InputOutput
A, B, C, DY
Table 16-170. AND4 Truth Table
ABCDY
XXX00
XX0X0
X0XX0
0XXX0
11111

16.2.1.4 ARI1

The ARI1 macro is responsible for representing all arithmetic operations in the pre-layout phase.
Figure 16-76. ARI1
Table 16-171. ARI1 I/O
InputOutput
A, B, C, D, FCIY, S, FCO

The ARI1 cell has a 20 bit INIT string parameter that is used to configure its functionality. The interpretation of the 16 LSB of the INIT string is shown in the following table. F0 is the value of Y when A = 0 and F1 is the value of Y when A = 1.

Table 16-172. Interpretation of 16 LSB of the INIT String for ARI1
ADCBY
0000INIT[0]F0
0001INIT[1]
0010INIT[2]
0011INIT[3]
0100INIT[4]
0101INIT[5]
0110INIT[6]
0111INIT[7]
1000INIT[8]F1
1001INIT[9]
1010INIT[10]
1011INIT[11]
1100INIT[12]
1101INIT[13]
1110INIT[14]
1111INIT[15]
Table 16-173. ARI1 Truth Table for S
YFCIS
000
011
101
110

ARI1 LOGIC

The 4 MSB of the INIT string controls the output of the carry bits. The carry is generated using carry propagation and generation bits, which are evaluated according to the following tables.

Table 16-174. ARI1 INIT[17:16] String Interpretation
INIT[17]INIT[16]G
000
01F0
101
11F1
Table 16-175. ARI1 INIT[19:18] String Interpretation
INIT[19]INIT[18]P
000
01Y
1X1
Table 16-176. FCO Truth Table
PGFCIFCO
0GXG
1XFCIFCI

16.2.1.5 ARI1_CC

The ARI1_CC macro is responsible for representing all arithmetic operations in the post-layout phase. It performs all the functions of the ARI1 maco except that it does not generate the Final Carry Out (FCO).

Note: FC1 and FC0 do not perform any functions.
Figure 16-77. ARI1_CC
Table 16-177. ARI1_CC I/O
InputOutput
A, B, C, D,CCY, S, P, UB

The ARI1_CC cell has a 20-bit INIT string parameter that is used to configure its functionality. The interpretation of 
the 16 LSB of the INIT string is shown in the following table. F0 is the value of Y when A = 0 and F1 is the value of Y 
when A = 1.

Table 16-178. INTERPRETATION OF 16 LSB OF THE INIT STRING FOR ARI1_CC
ADCBY
0000INIT[0]F0
0001INIT[1]
0010INIT[2]
0011INIT[3]
0100INIT[4]
0101INIT[5]
0110INIT[6]
0111INIT[7]
1000INIT[8]F1
1001INIT[9]
1010INIT[10]
1011INIT[11]
1100INIT[12]
1101INIT[13]
1110INIT[14]
1111INIT[15]

The 4 MSB of the INIT string controls the output of the carry bits. The carry is generated using carry propagation and generation bits, which are evaluated according to the following tables.

Table 16-179. ARI1_CC INIT[17:16] STRING INTERPRETATION
INIT[17]INIT[16]UB
001
01!F0
100
11!F1
Table 16-180. ARI1_CC INIT[19:18] STRING INTERPRETATION
INIT[19]INIT[18]P
000
01Y
1X1

The equation of S is given by:

S = Y^CC

16.2.1.6 BUFD

Buffer.
Note: The compile optimization does not remove this macro.
Figure 16-78 16-79. BUFD
Table 16-181 16-183. BUFD I/O
InputOutput
AY
Table 16-182 16-184. BUFD Truth Table
AY
00
11

16.2.1.7 BUFF

Buffer.
Figure 16-78 16-79. BUFF
Table 16-181 16-183. BUFF I/O
InputOutput
AY
Table 16-182 16-184. BUFF Truth Table
AY
00
11

16.2.1.8 CFG1/2/3/4 and Look-Up Tables (LUTs)

CFG1, CFG2, CFG3, and CFG4 are post-layout LUTs that implement any 1-input, 2-input, 3-input, and 4-input combinational logic functions respectively. Each of the CFG1/2/3/4 macros has an INIT string parameter that determines the logic functions of the macro. The output Y is dependent on the INIT string parameter and the values of the inputs.

16.2.1.9 CFG2

Post-layout macro implements any 2-input combinational logic function. Output Y is dependent on the INIT string parameter and the value of A and B. The INIT string parameter is 4 bits wide.
Figure 16-80. CFG2
Table 16-185. CFG2 I/O
InputOutput
A,BY = f (INIT, A, B)
Table 16-186. CFG2 INIT String Interpretation
BAY
00INIT[0]
01INIT[1]
10INIT[2]
11INIT[3]

16.2.1.10 CFG3

Post-layout macro used to implement any 3-input combinational logic function. Output Y is dependent on the INIT string parameter and the value of A, B, and C. The INIT string parameter is 8 bits wide.
Figure 16-81. CFG3
Table 16-187. CFG3 I/O
InputOutput
A, B, CY = f (INIT, A,B, C)
Table 16-188. CFG3 INIT String Interpretation
CBAY
000INIT[0]
001INIT[1]
010INIT[2]
011INIT[3]
100INIT[4]
101INIT[5]
110INIT[6]
111INIT[7]

16.2.1.11 CFG4

Post-layout macro used to implement any 4-input combinational logic function. Output Y is dependent on the INIT string parameter and the value of A, B, C, and D. The INIT string parameter is 16 bits wide.
Figure 16-82. CFG4
Table 16-189. CFG4 I/O
InputOutput
A, B, C, DY = f (INIT, A,B, C, D)
Table 16-190. CFG4 Truth Table
DCBAY
0000INIT[0]
0001INIT[1]
0010INIT[2]
0011INIT[3]
0100INIT[4]
0101INIT[5]
0110INIT[6]
0111INIT[7]
1000INIT[8]
1001INIT[9]
1010INIT[10]
1011INIT[11]
1100INIT[12]
1101INIT[13]
1110INIT[14]
1111INIT[15]

16.2.1.12 INV

Inverter.
Figure 16-83. INV
Table 16-191. INV I/O
InputOutput
AY
Table 16-192. INV Truth Table
AY
01
10

16.2.1.13 INVD

Inverter.
Note: Compile optimization does not remove this macro.
Figure 16-84. INVD
Table 16-193. INVD I/O
InputOutput
AY
Table 16-194. INVD Truth Table
AY
01
10

16.2.1.14 MX2

2 to 1 Multiplexer.
Figure 16-85. MX2
Table 16-195. MX2 I/O
InputOutput
A, B, SY
Table 16-196. MX2 Truth Table
ABSY
AX0A
XB1B

16.2.1.15 MX4

4 to 1 Multiplexer.

This macro uses two logic modules.
Figure 16-86. MX4
Table 16-197. MX4 I/O
InputOutput
D0, D1, D2, D3, S0, S1Y
Table 16-198. MX4 Truth Table
D3D2D1D0S1S0Y
XXXD000D0
XXD1X01D1
XD2XX10D2
D3XXX11D3

16.2.1.16 NAND2

2-Input NAND.
Figure 16-87. NAND2
Table 16-199. NAND2 I/O
InputOutput
A, BY
Table 16-200. NAND2 Truth Table
ABY
X01
0X1
110

16.2.1.17 NAND3

3-Input NAND.
Figure 16-88. NAND3
Table 16-201. NAND3 I/O
InputOutput
A, B, CY
Table 16-202. NAND3 Truth Table
ABCY
XX01
X0X1
0XX1
1110

16.2.1.18 NAND4

4-input NAND.
Figure 16-89. NAND4
Table 16-203. NAND4 I/O
InputOutput
A, B, C, DY
Table 16-204. NAND4 Truth Table
ABCDY
XXX01
XX0X1
X0XX1
0XXX1
11110

16.2.1.19 NOR2

2-input NOR.
Figure 16-90. NOR2
Table 16-205. NOR2 I/O
InputOutput
A, BY
Table 16-206. NOR2 Truth Table
ABY
001
X10
1X0

16.2.1.20 NOR3

3-input NOR.
Figure 16-91. NOR3
Table 16-207. NOR3 I/O
InputOutput
A, B, CY
Table 16-208. NOR3 Truth Table
ABCY
0001
XX10
X1X0
1XX0

16.2.1.21 NOR4

4-input NOR.
Figure 16-92. NOR3
Table 16-209. NOR4 I/O
InputOutput
A, B, C, DY
Table 16-210. NOR4 Truth Table
ABCDY
00001
1XXX0
X1XX0
XX1X0
XXX10

16.2.1.22 OR2

2-input OR.
Figure 16-93. OR2
Table 16-211. OR2 I/O
InputOutput
A, BY
Table 16-212. OR2 Truth Table
ABY
000
X11
1X1

16.2.1.23 OR3

3-input OR.
Figure 16-94. OR3
Table 16-213. OR3 I/O
InputOutput
A, B, CY
Table 16-214. OR3 Truth Table
ABCY
0000
XX11
X1X1
1XX1

16.2.1.24 OR4

4-input OR.
Figure 16-95. OR4
Table 16-215. OR4 I/O
InputOutput
A, B, C, DY
Table 16-216. OR4 Truth Table
ABCDY
00000
1XXX1
X1XX1
XX1X1
XXX11

16.2.1.25 XOR2

2-input XOR.
Figure 16-96. XOR2
Table 16-217. XOR2 I/O
InputOutput
A, BY
Table 16-218. XOR2 Truth Table
ABY
000
011
101
110

16.2.1.26 XOR3

3-input XOR.
Figure 16-97. XOR3
Table 16-219. XOR3 I/O
InputOutput
A, B, CY
Table 16-220. XOR3 Truth Table
ABCY
0000
1001
0101
1100
0011
1010
0110
1111

16.2.1.27 XOR4

4-input XOR.
Figure 16-98. XOR4
Table 16-221. XOR4 I/O
InputOutput
A, B, C, DY
Table 16-222. XOR4 Truth Table
ABCDY
00000
00011
00101
00110
01001
01010
01100
01111
10001
10010
10100
10111
11000
11011
11101
11110

16.2.1.28 XOR8

8-input XOR.

This macro uses two logic modules.
Figure 16-99. XOR8
Table 16-223. XOR8 I/O
InputOutput
A, B, C, D, E, F, G, HY

If you have an odd number of inputs that are High, the output is High (1).

If you have an even number of inputs that are High, the output is Low (0).

For example:

Table 16-224. XOR8 Truth Table
ABCDEFGHY
000000000
000000011
000000110

16.2.1.29 LIVE_PROBE_FB

This is a special-purpose macro that feeds the live probe signals back to the fabric. You can connect the PROBE_A/PROBE_B signals to any unused I/O during design generation. This is useful if PROBE_A/PROBE_B cannot be brought out for debugging due to board limitations. PROBE_A and PROBE_B pins must be reserved, if LIVE_PROBE_FB macro is used. This macro is not supported in simulation.

Figure 16-100. LIVE_PROBE_FB