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

Synthesis tool eases ANSI C code generation

Posted: 06 Dec 2006 ?? ?Print Version ?Bookmark and Share

Keywords:Catalytic? synthesis tool? synthesis tools? Matlab? MCS tools?

Catalytic Inc. is rolling out a synthesis tool that converts Matlab code into ANSI C code. By automatically generating C, the MCS tool claims to eliminate the traditional process of manual translation.

Produced by The Mathworks, Matlab is widely used for DSP algorithm development. Previous offerings have promised links between Matlab and RTL code. Catalytic, however, is taking a different approach by focusing on C language generation.

Proclaiming a "breakthrough" capability aimed at algorithm developers, the new offering leverages C code generation technology developed for Catalytic RMS, an existing tool that accelerates floating-point simulation in Matlab. The new MCS offering requires RMS, noted Niraj Shah, product marketing manager at Catalytic.

"The core technology of our company is understanding Matlab and generating different flavors of C code," Shah said. "RMS is geared to the acceleration of Matlab, and the deliverable is a compiled module. For MCS, we put a lot of effort into generating clean, readable ANSI C code that users can integrate into their applications."

The target for MCS is applications developers, "the people who live and breathe in Matlab," Shah said. As of today, he said, there's no way to get out of Matlab and deliver an algorithm to other design groups in the user's company. Most often, Shah said, Matlab designers resort to a manual translation to C.

Catalytic MCS' underlying technology converts Matlab, a dynamically typed vector language, into C, a compiled language. Variable and function names are reused from the original Matlab code, and the generated C code mimics the Matlab code file structure and function hierarchy. Original Matlab code can be interleaved as comments in generated C code for further documentation of the algorithm. A graphical user interface provides viewing and cross-probing between Matlab and C code.

It should be noted, however, that MCS synthesizes a subset of the Matlab language. Shah said the subset focuses on the "computational" parts of Matlab, and includes all the common data types, all the operators, and a large number of built-in functions. It doesn't include the testbench, visualization or plotting capabilities of Matlab.

Shah said that Catalytic hasn't run into any limitations with MCS, and that the tool has successfully handled up to 10,000 lines of Matlab code. He said it requires no proprietary libraries or specialized block sets, and works with both fixed and floating point.

Aside from the original Matlab code, MCS requires that the user identify the types of primary inputs that are used by the algorithm. That's because Matlab is an interpreted, untyped language. Catalytic provides a set of pragmas that provide this information. After that, it's all automatic, he said.

Catalytic MCS is available now starting at $25,000 for a five-user license.

- Richard Goering
EE Times

Article Comments - Synthesis tool eases ANSI C code gen...
*? 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