Spartan-3 FPGA Family: Functional Description
DS099 (v3.1) June 27, 2013
Product Specification
22
Elements Within a Slice
All four slices have the following elements in common: two logic function generators, two storage elements, wide-function
multiplexers, carry logic, and arithmetic gates, as shown in
Figure 12, page 24. Both the left-hand and right-hand slice pairs
use these elements to provide logic, arithmetic, and ROM functions. Besides these, the left-hand pair supports two
additional functions: storing data using Distributed RAM and shifting data with 16-bit registers.
Figure 12 is a diagram of the
left-hand slice; therefore, it represents a superset of the elements and connections to be found in all slices. See
FunctionThe RAM-based function generator—also known as a Look-Up Table or LUT—is the main resource for implementing logic
functions. Furthermore, the LUTs in each left-hand slice pair can be configured as Distributed RAM or a 16-bit shift register.
For information on the former, refer to the chapter entitled “Using Look-Up Tables as Distributed RAM” in
UG331; for
information on the latter, refer to the chapter entitled “Using Look-Up Tables as Shift Registers” in
UG331. The function
generators located in the upper and lower portions of the slice are referred to as the "G" and "F", respectively.
The storage element, which is programmable as either a D-type flip-flop or a level-sensitive latch, provides a means for
synchronizing data to a clock signal, among other uses. The storage elements in the upper and lower portions of the slice
are called FFY and FFX, respectively.
Wide-function multiplexers effectively combine LUTs in order to permit more complex logic operations. Each slice has two of
these multiplexers with F5MUX in the lower portion of the slice and FiMUX in the upper portion. Depending on the slice,
FiMUX takes on the name F6MUX, F7MUX, or F8MUX. For more details on the multiplexers, refer to the chapter entitled
“Using Dedicated Multiplexers” in
UG331.The carry chain, together with various dedicated arithmetic logic gates, support fast and efficient implementations of math
operations. The carry chain enters the slice as CIN and exits as COUT. Five multiplexers control the chain: CYINIT, CY0F,
and CYMUXF in the lower portion as well as CY0G and CYMUXG in the upper portion. The dedicated arithmetic logic
includes the exclusive-OR gates XORG and XORF (upper and lower portions of the slice, respectively) as well as the AND
gates GAND and FAND (upper and lower portions, respectively). For more details on the carry logic, refer to the chapter
entitled “Using Carry and Arithmetic Logic” in
UG331.Main Logic Paths
Central to the operation of each slice are two nearly identical data paths, distinguished using the terms top and bottom. The
description that follows uses names associated with the bottom path. (The top path names appear in parentheses.) The
basic path originates at an interconnect-switch matrix outside the CLB. Four lines, F1 through F4 (or G1 through G4 on the
X-Ref Target - Figure 11
Figure 11: Arrangement of Slices within the CLB
DS099-2_05_082104
Interconnect
to Neighbors
Left-Hand SLICEM
(Logic or Distributed RAM
or Shift Register)
Right-Hand SLICEL
(Logic Only)
CIN
SLICE
X0Y1
SLICE
X0Y0
Switch
Matrix
COUT
CLB
COUT
SHIFTOUT
SHIFTIN
CIN
SLICE
X1Y1
SLICE
X1Y0