C-based co-development environment rolls for FPGAs - Embedded.com

C-based co-development environment rolls for FPGAs

SANTA CRUZ, Calif. — Startup Impulse Accelerated Technologies Inc. this week will roll out its CoDeveloper product, which offers a hardware/software co-development environment for FPGAs with embedded processors. The tool lets designers develop C-language algorithms that are compiled into FPGA hardware or embedded software.

CoDeveloper uses the vendor's Impulse C libraries to support multiple, parallel processes and includes a hardware compiler that generates synthesizable VHDL for portions of the design destined for hardware. The tool supports FPGAs with Altera Corp.'s Nios and Xilinx Inc.'s MicroBlaze embedded processors. It also generates hardware/software interfaces.

Impulse Accelerated Technologies (Kirkland, Wash.) released its first product, the CoValidator VHDL simulator. The company's technology is partially derived from the open-source Streams-C compiler licensed from Los Alamos National Laboratory.

Platform-based FPGAs with embedded processors are gaining momentum, said David Pellerin, co-founder, president and chief technical officer of Impulse. But HDL-based tools often aren't the best way to support them, he said.

“These platforms are very compelling for the acceleration of software algorithms,” Pellerin said. “But the typical software engineer does not want to use low-level hardware design methods to express software algorithms. And hardware engineers don't want to deal with hardware/software interfaces.”

Thus, Pellerin said, CoDeveloper is aimed at both software and hardware engineers. Hardware engineers will probably hand-tweak the VHDL code that the tool generates, while software engineers will not, he said.

By allowing designers to develop C-language algorithms, CoDeveloper enables a “10 to 1” productivity gain compared with HDL design entry, Pellerin said, because designers don't need to think in terms of hardware concepts such as register boundaries or clock cycles.

But there are trade-offs, he acknowledged. “Certainly, the VHDL designer can do a better job at hand coding for efficiency,” Pellerin said. “We are certainly larger in area, but in terms of performance we're very close. A lot depends on the quality of the C code.”

The Impulse C libraries leverage the “streams-based programming” approach provided by the Streams-C compiler. They add library functions to standard C that let users express parallel applications. Specifically, they support multiple processes that are independently synchronized and that communicate though data streams.

Also included with the Impulse C libraries are platform support packages for the Nios and MicroBlaze processors that make it possible to compile C code with multiple processes directly to the processor.

Pellerin said Impulse decided against using SystemC in favor of the Impulse C library approach. “SystemC is a large, complex language for high-level systems design,” he said. “It's appropriate for ASICs, but for the embedded-systems programmer who wants to use C, SystemC is far too complex.”

Once an algorithm is created, designers can simulate it using such standard tools as Microsoft Corp.'s Visual Studio or Metrowerks' CodeWarrior. During simulation, CoDeveloper monitors Impulse C applications and identifies communications bottlenecks, such as overused stream buffers.

A user then determines which functions are implemented in hardware and which in software. “We really believe that giving the user control over that is very important,” Pellerin said. Users tag processes aimed at hardware with function calls. Processes that are not tagged for hardware are fed into the Altera Nios or Xilinx MicroBlaze compilers.

The hardware compiler then generates synthesizable VHDL, which can be fed into Altera or Xilinx design environments, or into third-party synthesis tools. CoValidator is included as a built-in VHDL simulator. In the future, Pellerin said, Impulse will add Verilog support to its tool.

Users can purchase either CoDeveloper for Nios or CoDeveloper for MicroBlaze. The former requires Altera's Quartus II and SOPC Builder software, along with a reference board. The latter requires Xilinx's Platform Studio and a reference board.

“We've had excellent support from both Altera and Xilinx in our launch of this product,” Pellerin said.

CoDeveloper for either Nios or MicroBlaze is available now for $4,995 for a permanent license or for $1,995 for a one-year license. A universal version, supporting Nios, MicroBlaze and other processors to be announced, costs $8,995 for a permanent license.

Information about Impulse Accelerated Technologies Inc.'s CoDeveloper product, along with free 30-day evaluation licenses, can be found at the Impulse Web site..

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.