R
XC5200 Series Field Programmable Gate Arrays
carry out
CO
carry3
CO
A3
or
B3
DO
DO
DI
DI
Q
Q
D
D
FD
FD
CY_MUX
F4
F4
F3
F2
F1
F3
F2
F1
A3 and B3
to any two
XOR
XOR
half sum3
carry2
sum3
sum2
sum1
X
X
LC3
DO
LC3
A2
or
B2
DO
DI
DI
D
Q
D
Q
CY_MUX
FD
FD
F4
F3
F2
F1
F4
F3
F2
F1
A2 and B2
to any two
XOR
XOR
half sum2
carry1
X
X
LC2
DO
LC2
A1
or
B1
DI
DO
DI
D
Q
D
Q
FD
FD
F4
F3
F2
F1
CY_MUX
F4
F3
F2
F1
A1 and B1
to any two
XOR
XOR
half sum1
carry0
X
X
LC1
DO
LC1
DO
A0
or
DI
DI
D
Q
B0
Q
D
FD
CY_MUX
FD
F4
F3
F2
F1
F4
F3
F2
F1
A0 and B0
to any two
XOR
XOR
half sum0
sum0
X
X
CI
LC0
CE CK
CLR
CK
CI
CE
CLR LC0
carry in
0
CY_MUX
Initialization of
carry chain (One Logic Cell)
F=0
X5709
Figure 6: XC5200 CY_MUX Used for Adder Carry Propagate
which also generates the half-sum for the four-bit adder. An
adjacent CLB is responsible for XORing the half-sum with
the corresponding carry-out. Thus an adder or counter
requires two LCs per bit. Notice that the carry chain
requires an initialization stage, which the XC5200 family
accomplishes using the carry initialize (CY_INIT) macro
and one additional LC. The carry chain can propagate ver-
tically up a column of CLBs.
Carry Function
The XC5200 family supports a carry-logic feature that
enhances the performance of arithmetic functions such as
counters, adders, etc. A carry multiplexer (CY_MUX) sym-
bol is used to indicate the XC5200 carry logic. This symbol
represents the dedicated 2:1 multiplexer in each LC that
performs the one-bit high-speed carry propagate per logic
cell (four bits per CLB).
The XC5200 library contains a set of Relationally-Placed
Macros (RPMs) and arithmetic functions designed to take
advantage of the dedicated carry logic. Using and modify-
ing these macros makes it much easier to implement cus-
While the carry propagate is performed inside the LC, an
adjacent LC must be used to complete the arithmetic func-
tion. Figure 6 represents an example of an adder function.
The carry propagate is performed on the CLB shown,
7-88
November 5, 1998 (Version 5.2)