What's an FPGA and why do you need one?
Field-programmable gate arrays (FPGAs) have been growing in functionality and use over the years, yet according to a recent survey by UBM, many system designers avoid the devices due to perceived difficulty, expense or simple unfamiliarity. At the National Instruments (NI) Technical Symposium, held in Sydney in October, NI Senior Program Manager Arun Veeramani sought to set the record straight.
Definition
Veeramani explained that an FPGA is essentially a chip with programmable logic cells and programmable interconnects. The user writes a software code, and this code is downloaded onto the FPGA to make the hardware behave in a way that it will execute the user’s desired program. As Veeramani noted, “There is really no operating system - everything is running on hardware.”
He continued to say that FPGAs, which originated as programmable logic blocks, are typically thought to be useful for Boolean logic but little else. “I think that is like thinking cell phones are used to make calls,” he said, stating that FPGAs have evolved into full systems on chips. He referred to the Zynq chip, recently introduced by Xilinx, which features an ARM dual-core processor on the FPGA as well as “a bunch of DSP (digital signal processing) slices that can do the hard-core DSP operations”.
A new way of thinking
Despite this expansion in functionality, many people continue to be wary of FPGAs because they find them difficult to code and program. Veeramani admitted that FPGAs work very differently to writing an application for a software-based system - especially if you’re used to traditional processors.
“With a processor, you never really run out of processing power,” he said. “With an FPGA, you only have so many gigs, so many logic slices. And so you have to optimise that and think of those things as well. Am I making use of the resources that are available correctly, in an optimised manner?”
NI acknowledges that FPGAs require a whole new way of thinking, which is why the company offers LabVIEW RIO Architecture. Programmers who are familiar with LabVIEW for Windows will find the tool particularly easy to use, with Veeramani saying it allows you to easily manage FPGA resources; develop, compile and deploy your application; and simulate and debug your application. Furthermore, it will take your code and optimise it for you, thus avoiding the problem of limited processing power.
“We do all the heavy lifting for you,” said Veeramani.
So once you know how to use an FPGA, what are the actual benefits? According to Veeramani, it comes down to three key factors.
Futureproofing your design
Veeramani referred to FGPAs as “custom COFS (commercial off-the-shelf) architecture”, enabling users to adapt to changing requirements; change, enhance or remove functionality; and re-use hardware and code from project to project. This is unlike standard COFS architecture, where you’re more or less stuck with the functionality you buy from the vendor.
“It essentially gives you insurance after you go into a project,” Veeramani said. “It’s almost like an FPGA is a Lego block, and you can take that and you can build a bridge, or you can build a tower. Sometimes a customer will tell you that he wants a bridge, but really he wants a tower.”
Maximising reliability and determinism
Veeramani stated that most computers are “slave to the operating system and what it does”. An FPGA, however, relies solely on hardware - and is more reliable as a result.
For example, said Veeramani, if you wanted to calculate something through a processor-based device, “it goes through the I/O, the hardware, goes through multiple layers of software, before you actually get to the application software, do the computation, do the calculation, and then get back out” - a process which has a response time of around a microsecond. With an FPGA, however, the calculation moves directly from the application software to the hardware and the response time is at the nanosecond level.
Enhancing performance and improving functionality
Finally, FPGAs can enhance the user’s current performance, providing improvements such as a fast closed-loop control or stimulus/response test, inline processing and customisation. Veeramani added that the devices can also be used to co-process with your existing processor, if some operations need to be offloaded.
“We all know that in a processor, even though multiple programs are running, nothing is running in parallel,” he said. “It’s running it in chunks; it’s running it in series. Whereas in an FPGA, you get the dedicated resource, that dedicated slice, and so you’re truly running it in parallel, and you get the performance benefits as well.”
Conclusion
These factors will provide benefits to a variety of applications, with Veeramani saying FPGAs are suitable for a broad range of areas such as testing, data acquisition, and embedded hardcore control and monitoring. The technology can even be used to complement a user’s existing PLC-based system, perhaps adding more functionality or making some parts of the system more efficient.
“In essence, what we are trying to say is: use FPGAs when needed,” Veeramani said.
“We think it’ll allow you to do more things, be more flexible and to do more critical things with your application.
“Your imagination is the limit.”
Faster space communication with record-sensitive receiver
Researchers have developed a new system featuring a silent amplifier and a sensitive receiver,...
New record set for wireless data transfer
Researchers from University College London have set a new record for wireless transmission speed,...
Electrically modulated light antennas for faster computer chips
Researchers have achieved electrically controlled modulation of light antennas, paving the way...