( DAC 04 Item 3 ) ---------------------------------------------- [ 02/09/05 ]
Subject: Mentor Catapult C
NO SYSTEMC, THANK YOU -- This year Mentor pushed into the C synthesis
arena by completely bailing on the SystemC bandwagon. Their Catapult C
tool reads in untimed C (and some of the non-Object Oriented parts of
C++) and synthesizes it to RTL. No SystemC synthesis here, thank you.
Mentor's "Catapult C" goes from C++ to RTL. Unlike Celoxica's tool,
theirs inserts registers by itself based on constraints. The Mentor
tool is probably not as good at what-if analysis or HW/SW tradeoffs.
They say it's aimed mainly at dataflow applications with minimal
control issues.
- John Weiland of Intrinsix Corp.
I've only used Catapult C. In my limited experience with the it, I've
found it to be useful and user friendly.
- Laura Craig of Lockheed Martin
Comparing Mentor Catapult C and Celoxica Handel C, we've found that for
our ASICs, Catapult C was clearly the better choice. Compared to normal
C/C++, Catapult C contained fewer differences and was much easier to
get running. Handel C also did not support C++.
- Stanley Fok of Gennum Corporation
I heard good things about Mentor Catapult C and Forte Cynthesizer.
Synfora is attempting a middle-of-the-road approach. They present
a interesting challenge especially when it comes to doing ECO, and
timing improvements. Right now it is good for rapid prototyping,
and early system implementations. I don't see it as overtaking
Verilog/VHDL anytime soon.
- [ An Anon Engineer ]
Mentor Catapult C -- done silicon with. Results are conservative but
it does quite well what it does.
Pro: synthesis script has not to be mixed to C code; much cleaner than
mixed codes with pragmas.
Con: limitations currently on interface (quite messy). There are some
limitations on design size, more than competition.
- [ An Anon Engineer ]
Our evaluation 18 months ago was based on using Catapult C on existing
C code. Our C coding style we had originally used was not well suited
to the Mentor synthesis tool because it wasn't written with any
synthesis in mind.
We found the time taken to rewrite the code for synthesis comparable to
the time taken to do a hand translation. We concluded that Catapult C
may be useful for synthesising existing code, but it was not a clear
case. (And in fact, we have not adopted it for synthesising existing C
code).
However, my project is completely new and so I can write my C code in a
suitable style for synthesis by Catapult C. I re-evaluated Catapult C
based on this and have decided to use it. The primary motivation is
labour saving rather than performance or quality of my design.
I have been using Catapult C for about 2 months (including the 6 week
evaluation). So, what are my impressions?
Firstly, to use a British expression, "it does exactly what it says on
the tin". By this, I mean, it does exactly what it says it does:
translate C to RTL. I have co-simulated the RTL produced and found it
matches the C exactly.
The area of Catapult C synthesised designs varies relative to hand
coded RTL. In one example where I can make a direct comparison between
C and actual RTL, the Catapult C version took 2X the area of our hand
coded RTL. Comparing the areas of my synthesised RTL with my original
estimates the Carapult C synthesised RTL is varying between 120% (i.e.
20% bigger) and 25% (i.e. a quarter of the size) of the estimates.
With the 120% area design, the "micro-architecture" (as Mentor calls it)
were different. Changing the "micro-architecture" was my idea not
Catapult C's, but using Catapult C did give my the ability to try many
"micro-architectures" out and showed that I had picked a bad one when I
did my estimate. I may well have gone ahead and hand-coded the same,
bad "micro-architecture", had I been hand coding RTL.
The Mentor Catapult C software is more buggy than most EDA tool's I've
used. I managed to crash it on their training course and have found
one or two more ways to crash it since then.
The GUI is quite easy to use, apart from one feature (called Resource
Allocation), which is very hard to use (and Mentor think so, too, and
are redesigning it).
- [ An Anon Engineer ]
We have just evaluated Catapult C and Celoxica Handel C. For us,
Catapult C is better.
- Gerard Chartie of Alcatel
Mentor Catapult C is the most visible. Other than that I do not trust
C based tools for our purposes. C is a lousy basis for HDL in the
first place.
- [ An Anon Engineer ]
I don't have experience with Forte Cynthesizer and Synfora. My
experience is primarily on Catapult C. I think the major feature
of Catapult C is the ability to schedule different architectures
for different resource and architectural constraints. The syntax
is very much like the ANSI C. This enables quick tradeoff study
from the C level design. This feature is very important for the
implementation of advanced and computational intensive algorithms
in the future wireless systems.
Handel-C may require very detailed hardware specifications in the
C code, which makes the design still difficult to maintain and to
be understood by system engineers. However, the Catapult C style
is very much readable for the system engineers.
- Yuanbin Guo of Nokia
I haven't tried any others but have tried Mentor Catapult C. I was
able to explore a range of architectures to meet different timing
goals from the same C source code in a short space of time. Will
be interesting to see how these tool evolve.
- [ An Anon Engineer ]
After looking at C synthesis tools, we choose Catapult C over Forte,
Synopsys, and Celoxica's DK Design Suite (Handel-C).
The Forte product did not fit from a tool flow standpoint, and its
performance was never evaluated.
Previous experience with Synopsys System C Compiler led us to conclude
it could not be easily used to get results (plus Synopsys dropped
support for the tool).
DK Design Suite and Catapult C both demonstrated they could meet our
development needs, but Catapult C provided better results and required
less hand-manipulation of the input software (a key factor in our tool
selection criteria).
Since selecting Catapult C, we have not been disappointed with the
tool's performance or the technical support we received from Mentor.
Both have met our needs.
- [ An Anon Engineer ]
We have taken a look at both the Forte and Mentor tools. Both look
very promising, especially for datapath designs, but for now we have
no immediate plans to move to C-based synthesis.
On the other hand we have successfully used SystemC for accelerating
the architecting, verification and firmware development on a project,
although we still stayed with RTL for synthesis.
- Robert Cram of Gennum Corp.
I did a simple eval of Mentor's SystemC option for ModelSim. With the
qualifier that I'm a complete novice at SystemC I was pleased with it
overall. Obviously I didn't try anything very challenging, but what I
tried seemed to work. I converted one of our currently used Verilog
modules deep inside a design into SystemC and the simulation tests
used previously still passed. Also Mentor tech support helped me get
an interactive simulation working using SystemC. Inside the ModelSim
transcript window the C program instantiated by the test fixture
processes input commands from the user in real (simulation) time.
I will say I seem to be able to crash ModelSim quite frequently, but it
does this whether I'm using SystemC or not. I plan to recommend
purchasing the SystemC option next year.
- [ An Anon Engineer ]
I had the opportunity to evaluate Mentor Catapult C using a basic DSP
dataflow algorithm. I had to convert the algorithm from schematic form
into C code for Catapult C. I did not have problems with the code
conversion because I was coding C from scratch with the Catapult C
style guidelines in mind. I was not converting existing C code into
the Catapult C style, which was more tedious and not as flexible.
The target timing was not met after optimizations were made using
Catapult C for my design. With more time spent and further extensive
optimizations, timing may have been met.
The Mentor tool functions okay with dataflow-dominant designs. It gives
the user much flexibility in using different techniques to optimize the
design. This is good and bad since much of the work is left to the user.
A Catapult C user needs thorough training to learn the optimization
techniques for the tool and the Catapult C style of coding.
One thing to note is that your initial C code must be written for
hardware only. There is no software/hardware partitioning of the code
with Catapult C. Overall, I feel the tool is in its infancy but has
potential in coming years.
- [ An Anon Engineer ]
Index
Next->Item
|
|