UNIT II
UNIT II
PLD
What is a Programmable Logic Device?
• A programmable logic device is defined as an integrated circuit
that contains an array of logic elements and interconnections
that can be programmed by the user to implement a desired
logic function.
• It is an electronic component that can be configured to
perform a specific logic function by the user. Unlike fixed logic
devices that have predefined functions, such as logic gates or
flip-flops, PLDs can be programmed and reprogrammed to
implement different logic circuits.
• PLDs are widely used in digital systems design, as they offer
flexibility, speed, and cost-effectiveness.
Types of Programmable Logic Devices
• There are different types of programmable logic devices, depending on their
complexity, architecture, and programmability. Some of the common types are:
• Simple Programmable Logic Devices (SPLDs): These are the simplest and
smallest PLDs that contain a few logic elements and interconnections. They
are usually programmed using fuse or anti-fuse technology, which means
that once programmed, they cannot be changed. Some examples of SPLDs are:
– Programmable Read-Only Memory (PROM): This is a memory device
that can store a fixed pattern of binary data that represents a logic function.
The data is programmed by burning fuses or anti-fuses in the memory cells
during manufacturing. The data can be read by applying appropriate address
signals to the inputs and obtaining the output signals from the outputs.
– Programmable Logic Array (PLA): This is a device that consists of two
programmable arrays of AND and OR gates that can implement any sum-of-
products logic expression. The AND array is programmed by burning fuses
or anti-fuses in the rows that connect the inputs to the AND gates. The OR
array is programmed by burning fuses or anti-fuses in the columns that
connect the AND gates to the outputs.
– Programmable Array Logic (PAL): This is a device that consists of
a programmable array of AND gates and a fixed array of OR gates
that can implement any sum-of-products logic expression. The AND
array is programmed by burning fuses or anti-fuses in the rows that
connect the inputs to the AND gates. The OR array is fixed and has a
predefined number of outputs.
– Generic Array Logic (GAL): This is a device that consists of a
programmable array of AND gates and a fixed array of OR gates that
can implement any sum-of-products logic expression. The AND array
is programmed by using electrically erasable programmable read-
only memory (EEPROM) cells in the rows that connect the inputs to
the AND gates. The OR array is fixed and has a predefined number of
outputs. The advantage of GALs over PALs is that they can be erased
and reprogrammed electrically.
• Complex Programmable Logic Devices (CPLDs): These are more complex
and larger PLDs that contain hundreds or thousands of logic elements
and interconnections. They are usually programmed using EEPROM or
flash memory technology, which means that they can be erased and
reprogrammed electrically. Some examples of CPLDs are:
– Erasable Programmable Logic Device (EPLD): This is a device that consists of an
array of macrocells, each containing a programmable logic block and a register.
The macrocells are interconnected by a programmable switch matrix that can
route signals between them. The logic block can implement any combinational
or sequential logic function using EEPROM cells. The register can store one bit
of data and can be configured as D-type, T-type, JK-type, or SR-type.
– Electrically Erasable Programmable Logic Device (EEPLD): This is a device that
consists of an array of macrocells, each containing a programmable logic block
and a register. The macrocells are interconnected by a programmable switch
matrix that can route signals between them. The logic block can implement any
combinational or sequential logic function using flash memory cells. The
register can store one bit of data and can be configured as D-type, T-type, JK-
type, or SR-type.
• Field-Programmable Gate Arrays (FPGAs): These are the most complex and largest
PLDs that contain millions of logic elements and interconnections. They are usually
programmed using SRAM technology, which means that they need an external
memory device to store their configuration data. Some examples of FPGAs are:
– Static Random-Access Memory (SRAM) Programmed FPGA: This is a device that consists of
an array of configurable logic blocks (CLBs), each containing one or more look-up tables
(LUTs) and flip-flops. The CLBs are interconnected by a programmable routing network that
can route signals between them. The LUTs can implement any combinational logic function
using SRAM cells. The flip-flops can store one bit of data and can be configured as D-type, T-
type, JK-type, or SR-type.
– Antifuse Programmed FPGA: This is a device that consists of an array of configurable logic
blocks (CLBs), each containing one or more look-up tables (LUTs) and flip-flops. The CLBs are
interconnected by an anti-fuse-based routing network that can route signals between them.
The LUTs can implement any combinational logic function using anti-fuse cells. The flip-flops
can store one bit of data and can be configured as D-type, T-type, JK-type, or SR-type.
– Flash Programmed FPGA: This is a device that consists of an array of configurable logic
blocks (CLBs), each containing one or more look-up tables (LUTs) and flip-flops. The CLBs are
interconnected by a flash-based routing network that can route signals between them. The
LUTs can implement any combinational logic function using flash memory cells. The flip-flops
can store one bit of data and can be configured as D-type, T-type, JK-type, or SR-type.
PLD Programming Languages
• Digital Systems Design: PLDs are used to design digital systems such as
microprocessors, microcontrollers, digital signal processors, embedded systems,
computer peripherals, communication devices, etc. PLDs offer flexibility in
designing complex logic functions with fewer hardware components and wiring than
discrete logic devices.
• Rapid Prototyping: PLDs are used to prototype digital systems quickly and easily
without requiring expensive fabrication processes or long development cycles.
• Reconfigurability: PLDs are used to reconfigure digital systems dynamically
according to changing requirements or environmental conditions without requiring
hardware replacement or modification..
• Performance: PLDs offer high performance in terms of speed, power consumption,
reliability, and scalability than fixed logic devices. Cost-effectiveness: PLDs offer
cost-effectiveness in terms of design time, development cost, maintenance cost, and
product life cycle than fixed logic devices. PLDs reduce design time by allowing the
reuse of existing code modules and libraries for different applications. PLDs reduce
development costs by allowing easy modification and correction of errors without
requiring hardware changes. PLDs reduce maintenance costs by allowing easy
upgradeability and compatibility with new technologies without requiring hardware
changes.
Communication Interface
Communication Interface
• A communication interface refers to the system
or method used for transmitting data between
different entities. It can be onboard (internal) or
external depending on the interaction scope:
• Onboard Communication Interface: Deals with
communication within a single system or vehicle.
• External Communication Interface: Facilitates
communication between the system and
external entities such as other systems,
networks, or devices.
Onboard Communication Interface