Memory and Programmable Logic
Memory and Programmable Logic
Programmable
Logic
Memory and Programmable
Logic
1. Introduction
2. RandomAccess Memory
3. Memory Decoding
5. ReadOnly Memory
6. Programmable Logic Array
7. Programmable Array Logic
8. Sequential Programmable Devices
Introduction
Memories are for binary information storage.
Two main memory types: randomaccess memory (RAM) and readonly memory
• Volatile
– lose stored information when power is turned off
– SRAM, DRAM
• Non-volatile
– retain stored information after the removal of power
– ROM
– EPROM, EEPROM
– Flash memory
Memory Decoding
• A memory unit contains memory cells and decoding circuits.
• Decoding circuits may select the memory word specified by the input address.
• A bit memory cell is shown below:
– B1 = 0
– B0 = A0
– so, 8 x 4 ROM is enough
ROM Implementation
Types of ROM
• Mask programming ROM
– IC manufacturers
– is economical only if large quantities
• PROM: Programmable ROM
– fuses, one-time programmable (OTP)
– universal programmer
• EPROM: Erasable PROM
– floating gate (tunneling)
– ultraviolet light erasable with transparent window
• EEPROM: Electrically Erasable PROM
– longer time is needed to write
– in system programmable (ISP)
• Flash memory
– allowing simultaneous erasing of blocks of memory (flash erasable)
– current mainstream product
– NAND type and NOR type
– very high density
• High voltage (> 10V) is required for non-mask programming
Combinational PLDs
• Three major types of combinational PLDs, differing in the placement of the
programmable connections in the AND–OR array.
Programmable Logic Array (PLA)
• An array of programmable AND gates can generate any product terms of the
inputs; and an array of programmable OR gates can generate the sums of
the products.
• More flexible use less circuits than ROM.
• Example:
− 3 inputs
− 4 product terms
− 2 outputs
− XOR for inverting
− F1 = AB' + AC + A'BC'
− F2 = (AC + BC)’
PLA Programming Table
F1 = AB’ + AC + A’BC’ F2 = (AC + BC)’
• The size of a PLA is specified by the number of inputs, the number of product
terms, and the number of outputs.
• For n inputs, k product terms, and m outputs, the internal logic of the PLA
consists of n buffer–inverter gates, k AND gates, m OR gates, and m XOR gates.
• There are 2n x k connections between the inputs and the AND array, k x m
connections between the AND and OR arrays, and m connections associated with
the XOR gates.
Examples 2
• Use PLA to implement F1(A, B, C) = (0, 1, 2, 4); F2(A, B, C) = (0, 5, 6, 7)
• Both the true value and the complement of the function should be simplified to
check to reduce the number of distinct product terms (AND gates needed).
• The number of literals in a term is not important in PLA design
• The K-map for the simplification
Programmable Array Logic
(PAL)
• PAL has a fixed OR array and a programmable AND array.
• Easier to program than, but is not as flexible as, the PLA.
• Example: PAL with 4 inputs and 4
outputs.
• There are four sections of three wide
AND–OR array, i.e. there are three
programmable AND gates in each
section and one fixed OR gate.
• The Boolean functions must be
simplified to fit into each section.
• One of the outputs is fed back into the
AND gates for implementing functions
with a large number of product terms.
• Unlike PLA, a product term cannot be
shared among two or more OR gates;
therefore, each function can be
simplified by itself.
An Example Implementation
PAL Programming Table
Sequential Programmable
Devices
• Sequential programmable devices include both gates and flipflops.
• Three major types:
1. Sequential (or simple) programmable logic device (SPLD)
2. Complex programmable logic device (CPLD)
3. Fieldprogrammable gate array (FPGA)
SPLD and its Macrocell
• The sequential PLD is sometimes referred to as a simple PLD to differentiate it
from the complex PLD.
• A PAL that includes flipflops is referred to as a registered PAL.
• Each section of an SPLD is called a macrocell, which is a circuit that contains a
sumofproducts combinational logic function and an optional flipflop.
• A basic macrocell: PAL + edge-triggered D-FF + tri-state output
Complex PLD
• CPLD, which is a collection of individual PLDs on a single IC, is more
economical to use than SPLD.
• A programmable interconnection structure (switch matrix) allows the PLDs to be
connected to each other.
• The input–output (I/O) blocks provide the connections to the IC pins which are
driven by a three state buffer and can be programmed to act as input or output.
Field-Programmable Gate Array
• Gate array is an IC design methodology with several hundred thousand gates
(FPGA)
(transistors) fabricated in a single chip while their interconnections are
determined from the designer’s specification in the last steps of foundry service.
• A fieldprogrammable gate array (FPGA) is a gate array like IC chip that can be
programmed at the user’s location.
• A typical FPGA consists of an array of millions of logic blocks (lookup tables,
multiplexers, gates, and flipflops), surrounded by programmable input and
output blocks and connected together via programmable interconnections.
• A lookup table is a truth table stored in an SRAM and provides the combinational
circuit functions for the logic block, in the same way that combinational circuit
functions are implemented with ROM. For example, a 16 x 2 SRAM can store
the truth table of a combinational circuit that has four inputs and two outputs.
• The combinational logic section, along with a number of programmable
multiplexers, is used to configure the input equations for the flipflop and the
output of the logic block.
• There are different ways to store the truth table including SRAM, PROM,
EEPROM, Flash, … .
Basic Xilinx Architecture
• Xilinx launched the world’s first commercial FPGA in 1985, with the vintage
XC2000 device family.
• The XC3000 and XC4000 families soon followed, setting the stage for today’s
Spartan™, and Virtex™ device families.
• Each evolution improves in
density, performance, power
consumption, voltage levels, pin
counts, and functionality.
• For example, the Spartan family
of devices initially offered a
maximum of 40K system gates,
but today’s Spartan6 offers
150,000 logic cells plus 4.8Mb
block RAM.
• Basic architecture of Spartan:
CLB: configurable logic blocks
IOB: I/O blocks
Configurable Logic Block (CLB)
• Each CLB consists of a programmable lookup table, multiplexers, registers, and
paths for control signals
Interconnect Resources
• A grid of switch matrices overlays the architecture of CLBs to provide
generalpurpose interconnect for branching and routing throughout the device.