Alt er a Cor pora t ion 1
FLEX 10K
Embedded Programmable
Logic Device Family
Jan uary 2003, ve r. 4.2 Data Sheet
DS-F10K-4.2
®
Includes
FLEX 10KA
Features... The industry’s first embedded programmable logic device (PLD)
family, providing System-on-a-Programmable-Chip (SOPC)
integration
Embedded array for implementing megafunctions, such as
efficient memory and specialized logic functions
Logic array for general logic functions
High density
10,000 to 250,000 typical gates (see Tables 1 and 2)
Up to 40,960 RAM bits; 2,048 bits per embedded array block
(EAB), all of which can be used without reducing logic capacity
System-level features
MultiVoltTM I/O interface support
5.0-V tolerant input pins in FLEX® 10KA devices
Low power consumption (typical specification less than 0.5 mA
in standby mode for most devices)
FLEX 10K and FLEX 10KA devices support peripheral
component interconnect Special Interest Group (PCI SIG) PCI
Local Bus Specification, Revision 2.2
FLEX 10KA devices include pull-up clamping diode, selectable
on a pin-by-pin basis for 3.3-V PCI compliance
Select FLEX 10KA devices support 5.0-V PCI buses with eight or
fewer loads
Built-in Joint Test Action Group (JTAG) boundary-scan test
(BST) circuitry compliant with IEEE Std. 1149.1-1990, available
without consuming any device logic
Table 1. FLEX 10K Device Features
Feature EPF10K10
EPF10K10A
EPF10K20 EPF10K30
EPF10K30A
EPF10K40 EPF10K50
EPF10K50V
Typical gates (logic and RAM) (1) 10,000 20,000 30,000 40,000 50,000
Maximum s yst em gat es 31,00 0 63,000 69,000 93, 000 116,000
Logic elements (LEs) 576 1,1 52 1,72 8 2,304 2,880
Logic array blocks (LABs) 72 144 216 288 360
Embedd ed array blocks (EABs) 3 6 6 8 10
Total RAM bit s 6,144 12,288 12,288 16, 384 20,4 80
Maximum us er I /O pins 150 189 246 189 310
2Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Note to tables:
(1) The embedded IEEE Std. 1149.1 JTAG circuitry adds up to 31,250 gates in addition to the listed typical or maximum
system gates.
...and More
Features
Devices are fabricated on advanced processes and operate with
a 3.3-V or 5.0-V supply voltage (see Table 3
In-circuit reconfigurability (ICR) via external configuration
device, intelligent controller, or JTAG port
ClockLockTM and ClockBoostTM options for reduced clock
delay/skew and clock multiplication
Built-in low-skew clock distribution trees
–100% functional testing of all devices; test vectors or scan chains
are not required
Table 2. FLEX 10K Device Features
Feature EPF10K70 EPF10K100
EPF10K100A
EPF10K130V EPF10K250A
Typical gates (logic and
RAM) (1) 70,000 100,000 130,000 250,000
Maximu m system gates 118,000 158,000 211,000 310,000
LEs 3,744 4,992 6,656 12,160
LABs 468 624 832 1,520
EABs 9 12 16 20
Total RA M bits 18, 432 24, 576 32, 768 40,960
Maximum user I/O pins 358 406 470 470
Table 3. Supply Voltages for FLEX 10K & FLEX 10KA Devices
5.0-V Devices 3.3-V Devices
EPF10K10
EPF10K20
EPF10K30
EPF10K40
EPF10K50
EPF10K70
EPF10K100
EPF10K10A
EPF10K30A
EPF10K50V
EPF10K100A
EPF10K130V
EPF10K250A
Altera Corporation 3
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Flexible interconnect
–FastTrack
® Interconnect continuous routing structure for fast,
predictable interconnect delays
Dedicated carry chain that implements arithmetic functions such
as fast adders, counters, and comparators (automatically used by
software tools and megafunctions)
Dedicated cascade chain that implements high-speed,
high-fan-in logic functions (automatically used by software tools
and megafunctions)
Tri-state emulation that implements internal tri-state buses
Up to six global clock signals and four global clear signals
Powerful I/O pins
Individual tri-state output enable control for each pin
Open-drain option on each I/O pin
Programmable output slew-rate control to reduce switching
noise
FLEX 10KA devices support hot-socketing
Peripheral register for fast setup and clock-to-output delay
Flexible package options
Available in a variety of packages with 84 to 600 pins (see
Tables 4 and 5)
Pin-compatibility with other FLEX 10K devices in the same
package
FineLine BGATM packages maximize board space efficiency
Software design support and automatic place-and-route provided by
Altera development systems for Windows-based PCs and Sun
SPARCstation, HP 9000 Series 700/800 workstations
Additional design entry and simulation support provided by EDIF
2 0 0 and 3 0 0 netlist files, library of parameterized modules (LPM),
DesignWare components, Verilog HDL, VHDL, and other interfaces
to popular EDA tools from manufacturers such as Cadence,
Exemplar Logic, Mentor Graphics, OrCAD, Synopsys, Synplicity,
VeriBest, and Viewlogic
4Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Table 4. FLEX 10K Package Options & I/O Pin Count Note (1)
Device 84-Pin
PLCC
100-Pin
TQFP
144-Pin TQFP 208-Pin
PQFP
RQFP
240-Pin
PQFP
RQFP
EPF10K10 59 102 134
EPF10K10A 66 102 134
EPF10K20 102 147 189
EPF10K30 147 189
EPF10K30A 102 147 189
EPF10K40 147 189
EPF10K50 189
EPF10K50V 189
EPF10K70 189
EPF10K100
EPF10K100A 189
EPF10K130V
EPF10K250A
Table 5. FLEX 10K Package Options & I/O Pin Count (Continued) Note (1)
Device 503-Pin
PGA
599-Pin
PGA
256-Pin
FineLine BGA
356-Pin
BGA
484-Pin
FineLine BGA
600-Pin
BGA
403-Pin
PGA
EPF10K10
EPF10K10A 150 150 (2)
EPF10K20
EPF10K30 246
EPF10K30A 191 246 246
EPF10K40
EPF10K50 274 310
EPF10K50V 274
EPF10K70 358
EPF10K100 406
EPF10K100A 274 369 406
EPF10K130V 470 470
EPF10K250A 470 470
Altera Corporation 5
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Notes to tables:
(1) FLEX 10K and FLEX 10KA device package types include plastic J-lead chip carrier (PLCC), thin quad flat pack
(TQFP), plastic quad flat pack (PQFP), power quad flat pack (RQFP), ball-grid array (BGA), pin-grid array (PGA),
and FineLine BGATM packages.
(2) This option is supported with a 256-pin FineLine BGA package. By using SameFrame pin migration, all FineLine
BGA packages are pin compatible. For example, a board can be designed to support both 256-pin and 484-pin
FineLine BGA packages. The Altera software automatically avoids conflicting pins when future migration is set.
General
Description
Altera’s FLEX 10K devices are the industry’s first embedded PLDs. Based
on reconfigurable CMOS SRAM elements, the Flexible Logic Element
MatriX (FLEX) architecture incorporates all features necessary to
implement common gate array megafunctions. With up to 250,000 gates,
the FLEX 10K family provides the density, speed, and features to integrate
entire systems, including multiple 32-bit buses, into a single device.
FLEX 10K devices are reconfigurable, which allows 100% testing prior to
shipment. As a result, the designer is not required to generate test vectors
for fault coverage purposes. Additionally, the designer does not need to
manage inventories of different ASIC designs; FLEX 10K devices can be
configured on the board for the specific functionality required.
Table 6 shows FLEX 10K performance for some common designs. All
performance values were obtained with Synopsys DesignWare or LPM
functions. No special design technique was required to implement the
applications; the designer simply inferred or instantiated a function in a
Verilog HDL, VHDL, Altera Hardware Description Language (AHDL), or
schematic design file.
Notes:
(1) The speed grade of this application is limited because of clock high and low specifications.
(2) This application uses combinatorial inputs and outputs.
(3) This application uses registered inputs and outputs.
Table 6. FLEX 10K & FLEX 10KA Performance
Application Resources
Used
Performance Units
LEs EABs -1 Speed
Grade
-2 Speed
Grade
-3 Speed
Grade
-4 Speed
Grade
16-bit loadable
counter (1) 16 0 204 166 125 95 MHz
16-bit accumulator (1) 16 0 204 166 125 95 MHz
16-to-1 multiplexer (2) 10 0 4.2 5.8 6.0 7.0 ns
256 × 8 RAM read
cycle speed (3) 0 1 172 145 108 84 MHz
256 × 8 RAM write
cycle speed (3) 01 106 89 68 63 MHz
6Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
The FLEX 10K architecture is similar to that of embedded gate arrays, the
fastest-growing segment of the gate array market. As with standard gate
arrays, embedded gate arrays implement general logic in a conventional
“sea-of-gates” architecture. In addition, embedded gate arrays have
dedicated die areas for implementing large, specialized functions. By
embedding functions in silicon, embedded gate arrays provide reduced
die area and increased speed compared to standard gate arrays. However,
embedded megafunctions typically cannot be customized, limiting the
designer’s options. In contrast, FLEX 10K devices are programmable,
providing the designer with full control over embedded megafunctions
and general logic while facilitating iterative design changes during
debugging.
Each FLEX 10K device contains an embedded array and a logic array. The
embedded array is used to implement a variety of memory functions or
complex logic functions, such as digital signal processing (DSP),
microcontroller, wide-data-path manipulation, and data-transformation
functions. The logic array performs the same function as the sea-of-gates
in the gate array: it is used to implement general logic, such as counters,
adders, state machines, and multiplexers. The combination of embedded
and logic arrays provides the high performance and high density of
embedded gate arrays, enabling designers to implement an entire system
on a single device.
FLEX 10K devices are configured at system power-up with data stored in
an Altera serial configuration device or provided by a system controller.
Altera offers the EPC1, EPC2, EPC16, and EPC1441 configuration devices,
which configure FLEX 10K devices via a serial data stream. Configuration
data can also be downloaded from system RAM or from Altera’s
BitBlasterTM serial download cable or ByteBlasterMVTM parallel port
download cable. After a FLEX 10K device has been configured, it can be
reconfigured in-circuit by resetting the device and loading new data.
Because reconfiguration requires less than 320 ms, real-time changes can
be made during system operation.
FLEX 10K devices contain an optimized interface that permits
microprocessors to configure FLEX 10K devices serially or in parallel, and
synchronously or asynchronously. The interface also enables
microprocessors to treat a FLEX 10K device as memory and configure the
device by writing to a virtual memory location, making it very easy for the
designer to reconfigure the device.
Altera Corporation 7
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
fFor more information, see the following documents:
Configuration Devices for APEX & FLEX Devices Data Sheet
BitBlaster Serial Download Cable Data Sheet
ByteBlasterMV Parallel Port Download Cable Data Sheet
Application Note 116 (Configuring APEX 20K, FLEX 10K & FLEX 6000
Devices)
FLEX 10K devices are supported by Altera development systems; single,
integrated packages that offer schematic, text (including AHDL), and
waveform design entry, compilation and logic synthesis, full simulation
and worst-case timing analysis, and device configuration. The Altera
software provides EDIF 2 0 0 and 3 0 0, LPM, VHDL, Verilog HDL, and
other interfaces for additional design entry and simulation support from
other industry-standard PC- and UNIX workstation-based EDA tools.
The Altera software works easily with common gate array EDA tools for
synthesis and simulation. For example, the Altera software can generate
Verilog HDL files for simulation with tools such as Cadence Verilog-XL.
Additionally, the Altera software contains EDA libraries that use device-
specific features such as carry chains which are used for fast counter and
arithmetic functions. For instance, the Synopsys Design Compiler library
supplied with the Altera development systems include DesignWare
functions that are optimized for the FLEX 10K architecture.
The Altera development systems run on Windows-based PCs and Sun
SPARCstation, and HP 9000 Series 700/800 workstations.
fSee the MAX+PLUS II Programmable Logic Development System & Software
Data Sheet for more information.
Functional
Description
Each FLEX 10K device contains an embedded array to implement
memory and specialized logic functions, and a logic array to implement
general logic.
The embedded array consists of a series of EABs. When implementing
memory functions, each EAB provides 2,048 bits, which can be used to
create RAM, ROM, dual-port RAM, or first-in first-out (FIFO) functions.
When implementing logic, each EAB can contribute 100 to 600 gates
towards complex logic functions, such as multipliers, microcontrollers,
state machines, and DSP functions. EABs can be used independently, or
multiple EABs can be combined to implement larger functions.
8Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
The logic array consists of logic array blocks (LABs). Each LAB contains
eight LEs and a local interconnect. An LE consists of a 4-input look-up
table (LUT), a programmable flipflop, and dedicated signal paths for carry
and cascade functions. The eight LEs can be used to create medium-sized
blocks of logic—8-bit counters, address decoders, or state machines—or
combined across LABs to create larger logic blocks. Each LAB represents
about 96 usable gates of logic.
Signal interconnections within FLEX 10K devices and to and from device
pins are provided by the FastTrack Interconnect, a series of fast,
continuous row and column channels that run the entire length and width
of the device.
Each I/O pin is fed by an I/O element (IOE) located at the end of each row
and column of the FastTrack Interconnect. Each IOE contains a
bidirectional I/O buffer and a flipflop that can be used as either an output
or input register to feed input, output, or bidirectional signals. When used
with a dedicated clock pin, these registers provide exceptional
performance. As inputs, they provide setup times as low as 1.6 ns and
hold times of 0 ns; as outputs, these registers provide clock-to-output
times as low as 5.3 ns. IOEs provide a variety of features, such as JTAG
BST support, slew-rate control, tri-state buffers, and open-drain outputs.
Figure 1 shows a block diagram of the FLEX 10K architecture. Each group
of LEs is combined into an LAB; LABs are arranged into rows and
columns. Each row also contains a single EAB. The LABs and EABs are
interconnected by the FastTrack Interconnect. IOEs are located at the end
of each row and column of the FastTrack Interconnect.
Altera Corporation 9
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 1. FLEX 10K Device Block Diagram
FLEX 10K devices provide six dedicated inputs that drive the flipflops’
control inputs to ensure the efficient distribution of high-speed, low-skew
(less than 1.5 ns) control signals. These signals use dedicated routing
channels that provide shorter delays and lower skews than the FastTrack
Interconnect. Four of the dedicated inputs drive four global signals. These
four global signals can also be driven by internal logic, providing an ideal
solution for a clock divider or an internally generated asynchronous clear
signal that clears many registers in the device.
Embedded Array Block
The EAB is a flexible block of RAM with registers on the input and output
ports, and is used to implement common gate array megafunctions. The
EAB is also suitable for functions such as multipliers, vector scalars, and
error correction circuits, because it is large and flexible. These functions
can be combined in applications such as digital filters and
microcontrollers.
I/O Element
(IOE)
Logic Array
Block (LAB)
Row
Interconnect
IOEIOE
IOEIOE
IOE
IOE
IOE
Local Interconnect
IOEIOE
IOEIOE IOEIOE
IOEIOE
IOEIOE
Logic Element (LE)
Column
Interconnect
IOE
EAB
EAB
Logic
Array
IOEIOE
IOEIOE IOEIOE
Embedded Array Block (EAB)
Embedded Array
IOE
IOE
Logic Array
IOE
IOE
10 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Logic functions are implemented by programming the EAB with a read-
only pattern during configuration, creating a large LUT. With LUTs,
combinatorial functions are implemented by looking up the results, rather
than by computing them. This implementation of combinatorial functions
can be faster than using algorithms implemented in general logic, a
performance advantage that is further enhanced by the fast access times
of EABs. The large capacity of EABs enables designers to implement
complex functions in one logic level without the routing delays associated
with linked LEs or field-programmable gate array (FPGA) RAM blocks.
For example, a single EAB can implement a 4 × 4 multiplier with eight
inputs and eight outputs. Parameterized functions such as LPM functions
can automatically take advantage of the EAB.
The EAB provides advantages over FPGAs, which implement on-board
RAM as arrays of small, distributed RAM blocks. These FPGA RAM
blocks contain delays that are less predictable as the size of the RAM
increases. In addition, FPGA RAM blocks are prone to routing problems
because small blocks of RAM must be connected together to make larger
blocks. In contrast, EABs can be used to implement large, dedicated blocks
of RAM that eliminate these timing and routing concerns.
EABs can be used to implement synchronous RAM, which is easier to use
than asynchronous RAM. A circuit using asynchronous RAM must
generate the RAM write enable (WE) signal, while ensuring that its data
and address signals meet setup and hold time specifications relative to the
WE signal. In contrast, the EAB’s synchronous RAM generates its own WE
signal and is self-timed with respect to the global clock. A circuit using the
EAB’s self-timed RAM need only meet the setup and hold time
specifications of the global clock.
When used as RAM, each EAB can be configured in any of the following
sizes: 256 ×8, 512 ×4, 1,024 ×2, or 2,048 ×1. See Figure 2.
Figure 2. EAB Memory Configurations
256 × 8 512 × 4 1,024 × 2 2,048 × 1
Altera Corporation 11
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Larger blocks of RAM are created by combining multiple EABs. For
example, two 256 × 8 RAM blocks can be combined to form a
256 ×16 RAM block; two 512 ×4 blocks of RAM can be combined to form
a 512 ×8RAM block. See Figure 3.
Figure 3. Examples of Combining EABs
If necessary, all EABs in a device can be cascaded to form a single RAM
block. EABs can be cascaded to form RAM blocks of up to 2,048 words
without impacting timing. Altera’s software automatically combines
EABs to meet a designer’s RAM specifications.
EABs provide flexible options for driving and controlling clock signals.
Different clocks can be used for the EAB inputs and outputs. Registers can
be independently inserted on the data input, EAB output, or the address
and WE inputs. The global signals and the EAB local interconnect can drive
the WE signal. The global signals, dedicated clock pins, and EAB local
interconnect can drive the EAB clock signals. Because the LEs drive the
EAB local interconnect, the LEs can control the WE signal or the EAB clock
signals.
Each EAB is fed by a row interconnect and can drive out to row and
column interconnects. Each EAB output can drive up to two row channels
and up to two column channels; the unused row channel can be driven by
other LEs. This feature increases the routing resources available for EAB
outputs. See Figure 4.
512 × 4
512 × 4
256 × 8
256 × 8
256 × 16 512 × 8
12 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 4. FLEX 10K Embedded Array Block
Note:
(1) EPF10K10, EPF10K10A, EPF10K20, EPF10K30, EPF10K30A, EPF10K40, EPF10K50, and EPF10K50V devices have
22 EAB local interconnect channels; EPF10K70, EPF10K100, EPF10K100A, EPF10K130V, and EPF10K250A devices
have 26.
D
DQ
Column
Interconnect
Row Interconnect
RAM/ROM
256 × 8
512 × 4
1,024 × 2
2,048 × 1
WE
Address
Data
In
8, 4, 2, 1
EAB Local Interconnect (1)
Dedicated Inputs &
Global Signals
(1)
6
DQ
DQ
DQ
Data
Out 24
Chip-Wide
Reset
8, 9, 10, 11
2, 4, 8, 16
2, 4, 8, 16
Altera Corporation 13
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Logic Array Block
Each LAB consists of eight LEs, their associated carry and cascade chains,
LAB control signals, and the LAB local interconnect. The LAB provides
the coarse-grained structure to the FLEX 10K architecture, facilitating
efficient routing with optimum device utilization and high performance.
See Figure 5.
Figure 5. FLEX 10K LAB
Notes:
(1) EPF10K10, EPF10K10A, EPF10K20, EPF10K30, EPF10K30A, EPF10K40, EPF10K50, and EPF10K50V devices have
22 inputs to the LAB local interconnect channel from the row; EPF10K70, EPF10K100, EPF10K100A, EPF10K130V,
and EPF10K250A devices have 26.
(2) EPF10K10, EPF10K10A, EPF10K20, EPF10K30, EPF10K30A, EPF10K40, EPF10K50, and EPF10K50V devices have
30 LAB local interconnect channels; EPF10K70, EPF10K100, EPF10K100A, EPF10K130V, and EPF10K250A devices
have 34 LABs.
2
8
Carry-In &
Cascade-In
LE1
LE8
LE2
LE3
LE4
LE5
LE6
LE7
Column
Interconnect
Row Interconnect
(1)
LAB Local
Interconnect (2)
Column-to-Row
Interconnect
Carry-Out &
Cascade-Out
16
24
LAB Control
Signals
See Figure 11
for details.
6
Dedicated Inputs &
Global Signals
16
4
8
4
4
4
4
4
4
4
4
4
428
14 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Each LAB provides four control signals with programmable inversion
that can be used in all eight LEs. Two of these signals can be used as clocks;
the other two can be used for clear/preset control. The LAB clocks can be
driven by the dedicated clock input pins, global signals, I/O signals, or
internal signals via the LAB local interconnect. The LAB preset and clear
control signals can be driven by the global signals, I/O signals, or internal
signals via the LAB local interconnect. The global control signals are
typically used for global clock, clear, or preset signals because they
provide asynchronous control with very low skew across the device. If
logic is required on a control signal, it can be generated in one or more LEs
in any LAB and driven into the local interconnect of the target LAB. In
addition, the global control signals can be generated from LE outputs.
Logic Element
The LE, the smallest unit of logic in the FLEX 10K architecture, has a
compact size that provides efficient logic utilization. Each LE contains a
four-input LUT, which is a function generator that can quickly compute
any function of four variables. In addition, each LE contains a
programmable flipflop with a synchronous enable, a carry chain, and a
cascade chain. Each LE drives both the local and the FastTrack
Interconnect. See Figure 6.
Figure 6. FLEX 10K Logic Element
To LAB Local
Interconnect
Carry-In
Clock
Select
Carry-Out
Look-Up
Table
(LUT)
Clear/
Preset
Logic
Carry
Chain Cascade
Chain
Cascade-In
Cascade-Out
To FastTrack
Interconnect
Programmable
Register
PRN
CLRN
DQ
ENA
Register Bypass
Chip-Wide
Reset
data1
data2
data3
data4
labctrl1
labctrl2
labctrl3
labctrl4
Altera Corporation 15
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
The programmable flipflop in the LE can be configured for D, T, JK, or SR
operation. The clock, clear, and preset control signals on the flipflop can
be driven by global signals, general-purpose I/O pins, or any internal
logic. For combinatorial functions, the flipflop is bypassed and the output
of the LUT drives the output of the LE.
The LE has two outputs that drive the interconnect; one drives the local
interconnect and the other drives either the row or column FastTrack
Interconnect. The two outputs can be controlled independently. For
example, the LUT can drive one output while the register drives the other
output. This feature, called register packing, can improve LE utilization
because the register and the LUT can be used for unrelated functions.
The FLEX 10K architecture provides two types of dedicated high-speed
data paths that connect adjacent LEs without using local interconnect
paths: carry chains and cascade chains. The carry chain supports high-
speed counters and adders; the cascade chain implements wide-input
functions with minimum delay. Carry and cascade chains connect all LEs
in an LAB and all LABs in the same row. Intensive use of carry and
cascade chains can reduce routing flexibility. Therefore, the use of these
chains should be limited to speed-critical portions of a design.
Carry Chain
The carry chain provides a very fast (as low as 0.2 ns) carry-forward
function between LEs. The carry-in signal from a lower-order bit drives
forward into the higher-order bit via the carry chain, and feeds into both
the LUT and the next portion of the carry chain. This feature allows the
FLEX 10K architecture to implement high-speed counters, adders, and
comparators of arbitrary width efficiently. Carry chain logic can be
created automatically by the Compiler during design processing, or
manually by the designer during design entry. Parameterized functions
such as LPM and DesignWare functions automatically take advantage of
carry chains.
Carry chains longer than eight LEs are automatically implemented by
linking LABs together. For enhanced fitting, a long carry chain skips
alternate LABs in a row. A carry chain longer than one LAB skips either
from even-numbered LAB to even-numbered LAB, or from odd-
numbered LAB to odd-numbered LAB. For example, the last LE of the
first LAB in a row carries to the first LE of the third LAB in the row. The
carry chain does not cross the EAB at the middle of the row. For instance,
in the EPF10K50 device, the carry chain stops at the eighteenth LAB and a
new one begins at the nineteenth LAB.
16 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 7 shows how an n-bit full adder can be implemented in n+1 LEs
with the carry chain. One portion of the LUT generates the sum of two bits
using the input signals and the carry-in signal; the sum is routed to the
output of the LE. The register can either be bypassed for simple adders or
be used for an accumulator function. The carry chain logic generates the
carry-out signal, which is routed directly to the carry-in signal of the next-
higher-order bit. The final carry-out signal is routed to an LE, where it can
be used as a general-purpose signal.
Figure 7. Carry Chain Operation (n-bit Full Adder)
LUT
a1
b1
Carry Chain
s1
LE1
Register
a2
b2
Carry Chain
s2
LE2
Register
Carry Chain
sn
LEn
Register
an
bn
Carry Chain
Carry-Out
LEn + 1
Register
Carry-In
LUT
LUT
LUT
Altera Corporation 17
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Cascade Chain
With the cascade chain, the FLEX 10K architecture can implement
functions that have a very wide fan-in. Adjacent LUTs can be used to
compute portions of the function in parallel; the cascade chain serially
connects the intermediate values. The cascade chain can use a logical AND
or logical OR (via De Morgan’s inversion) to connect the outputs of
adjacent LEs. Each additional LE provides four more inputs to the
effective width of a function, with a delay as low as 0.7 ns per LE. Cascade
chain logic can be created automatically by the Compiler during design
processing, or manually by the designer during design entry.
Cascade chains longer than eight bits are implemented automatically by
linking several LABs together. For easier routing, a long cascade chain
skips every other LAB in a row. A cascade chain longer than one LAB
skips either from even-numbered LAB to even-numbered LAB, or from
odd-numbered LAB to odd-numbered LAB (e.g., the last LE of the first
LAB in a row cascades to the first LE of the third LAB). The cascade chain
does not cross the center of the row (e.g., in the EPF10K50 device, the
cascade chain stops at the eighteenth LAB and a new one begins at the
nineteenth LAB). This break is due to the EAB’s placement in the middle
of the row.
Figure 8 shows how the cascade function can connect adjacent LEs to form
functions with a wide fan-in. These examples show functions of 4n
variables implemented with n LEs. The LE delay is as low as 1.6 ns; the
cascade chain delay is as low as 0.7 ns. With the cascade chain, 3.7 ns is
needed to decode a 16-bit address.
Figure 8. Cascade Chain Operation
LE1
LUT
LE2
LUT
d[3..0]
d[7..4]
d[(4
n
-1)..(4
n
-4)]
d[3..0]
d[7..4]
d[(4
n
-1)..(4
n
-4)]
LE
n
LE1
LE2
LE
n
LUT
LUT
LUT
LUT
AND Cascade Chain OR Cascade Chain
18 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
LE Operating Modes
The FLEX 10K LE can operate in the following four modes:
Normal mode
Arithmetic mode
Up/down counter mode
Clearable counter mode
Each of these modes uses LE resources differently. In each mode, seven
available inputs to the LE—the four data inputs from the LAB local
interconnect, the feedback from the programmable register, and the
carry-in and cascade-in from the previous LE—are directed to different
destinations to implement the desired logic function. Three inputs to the
LE provide clock, clear, and preset control for the register. The Altera
software, in conjunction with parameterized functions such as LPM and
DesignWare functions, automatically chooses the appropriate mode for
common functions such as counters, adders, and multipliers. If required,
the designer can also create special-purpose functions which use a specific
LE operating mode for optimal performance.
The architecture provides a synchronous clock enable to the register in all
four modes. The Altera software can set DATA1 to enable the register
synchronously, providing easy implementation of fully synchronous
designs.
Figure 9 shows the LE operating modes.
Altera Corporation 19
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 9. FLEX 10K LE Operating Modes
Note:
(1) Packed registers cannot be used with the cascade chain.
ENA
PRN
CLRN
DQ
4-Input
LUT
Carry-In
Cascade-Out
Cascade-In
(1)
LE-Out to FastTrack
Interconnect
LE-Out to Local
Interconnect
ENA
Normal Mode
PRN
CLRN
DQ
Cascade-Out
LE-Out
Cascade-In
3-Input
LUT
Carry-In
3-Input
LUT
Carry-Out
Arithmetic Mode
Up/Down Counter Mode
data1 (ena)
data2 (u/d) PRN
CLRN
DQ
3-Input
LUT
Carry-In Cascade-In
LE-Out
3-Input
LUT
Carry-Out
data3 (data)
data4 (nload)
1
0
Cascade-Out
Clearable Counter Mode
data1 (ena)
data2 (nclr) PRN
CLRN
DQ
3-Input
LUT
Carry-In
LE-Out
3-Input
LUT
Carry-Out
data3 (data)
data4 (nload)
1
0
Cascade-Out
ENA
ENA
data1
data2
data3
data4
data1
data2
20 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Normal Mode
The normal mode is suitable for general logic applications and wide
decoding functions that can take advantage of a cascade chain. In normal
mode, four data inputs from the LAB local interconnect and the carry-in
are inputs to a four-input LUT. The Compiler automatically selects the
carry-in or the DATA3 signal as one of the inputs to the LUT. The LUT
output can be combined with the cascade-in signal to form a cascade chain
through the cascade-out signal. Either the register or the LUT can be used
to drive both the local interconnect and the FastTrack Interconnect at the
same time.
The LUT and the register in the LE can be used independently; this feature
is known as register packing. To support register packing, the LE has two
outputs; one drives the local interconnect and the other drives the
FastTrack Interconnect. The DATA4 signal can drive the register directly,
allowing the LUT to compute a function that is independent of the
registered signal; a three-input function can be computed in the LUT, and
a fourth independent signal can be registered. Alternatively, a four-input
function can be generated, and one of the inputs to this function can be
used to drive the register. The register in a packed LE can still use the clock
enable, clear, and preset signals in the LE. In a packed LE, the register can
drive the FastTrack Interconnect while the LUT drives the local
interconnect, or vice versa.
Arithmetic Mode
The arithmetic mode offers 2 three-input LUTs that are ideal for
implementing adders, accumulators, and comparators. One LUT
computes a three-input function, and the other generates a carry output.
As shown in Figure 9 on page 19, the first LUT uses the carry-in signal and
two data inputs from the LAB local interconnect to generate a
combinatorial or registered output. For example, in an adder, this output
is the sum of three signals: a, b, and carry-in. The second LUT uses the
same three signals to generate a carry-out signal, thereby creating a carry
chain. The arithmetic mode also supports simultaneous use of the cascade
chain.
Altera Corporation 21
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Up/Down Counter Mode
The up/down counter mode offers counter enable, clock enable,
synchronous up/down control, and data loading options. These control
signals are generated by the data inputs from the LAB local interconnect,
the carry-in signal, and output feedback from the programmable register.
The Up/down counter mode uses 2 three-input LUTs: one generates the
counter data, and the other generates the fast carry bit. A 2-to-1
multiplexer provides synchronous loading. Data can also be loaded
asynchronously with the clear and preset register control signals, without
using the LUT resources.
Clearable Counter Mode
The clearable counter mode is similar to the up/down counter mode, but
supports a synchronous clear instead of the up/down control. The clear
function is substituted for the cascade-in signal in the up/down counter
mode. Clearable counter mode uses 2 three-input LUTs: one generates the
counter data, and the other generates the fast carry bit. Synchronous
loading is provided by a 2-to-1 multiplexer. The output of this multiplexer
is ANDed with a synchronous clear signal.
Internal Tri-State Emulation
Internal tri-state emulation provides internal tri-stating without the
limitations of a physical tri-state bus. In a physical tri-state bus, the
tri-state buffers’ output enable (OE) signals select which signal drives the
bus. However, if multiple OE signals are active, contending signals can be
driven onto the bus. Conversely, if no OE signals are active, the bus will
float. Internal tri-state emulation resolves contending tri-state buffers to a
low value and floating buses to a high value, thereby eliminating these
problems. The Altera software automatically implements tri-state bus
functionality with a multiplexer.
Clear & Preset Logic Control
Logic for the programmable register’s clear and preset functions is
controlled by the DATA3, LABCTRL1, and LABCTRL2 inputs to the LE. The
clear and preset control structure of the LE asynchronously loads signals
into a register. Either LABCTRL1 or LABCTRL2 can control the
asynchronous clear. Alternatively, the register can be set up so that
LABCTRL1 implements an asynchronous load. The data to be loaded is
driven to DATA3; when LABCTRL1 is asserted, DATA3 is loaded into the
register.
22 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
During compilation, the Compiler automatically selects the best control
signal implementation. Because the clear and preset functions are active-
low, the Compiler automatically assigns a logic high to an unused clear or
preset.
The clear and preset logic is implemented in one of the following six
modes chosen during design entry:
Asynchronous clear
Asynchronous preset
Asynchronous clear and preset
Asynchronous load with clear
Asynchronous load with preset
Asynchronous load without clear or preset
In addition to the six clear and preset modes, FLEX 10K devices provide a
chip-wide reset pin that can reset all registers in the device. Use of this
feature is set during design entry. In any of the clear and preset modes, the
chip-wide reset overrides all other signals. Registers with asynchronous
presets may be preset when the chip-wide reset is asserted. Inversion can
be used to implement the asynchronous preset. Figure 10 shows examples
of how to enter a section of a design for the desired functionality.
Altera Corporation 23
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 10. LE Clear & Preset Modes
Asynchronous Clear
The flipflop can be cleared by either LABCTRL1 or LABCTRL2. In this
mode, the preset signal is tied to VCC to deactivate it.
Asynchronous Clear Asynchronous Preset Asynchronous Clear & Preset
Asynchronous Load without Clear or Preset
PRN
CLRN
DQ
NOT
NOT
Asynchronous Load with Clear
PRN
CLRN
DQ
NOT
NOT
Asynchronous Load with Preset
NOT
NOT
PRN
CLRN
DQ
PRN
CLRN
DQ
VCC
Chip-Wide Reset
Chip-Wide Reset
Chip-Wide Reset
Chip-Wide Reset
PRN
CLRN
DQ
PRN
CLRN
DQ
VCC
Chip-Wide Reset
Chip-Wide Reset
labctrl1 or
labctrl2
labctrl1 or
labctrl2
labctrl1
(Asynchronous
Load)
labctrl1
(Asynchronous
Load)
labctrl1
(Asynchronous
Load)
data3
(Data)
labctrl2
(Clear)
labctrl2
(Preset)
data3
(Data)
data3
(Data)
labctrl2
labctrl1
24 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Asynchronous Preset
An asynchronous preset is implemented as either an asynchronous load,
or with an asynchronous clear. If DATA3 is tied to VCC, asserting
LABCTRL1 asynchronously loads a one into the register. Alternatively, the
Altera software can provide preset control by using the clear and
inverting the input and output of the register. Inversion control is
available for the inputs to both LEs and IOEs. Therefore, if a register is
preset by only one of the two LABCTRL signals, the DATA3 input is not
needed and can be used for one of the LE operating modes.
Asynchronous Preset & Clear
When implementing asynchronous clear and preset, LABCTRL1 controls
the preset and LABCTRL2 controls the clear. DATA3 is tied to VCC,
therefore, asserting LABCTRL1 asynchronously loads a one into the
register, effectively presetting the register. Asserting LABCTRL2 clears the
register.
Asynchronous Load with Clear
When implementing an asynchronous load in conjunction with the clear,
LABCTRL1 implements the asynchronous load of DATA3 by controlling
the register preset and clear. LABCTRL2 implements the clear by
controlling the register clear; LABCTRL2 does not have to feed the preset
circuits.
Asynchronous Load with Preset
When implementing an asynchronous load in conjunction with preset, the
Altera software provides preset control by using the clear and inverting
the input and output of the register. Asserting LABCTRL2 presets the
register, while asserting LABCTRL1 loads the register. The Altera software
inverts the signal that drives DATA3 to account for the inversion of the
register’s output.
Asynchronous Load without Preset or Clear
When implementing an asynchronous load without preset or clear,
LABCTRL1 implements the asynchronous load of DATA3 by controlling
the register preset and clear.
Altera Corporation 25
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
FastTrack Interconnect
In the FLEX 10K architecture, connections between LEs and device I/O
pins are provided by the FastTrack Interconnect, which is a series of
continuous horizontal and vertical routing channels that traverse the
device. This global routing structure provides predictable performance,
even in complex designs. In contrast, the segmented routing in FPGAs
requires switch matrices to connect a variable number of routing paths,
increasing the delays between logic resources and reducing performance.
The FastTrack Interconnect consists of row and column interconnect
channels that span the entire device. Each row of LABs is served by a
dedicated row interconnect. The row interconnect can drive I/O pins and
feed other LABs in the device. The column interconnect routes signals
between rows and can drive I/O pins.
A row channel can be driven by an LE or by one of three column channels.
These four signals feed dual 4-to-1 multiplexers that connect to two
specific row channels. These multiplexers, which are connected to each
LE, allow column channels to drive row channels even when all eight LEs
in an LAB drive the row interconnect.
Each column of LABs is served by a dedicated column interconnect. The
column interconnect can then drive I/O pins or another row’s
interconnect to route the signals to other LABs in the device. A signal from
the column interconnect, which can be either the output of an LE or an
input from an I/O pin, must be routed to the row interconnect before it
can enter an LAB or EAB. Each row channel that is driven by an IOE or
EAB can drive one specific column channel.
Access to row and column channels can be switched between LEs in
adjacent pairs of LABs. For example, an LE in one LAB can drive the row
and column channels normally driven by a particular LE in the adjacent
LAB in the same row, and vice versa. This routing flexibility enables
routing resources to be used more efficiently. See Figure 11.
26 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 11. LAB Connections to Row & Column Interconnect
From Adjacent LAB
Row Channels
Column
Channels
Each LE can drive two
row channels.
LE 2
LE 8
LE 1 To Adjacent LAB
Each LE can switch
interconnect access
with an LE in the
adjacent LAB.
At each intersection,
four row channels can
drive column channels.
To Other Rows
To LAB Local
Interconnect
To Other
Columns
Altera Corporation 27
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
For improved routing, the row interconnect is comprised of a combination
of full-length and half-length channels. The full-length channels connect
to all LABs in a row; the half-length channels connect to the LABs in half
of the row. The EAB can be driven by the half-length channels in the left
half of the row and by the full-length channels. The EAB drives out to the
full-length channels. In addition to providing a predictable, row-wide
interconnect, this architecture provides increased routing resources. Two
neighboring LABs can be connected using a half-row channel, thereby
saving the other half of the channel for the other half of the row.
Table 7 summarizes the FastTrack Interconnect resources available in
each FLEX 10K device.
In addition to general-purpose I/O pins, FLEX 10K devices have six
dedicated input pins that provide low-skew signal distribution across the
device. These six inputs can be used for global clock, clear, preset, and
peripheral output enable and clock enable control signals. These signals
are available as control signals for all LABs and IOEs in the device.
The dedicated inputs can also be used as general-purpose data inputs
because they can feed the local interconnect of each LAB in the device.
However, the use of dedicated inputs as data inputs can introduce
additional delay into the control signal network.
Table 7. FLEX 10K FastTrack Interconnect Resources
Device Rows Channels per
Row
Columns Channels per
Column
EPF10K10
EPF10K10A 3 144 24 24
EPF10K20 6 144 24 24
EPF10K30
EPF10K30A 6 216 36 24
EPF10K40 8 216 36 24
EPF10K50
EPF10K50V 10 216 36 24
EPF10K70 9 312 52 24
EPF10K100
EPF10K100A 12 312 52 24
EPF10K130V 16 312 52 32
EPF10K250A 20 456 76 40
28 Altera Corporation
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
Figure 12 shows the interconnection of adjacent LABs and EABs with row,
column, and local interconnects, as well as the associated cascade and
carry chains. Each LAB is labeled according to its location: a letter
represents the row and a number represents the column. For example,
LAB B3 is in row B, column 3.
Figure 12. Interconnect Resources
I/O Element (IOE)
Row
Interconnect
IOE
IOE
IOE
IOE
Column
Interconnect
LAB
B1
See Figure 15
for details.
See Figure 14
for details.
LAB
A3
LAB
B3
LAB
A1 LAB
A2
LAB
B2
IOE
IOE
Cascade &
Carry Chains
To LAB B4
To LAB A4
To LAB B5
To LAB A5
IOE IOEIOE IOE
IOE IOE
IOEIOE IOEIOE IOEIOE
IOE
IOE
Altera Corporation 29
FLEX 10K Embedded Programmable Logic Device Family Data Sheet
I/O Element
An I/O element (IOE) contains a bidirectional I/O buffer and a register
that can be used either as an input register for external data that requires
a fast setup time, or as an output register for data that requires fast clock-
to-output performance. In some cases, using an LE register for an input
register will result in a faster setup time than using an IOE register. IOEs
can be used as input, output, or bidirectional pins. For bidirectional
registered I/O implementation, the output register should be in the IOE
and, the data input and output enable register should be LE registers
placed adjacent to the bidirectional pin. The Compiler uses the
programmable inversion option to invert signals from the row and
column interconnect automatically where appropriate. Figure 13 shows
the bidirectional I/O registers.