Fpga Working
Essay by review • December 20, 2010 • Research Paper • 4,859 Words (20 Pages) • 1,725 Views
If there are images in this attachment, they will not be displayed. Download the original attachment
What are FPGAs?
FPGAs are programmable digital logic chips. What that means is that you can program them to do almost any digital function.
Here's the general workflow when working with FPGAs:
You use a computer to describe a "logic function" that you want. You might draw a schematic, or create a text file describing the function, doesn't matter.
You compile the "logic function" on your computer, using a software provided by the FPGA vendor. That creates a binary file that can be downloaded into the FPGA.
You connect a cable from your computer to the FPGA, and download the binary file to the FPGA.
That's it! Your FPGA behaves according to your "logic function".
Keep in mind that
You can download FPGAs as many time as you want - no limit - with different functionalities every time if you want. If you make a mistake in your design, just fix your "logic function", re-compile and re-download it. No PCB, solder or component to change.
The designs can run much faster than if you were to design a board with discrete components, since everything runs within the FPGA, on its silicon die.
FPGAs loose their functionality when the power goes away (like RAM in a computer that looses its content). You have to re-download them when power goes back up to restore the functionality.
Who makes FPGAs?
There are (at least) 5 companies making FPGAs in the world. The first two (Xilinx and Altera) hold the bulk of the market.
Xilinx is the biggest name in the FPGA world. It tends to be the density and technology leader.
Altera is the second FPGA heavyweight, also a well-known name.
Lattice, Actel, Quicklogic are much smaller and are the "specialty shops".
Xilinx
Xilinx has traditionally been the silicon technology leader. Xilinx general philosophy is to provide all the features possible, at the cost of extra complexity.
Biggest and most flexible (feature-full) devices.
Complex architecture, powerful devices.
Altera
Altera philosophy is to provide the features that most people want while keeping their devices easy to use.
Lean and efficient devices architecture.
Powerful devices.
Lattice, Actel and Quicklogic
These companies have specialty products.
Lattice, better known for its CPLDs, have also an "instant-on" FPGA family.
Actel and QuickLogic have antifuse (programmable-only-once) products.
FPGAs vs. CPLDs
Are FPGAs and CPLDs the same thing? No
Both are programmable digital logic chips. Both are made by the same companies. But they have different characteristics.
FPGAs are "fine-grain" devices. That means that they contain a lot (up to 100000) of tiny blocks of logic with flip-flops. CPLDs are "coarse-grain" devices. They contain relatively few (a few 100's max) large blocks of logic with flip-flops.
FPGAs are RAM based. They need to be "downloaded" (configured) at each power-up. CPLDs are EEPROM based. They are active at power-up (i.e. as long as they've been programmed at least once...).
CPLDs have a faster input-to-output timings than FPGAs (because of their coarse-grain architecture, one block of logic can hold a big equation), so are better suited for microprocessor decoding logic for example than FPGAs.
FPGAs have special routing resources to implement efficiently binary counters and arithmetic functions (adders, comparators...) and RAM. CPLDs do not.
FPGAs can contain very large digital designs, while CPLDs can contain small designs only.
FPGAs vs. microcontrollers
Are FPGAs and microcontrollers the same thing? No
Microcontrollers are based on a CPU architecture. As all CPUs, they execute instructions in a sequential manner.
FPGAs are programmable logic and run in a parallel fashion.
Microcontrollers have on-chip peripherals that also execute in parallel with their CPU. But they are still much less configurable than programmable logic.
How FPGAs work
Internal logic
FPGAs are built from one basic "logic-cell", duplicated hundreds or thousands of time. A logic-cell is composed of a small lookup table, some gates and a D-flipflop. Each logic-cell then can be connected to other logic-cells through interconnect resources (wires/muxes placed around the logic-cells).
Each cell can do little, but with so many of them, complex logic functions can be created.
The interconnect wires also go to the boundary of the device where I/O cells are implemented and connected to the pins of the FPGAs.
Dedicated routing/carry chains
In addition to general-purpose interconnect resources, FPGAs have fast dedicated lines in between neighboring logic cells.
The most common type of fast dedicated lines are carry chains. Carry chains allow creating arithmetic functions (counters/adders) very efficiently (low logic usage & high
...
...