4 Altera Corporation
PIB 21: Implementing Logic with the Embedded Array in FLEX 10K Devices
Embedded vs.
Distributed
RAM
FLEX 10K embedded RAM implements logic functions more efficiently
than distributed RAM. Distributed RAM, as used in field-programmable
gate arrays (FPGAs), allows the designer to use a particular array of
memory cells either as part of the general logic array or as addressable
RAM. However, using distributed RAM provides only small RAM blocks
such as 16
×
2 or 32
×
1. Using distributed RAM for applications larger
than 32
×
1 results in lower performance and lower device utilization. To
create larger RAM blocks, the small RAM blocks must be interconnected
using additional logic cells. However, adding logic cells can cause less
predictable delays, routing problems, and can reduce the amount of
available logic for implementing other functions. Therefore, there is no
advantage gained from implementing logic functions with distributed
RAM than with logic cells.
In contrast, FLEX 10K devices dedicate a portion of the device to
embedded RAM. Embedded RAM is implemented in the EAB, which is a
large block of flexible RAM. Altera’s MAX+PLUS II development
software automatically cascades EABs to implement blocks of RAM larger
than 2,048
×
1. Because the EAB is inherently a large RAM block, the EAB
can implement complex logic functions in a single logic level, so
additional logic cells are not required. FLEX 10K devices can offer as
much as 24 Kbits of RAM without sacrificing logic capacity. Therefore,
implementing logic functions with embedded RAM in FLEX 10K EABs
results in higher resource utilization and predictable performance.
Manufacturers of distributed-RAM FPGAs claim that embedding large
blocks of RAM into a programmable device is inefficient because die area
is wasted if a design does not use RAM. However, EABs that are not used
as memory will be used as logic, and most designs will contain some
complex logic functions that can be implemented by EABs.
Applications
EABs can be used for a variety of specialized logic applications, including:
■
Symmetric multiplier
■
Asymmetric multiplier
■
Constant multiplier/vector scalar
■
Digital filter
■
Two-dimensional convolver
■
State machine
■
Transcendental functions
■
Waveform generator
■
8-bit-to-10-bit encoder