![]() |
![]() |
Software & Electronic System Development |
|
FPGA Based Processing EnginesProcessing high bandwidth signals in real-time
There are a number of problems to address when processing high bandwidth signals in real time. One of these is the actual data processing speed another is the other is the speed of data communications. The AstroFFT Digital Spectrometer System makes use of the latest generation of Field Programmable Gate Arrays (FPGA's) to perform the real time data processing required. In the case of each AstroFFT processing engine, the input data enters at a rate of about 200 MBytes per second and the 4096 point, 14 bit, FFT algorithm together with power calculation and integration needs to be performed within 86 microseconds. FPGA's for Data ProcessingA Field Programmable Gate Array (FPGA) consists of a large array of low level electronic gate blocks, each of which can be configured in a number of ways. These gate blocks are interconnected by a large switched matrix. The FPGA's configuration, including the gates interconnection scheme, can be dynamically loaded from a host computer system. This allows a custom hardware design to be loaded, at system run time, to perform a particular task.Today's FPGA's have relatively slow clock speeds compared with general purpose micro processors, in the order of 300 MHz. However, they are inherently highly parallel, both in terms of processing and internal data communications. It is this parallelism that allows them to perform intensive calculations at a very high speed. The size of FPGA's is increasing all of the time. It is now possible to get devices with up to around 8 million effective low level gates allowing quite complex tasks to be performed. AstroFFT Processing EngineThe AstroFFT processing engine has been designed for performing the work of a fast real time spectrometer using a FFT algorithm together with power calculator and integrator.
The processing engine has two analogue signal inputs and one digital
clock input. A large number of digital I/O lines are available for interconnecting
FPGA engines or for other purposes. Each analogue signal is passed through
a low pass anti-aliasing filter to a fast 14 bit analogue to digital convertor.
The digital signal streams from both analogue to digital convertors are
passed through a "glue logic" FPGA to the main processing FPGA. In the
case of the AstroFFT system the "glue logic" FPGA's function is to provide
master clock selection and remove DC offset from the analogue to digital
conversion stages. There are a large number of free gates within this FPGA
that could be used to pre-process the data in other ways.
Other Uses of FPGA based Data ProcessingThe FPGA based processing engine can be used in many other application areas where a high bandwidth signal needs to be processed in real time or at a fast rate. In comparison with general computer orientated processing, the coupling of the data source directly to the FPGA removes the I/O bottle neck of the PCI bus. The highly parallel nature of the FPGA allows those algorithms which are parallel by nature, to be efficiently implemented on the hardware available.FPGA Algorithm DevelopmentThe development of algorithms to run efficiently on an FPGA is currently difficult. It requires both software and hardware skills. Normally the algorithm has to be written in a Hardware definition Language, such as Verilog or VHDL. Although 'C' compilers are becoming available, the actual structure of the algorithm has to be written in a way dedicated to hardware used to achieve the high level of parallel performance available.It is however, possible to make use of "Firmware cores" that have already been developed and integrate them into a more complex system. It is also possible to just pre-process the data on the FPGA leaving the host system to process the reduced bandwidth result using conventional software algorithms. Typical Uses
Further Details on AstroFFThttps://portal.beam.ltd.uk/support/astrofft
|
|||||||||||||||||||||