Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

‫جمهورية العراق‬

‫جامعة االمام جعفر الصادق (ع)‬

‫الكلية ‪ :‬تكنلوجيا المعلومات‬

‫القسم‪ :‬هندسة تقنيات الحاسوب‬

‫المرحلة ‪:‬الثالثه‬

‫عنوان التقرير ‪:‬‬

‫(()‪))FPGA (FIELD PROGRAMMABLE  GATE ARRAY‬‬

‫اسم الطالب ‪:‬‬

‫((سجاد حامد رضا ازرك))‬

‫استاذ المادة ‪:‬‬

‫(( حنين سعد ))‬


Introduction
Field Programmable Gate Arrays (FPGAs) are digital ICs
(Integrated Circuits) that enable the hardware design engineer to
program a customized Digital Logic as per his/her requirements. The
term “Field Programmable” implies that the Digital Logic of the IC is
not fixed during its manufacturing (or fabrication) but rather it is
programmed by the end-user (designer).In order to provide this
programmability, an FPGA consists of Configurable (or
Programmable) Logic Blocks and configurable interconnects
between these blocks. This configurable Logic and the
Interconnections (Routing) of FPGAs makes them general purpose
and flexible but at the same time, it also makes them slow and power
hungry when compared to a similar calibre ASIC with Standard Cells.
It has been more than three decades since the introduction of FPGAs
into the market and in this long span, they have undergone a severe
technological advancement and gained a continuously growing
popularity. The simplest of Programmable Logic Devices consists of
an array of AND & OR gates and the logic of these gates and their
interconnections can be configured by a programming process.PLDs
are particularly useful when an engineer wants to implement a
customized logic and is restricted by the pre-configured integrated
circuits. PLDs provide a way to implement a custom digital circuit
through the power of hardware configuration rather than
implementing it using a software.

What is an FPGA?
Field Programmable Gate Arrays or FPGAs in short are pre-fabricated
Silicon devices that consists of a matrix of reconfigurable logic circuitry
and programmable interconnects arranged in a two-dimensional array.
The programmable Logic Cells can be configured to perform any digital
function and the programmable interconnects (or switches) provide the
connections among different logic cells.

Using an FPGA, you can implement any custom design by specifying the
logic or function of each logic block and setting the connection of each
programmable switch. Since this process of designing a custom circuit is
done in the field rather than in a fab, the device is known as “Field
Programmable”.

The following image shows a typical internal structure of an FPGA in a


very broad sense.
FPGA Programming Technologies

We have talked about the reprogrammable architecture of FPGAs


quite a bit but now let us see some of the most commonly used
programming techniques that is responsible for such reconfigurable
architecture.

The following are three of the well-known programming technologies


used in FPGAs.

 SRAM

 EEPROM / Flash

 Anti-Fuse

Other technologies include EPROM and Fusible Link but they are
used in CPLDs and other PLDs but not in FPGAs, Hence, let us keep
the discussion limited to FPGA related programming technologies.

SRAM
We know that there are two types of semiconductor RAM called the
SRAM and DRAM. SRAM is short for Static RAM while DRAM is short
for Dynamic Ram. SRAM is designed using transistors and the term
static means that the value loaded on a basic SRAM Memory Cell will
remain the same until deliberately changed or when the power is
removed.

A typical 6 transistor SRAM Cell to store 1 bit is shown in the


following image.
This is in contrast to the DRAM, which consists of a combination of a
transistor and a capacitor. The term Dynamic refers to the fact that
the value loaded in the basic DRAM Memory Cell is valid until there is
charge in the capacitor. As capacitor loses its charge over time, the
memory cell has to be periodically recharged to maintain the charge.
This is also known as refreshing.

Many FPGA vendors implement Static Memory Cells in SRAM based


FPGAs for programming. SRAM based FPGAs are used to program
both the logic cells and the interconnects and they have become quite
predominant due to their re-programmability and use of CMOS
technology, which is known for its low dynamic power consumption,
high speed and tighter integration.
EEPROM / Flash
A close alternative to SRAM based programming technology is based
on EEPROM or Flash programming technologies. The main advantage
of flash-based programming is its non-volatile nature. Even though
flash supports re-programmability, the number of times this can be
done is very small when compared to an SRAM technology.

Anti-Fuse
The anti-fuse programming technology is an old technique of
producing one-time programmable devices. They are implemented
using a link called the antifuse, which in its unprogrammed state has
a very high resistance and can be considered an open circuit.

When programming, a high voltage and current is supplied to the


input. As a result, the antifuse, which is initially in the form of
amorphous silicon (basically an insulator with very high resistance)
linking two metal tracks, comes to life by converting to a conducting
polysilicon.

When compared to the other two technologies, the antifuse one


occupies the least amount of space but comes only as one-time
programmable option.  

You might also like