---+ Field Programmable Gate Arrays (
FPGAs)
FPGAs were originally put together in 1984 but are only now becoming implemented in cosmology. In our case,
FPGAs offer the advantages of low power consumption, high speed and comparatively low costs (due to recustomizability... which may be a word I just made up). The plan is to use
FPGAs to read in data, transform and filter it, and pass it out to a PC via internet. Additionally, they should be able to keep track of other "housekeeping" items such as various sensor voltages.
It is probably easiest to think of an
FPGA as a sort of customizable processor, this is not quite accurate, but gives a general sort of picture. All digital circuits are made up of basic binary logic commands, the most typical being AND and OR. In the case of a typical microprocessor the chip is built to one configuration to perform basic calculations as fast as possible iteratively, that is one instruction at a time. In an
FPGA however, the connections between the various logic modules are not "written in stone" and thus the chip can be reconfigured to perform single operations very efficiently, with many separate sections running in parallel. As for what is contained in an individual logic block, this can actually be fairly complicated and may be added to this document later. For the moment just note that, after configuration, an
FPGA is similar to a board fabricated specifically for the task at hand, such as multiplying input data by a sine wave, for example.
Current
FPGAs often have a number of typical computer components as well as the basic components described above. For instance, most include some form of RAM for storage and many have embedded microprocessors.
Our
FPGAs are made by Xilinx, the boards they sit on have 1048 pins for reading input as well as sending signals to various sensors as well as a section devoted to taking the data that has come in, packaging it and sending it over ethernet. To configure the connections used, firmware can be loaded by JTAG or FLASH. Apparently, Xilinx provides a program called Base System Builder (BSB) which can help to connect various components, but is mostly only of use on a board entirely designed by Xilinx, as the configuration will not be available for a custom board, such as our will be.
Each pin on our board maps through a
.ucf file to a
net name. Then, this net name is mapped through a
.mhs file to a
port name, it is this port name that will generally be referenced when dealing with any given pin on the board. The two levels of abstraction provided here are meant to increase portability, a .mhs file written for one board could be moved to another if the .ucf file were properly configured.
Finally, it should be noted that a section of resources can be sectionned to act much like a (comparatively slow) microprocessor, if one is not embedded onto the
FPGA board. This allows one to build up a sort of operating system (OS) which will allow one to run programs which tend to be programmed in .C or VHDL (Very high speed Hardware Description Language)
--
KevinMacDermid - 15 Jan 2007
This topic: Main
> WebHome >
EBEX >
ReadoutElectronics > FPGA
Topic revision: r1 - 2007-01-15 - KevinMacDermid