Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > Embedded

Software-centric path to FPGAs

Posted: 16 May 2007 ?? ?Print Version ?Bookmark and Share

Keywords:embedded systems? FPGA? software-centric path?

Pellerin: As FPGAs are applied with greater and greater levels of system integration, there's still a need for hardware design tools and methods at the margins of the applications.

When low-cost commodity FPGAs broke through the million-gate level a few years ago, they became serious contenders for processing-intensive embedded applications. In fact, the largest available FPGAs are now deployed for high-performance computing applications, in areas as diverse as medical image processing, life sciences and financial computing.

In such environments, the traditional methods of programming FPGAs using HDLs or schematics are hitting some natural hurdles. Application developers creating highly parallel, pipelined algorithms and systems may or may not have the skills, time or inclination to use hardware-oriented design methods. For this reason, software-to-hardware design tools and methods are increasingly being added to the application designer's toolbox.

In the world of embedded systems, many products already include one or more FPGAs as part of their design, often used alongside discrete processors, DSPs and other components. Embedded system design teams doing value engineering of such applications have strong motivation to integrate the software aspects of the system into a higher-density FPGA.

In such an integrated system, software applications running on the embedded processor can communicate directly with application accelerators running as hardware in the FPGA fabric. Tools such as Impulse C allow the hardware accelerator to be described in C, then optimized and generated as hardware processor peripheral, reducing or eliminating the need to write low-level HDL.

I'm not suggesting that HDL design methods are obsolete. Quite the contrary, as FPGAs are applied with greater and greater levels of system integration, there's still a need for hardware design tools and methods at the margins of the applications. Certain algorithms may also be easier and more efficient to implement using HDLs. We can therefore expect that HDLs and software-based approaches will coexist for quite some time.

Good news
Of course, the process of moving from software development for traditional processors, to SW/HW development using FPGAs does bring with it some challenges. C code originally intended for a standard microprocessor is optimized for serial processing, and has probably been hand-optimized for the characteristics of that target. When moving such an application to the FPGA as a mixed SW/HW algorithm, there will be a certain amount of re-factoring required to take advantage of the FPGA resources and make the best use of hardware-level parallelism. The good news is that these types of optimizations can now be accomplished in the context of C-language programming, without requiring intimate knowledge of the FPGA hardware.

In conclusion, HDLs are great for hardware-oriented FPGA design, and will remain the preferred method of entry for the majority of such applications for the foreseeable future. Emerging C-to-hardware tools complement and extend the reach of HDL tools, by allowing software application developers to be part of the FPGA design process. This extends the potential applications for FPGAs, which of course attracts even more software-oriented FPGA designers. A virtuous cycle indeed.

- David Pellerin
Chief Technology Officer
Impulse Accelerated Technologies Inc.

Article Comments - Software-centric path to FPGAs
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top