TW Project 2

You might also like

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

1 | P a g e

MEMORANDOM

To: Professor Karen Thompson

From: Cody Moldenhauer

Date: 16 February 2014

Subject: Writing to Define and Describe

This memo covers the technical description and definition of an object used in my field. The
object that I have selected is the Field Programmable Gate Array (FPGA). The memo also lists
who the audience is, the purpose of defining and describing the FPGA, and the placement.

Audience

The audience for defining and describing an FPGA is all electrical engineers that are new to
using digital logic, and people that require a way to build and test multiple circuits for different
uses.

Purpose

Designing a circuit can take time, but it can also take a large amount of time build and test the
circuit for timing and other issues that may occur. FPGAs avoid wasting time and money by
allowing users to build and test circuits quickly.

Placement

The extended technical definition and developed technical description would be placed in a
textbook or online resource teaching people with a basic understanding of digital logic parts
how to implement advanced designs.

2 | P a g e


Extended Technical Definition: FPGA

A field programmable gate array is an integrated circuit containing logic blocks that can be
programmed by a user after it has been manufactured. The FPGA came from the need to field
program circuits without the need for hard wiring the logic gates together. The idea behind the
FPGA was to create a link between logic gates that could be reprogrammed or changed quickly.
One of the most common producers of FPGAs is Xilinx. Xilinx was the first to produce a
commercially viable FPGA when it created the XC2064 in the mid 1980s. The XC2064 had only
64 configurable logic blocks. Xilinx has gone on to create many modern FPGAs that are almost
as fast as the other alternatives.

There are two main types of FPGAs. Modern FPGAs also have Ethernet controllers, USB
controllers and DRAM controllers that allow it to interact with other devices. Traditional FPGAs
contain only programmable gates and routers. Modern FPGAs are like digital signal processors
(DSPs). Modern FPGAs use the same parts as a DSP which allow it to process the circuit faster.
The slices that are common to both FPGAs and DSPs are specialized hardware blocks.
However, the FPGA takes these slices and mixes them with gates and routers in order to
perform better while using less power.

While FPGAs are more powerful than before, they still are not as powerful as an integrated
circuit. An integrated circuit (IC) is a set of circuits that are set on one small plate of
semiconductor material. Integrated circuits are usually much smaller than a circuit made from
independent components. The main limitation of an FPGA is getting the timing correct. Due to
the FPGA building the circuit out of programmable logic gates, it may take more time for a
circuit to run. Integrated circuits may allow for faster times, because the gates can be placed
where they need to be. With the advancement of technology, FPGA boards are able to work
faster than before and the gap between the times getting smaller.

FPGAs are becoming a popular alternative to integrated circuits. ICs are becoming more
expensive to produce. FPGAs are very cheap to produce in respect to ICs, because there is no
need to build a circuit for every change that happens before the product is put into the market.
Due to the financial constraints, the economy is driving for low cost technologies. The market
trends make FPGAs a good alternative to the common ICs that are being made by many
modern companies.

3 | P a g e


Developed Technical Description: FPGA

An FPGA contains a few basic pieces that allow it to design many circuits. A key piece of an
FPGA is a Look-Up Table (LUT). LUTs are how the logic of the FPGA is implemented. In an FPGA
there are several LUTs. Each LUT has some number
of inputs and one output. The LUT is a necessary
piece, because it allows the user to program what
the output should be for each set of inputs. There
are several ways to program an FPGA. Two of the
common ways are to draw a schematic and to
write a code for the FPGA to follow. Once a user
has drawn a schematic or programmed the code,
the FPGA assigns LUTs as needed and routes the
path of the code to the FPGA board.

Another key piece to make the FPGA work is the use of flip-flops. Each LUT output can be
connected to a flip-flop. The flip-flop is a part of circuitry that has two stable states. For each
state it outputs the respective input. A flip-flop is almost always in one state or the other state,
because they switch between them very fast. There can be an unstable state that could output
one state or the other. A Complex Logic Block (CLB) is used to avoid a timing error caused by
reading the flip-flop when it is changing states.

Each Complex Logic Block has two groups of LUTs and flip-flops that are called slices. The CLB
then connects to a switch
matrix that is responsible for
connecting every CLB to the
rest of the FPGA. The switch
matrix allows the FPGA to
input and output data quickly
by ensuring that the data does
not have to travel very far and
can operate quicker. The
switch matrix connects each
resource, such as CLBs, to
another using a bunch of
multiplexors and wires in the
FPGA. Once the circuit is built
using the included software
with the FPGA, a user simply
needs to input the operation
and the FPGA will output the
response.

You might also like