6 phillip stanley-marbell
figurable sum-of-product macrocells with configurable and and or planes
which feed into flip flops, FPGAs consist of fine-grained configurable lookup
tables (LUTs) which feed into flip flops. Each pair of LUT and flip flop is
typically referred to as a logic cell (LC). Configuring an n-input FPGA LUT
specifies the complete truth table for the LUT, permitting the LUT to be con-
figured to any n-input logic function. The LUTs in FPGAs typically have
a small number of inputs: For example, the iCE40 FPGA (Section
6.5) uses
4-input LUTs, permitting each input to the flip flops to be configured to be
any 4-input logic function. In many FPGA architectures, logic cells are fur-
ther grouped into collections, named programmable logic blocks (PLBs) on the
iCE40 (Section
6.5).
FPGAs almost always require an additional static random-access memory
(SRAM) IC to store their configurations, in contrast to most PALs, PLAs,
and CPLDs, which store configuration information within the IC itself. The
Lattice iCE40 FPGA, which Section
6.5 introduces, is thus uncommon in hav-
ing the ability to store configuration data directly in the FPGA, albeit in a
one-time-programmable memory. This is partly possible since the iCE40 is
specifically targeted at resource-constrained embedded systems and thus has
a smaller number of LUTs (fewer than 10 000), fewer than most FPGAs which
are targeted at high-performance computing systems and contain millions of
LUTs.
6.4.4 Self-Assessment Quiz
Complete the following
quiz to evaluate your understanding of PLAs, PALs,
FPGAs, and the iCE40 FPGA.
6.5 The Lattice iCE40 Low-Power Field-Programmable Gate Arrays
The iCE40 FPGA from Lattice Semiconductor is an IC with up to two SPI in-
terfaces, up to two I2C interfaces, and (depending on the variant) a few thou-
sand 4-input lookup tables and D-type flip flops, approximately 20 config-
urable I/O buffers, and differential amplifiers, which you can wire together
in any topology of your choosing. The iCE40 contains fixed-functionality
hardware elements that you can wire together with your configured digital
logic. Such fixed-functionality hardware elements in FPGAs are usually re-
ferred to as intellectual property blocks (IP blocks). The iCE40 contains IP blocks
for 8- and 16-bit multipliers and adders, buffers conforming to several differ-
ent I/O standards, and IP blocks that implement the functionality of the I2C,
I3C, and SPI serial I/O communication protocols.
Although you can in principle implement memories by wiring together
the flip flops in an FPGA, doing so would consume a large number of flip