C to FPGA - Accelerate C Applications on your SGI® RASC™ RC100 Blade!
SGI presents CoDeveloper, created by Impulse Accelerated Technologies, an SGI partner. CoDeveloper lets engineers quickly prototype, accelerate and deploy C algorithms on RASC FPGAs. This method enables rapid development of accelerated, parallelized algorithms and computational processes, optimized for FPGAs and the SGI® RASC™ RC100 blade. Common application domains include: Image processing/DSP, Military/Scientific and Financial Computing.
The software is compatible with Microsoft Visual Studio®, Eclipse®, Metrowerks CodeWarrior™, GCC, and GDB. In most cases, programming can be completed within the current development environment. The CoDeveloper suite consists of the CoBuilder™ RTL generator, CoMonitor™ Application Monitor and the CoDeveloper Application Manager™. It is built around Impulse C™, a C library that extends standard ANSI-C. Impulse C is designed specifically to structure and translate code to communicate effectively and efficiently with programmable hardware devices.
How the Process Works
- An application or algorithm written in C is analyzed for bottlenecks
- The bottleneck segment is taken out of the main code and ported into CoDeveloper using a subset of ANSI-C
- CoDeveloper automatically parallelizes the code and optimizes it for the FPGA
- CoDeveloper converts the ANSI-C code to VHDL, a language that can interact with the FPGA
- Final translation into the bit-stream used to configure the FPGA chip is completed with Xilinx ISE™.
In the end, the bottleneck process is separate from the main code and running in a highly parallel and optimized fashion across multiple FPGAs, linking the result data seamlessly back into the original application. Implementations have seen performance improvements from 10x to 60x using FPGA technology.
About Impulse
Impulse Accelerated Technologies, Inc. was formed in October of 2002. The company's mission is to serve the needs of software and hardware developers through the development and distribution of software-to-hardware compilation and verification tools, through user education and through ongoing customer support. Impulse products are used worldwide for applications that include embedded systems, video and image processing, digital signal processing, security, communications and high performance, FPGA-accelerated computing.
Related Information