Introduction To Programmable Logic Devices and Fpgas: - by Sparsh Sharma 11815030 Ec-2
Introduction To Programmable Logic Devices and Fpgas: - by Sparsh Sharma 11815030 Ec-2
- By Sparsh Sharma
11815030 EC-2
Programmable Logic Devices PLDs are the integrated circuits. They contain an array of AND gates & another
array of OR gates. There are three kinds of PLDs based on the type of arrays, which has programmable
feature. PLDs can be used to realize ant kind of digital circuit.
• Programmable Read Only Memory: Have address lines as input and data lines as output. It is now obsolete
for hardware programming.
• Programmable Array Logic: It consists of Programmable AND gate followed by fixed OR gate.
• Programmable Logic Array: Programmable AND gate followed by Programmable OR gates, giving SOP
output
• DRAWBACK: Logic plane structure increases rapidly (exponentially) with increasing number of inputs. They
were also inefficient when it comes to design sequential logic .
FPGA Overview
Manufacturing cycle for ASIC is very costly, lengthy and engages lots of manpower
Mistakes not detected at design time have large impact on development time and cost
FPGAs are perfect for rapid prototyping of digital circuits and have easy upgrades like in case of software
Are used in unique applications reconfigurable computing
Have comparatively short time to market
Have a simpler design flow than ASICs and are beginner-friendly.
FPGA Architecture
LOGIC BLOCKS
• The purpose of logic blocks is to implement
combinational and sequential logic
functions.
• Logic blocks can be implemented by Transisto
r pairs, basic small gates such as two
input NAND’s or XOR’ s, Multiplexers,
Look up tables( LUT) and Wide fan
in AND/OR structure
• These programmable logic blocks are
repeated inside FPGA, each of which can be
programmed differently to perform any logic
operation.
FPGA Architecture
PROGRAMMABLE INTERCONNECTS
• The interconnects between various logic blocks can be
programmed (connected / disconnected), allowing the
designer to implement a certain logic. The switch matrix
shown alongside is a multiplexing configuration that can
be programmed to select bus connections.
• This switching action is provided in following ways for
SRAM based programming:
Pass-Transistors
Multiplexers
Transmission Gates
FPGA Architecture
IO BLOCKS
The Input-output blocks appear as storage elements.
These blocks provide an I/O interface for FPGA chip with
external board elements.
Note that each pad can behave as input or output. The
data can be transferred either directly or via D flop, using
a MUXing network, the select line of which is output
enable.
IO block can work in synchronous set/reset mode and
asynchronous set/reset mode.
FPGA Architecture
Additional Features
• Block RAM:
Block RAM is discrete part of FPGA. It is used to store large
amount of data inside FPGA, which would be stored otherwise
outside of it. Normally 16/32-bit size RAM blocks are available
and have customizable width.
• DSP Unit:
Digital Signal Processing units are also now in-built in modern
FPGAs,allowing the designer to deploy complex algorithms on
hardware itself, in a very cost-efficient manner. In the high-end
sector, enormous arithmetic power can be housed in a tiny area
by integrating four DSP units on the same FPGA
• Arithmetic Resources:
These blocks have predefined standard functions implement
inside them, such as adder, multiplier, counter etc. ,which allow
the designer to directly use them
SRAM based Programming
• Design Implementation:
This involves transforming netlist into a format that FPGA can use. This involves
following steps:
Partitioning: This process involves dividing the netlist into blocks that can be directly
mapped to FPGA logic blocks.
Place and Route: PLacing involves selecting a particular set of logic blocks that will be
used. Routing involve decision making regarding the intercinnecting paths for above
selected logic blocks, in order to minimize the delay.
A bit-stream file is generated after above steps that specify the loading pattern of
SRAMs for give logic.
FPGA Design Flow
• Design Verification
Design verification is performed at each step,in order to make sure that the design
outputs desired signals with respect to applied stimulus.
Various simulators such as modelSim and GTKWave are available to do so.
Some tools also provide a means of performing Static Timing Analysis, which involves
the designer to rectify setup and hold violtions, if any.
After performing all the above processes, the design is finally loaded into FPGA to
anayze its performance on silicon.
VHDL Verilog