( 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






   
 Sign up for the DeepChip newsletter.
Email
 Read what EDA tool users really think.


Feedback About Wiretaps ESNUGs SIGN UP! Downloads Trip Reports Advertise

"Relax. This is a discussion. Anything said here is just one engineer's opinion. Email in your dissenting letter and it'll be published, too."
This Web Site Is Modified Every 2-3 Days
Copyright 1991-2024 John Cooley.  All Rights Reserved.
| Contact John Cooley | Webmaster | Legal | Feedback Form |

   !!!     "It's not a BUG,
  /o o\  /  it's a FEATURE!"
 (  >  )
  \ - / 
  _] [_     (jcooley 1991)