( DAC 01 Item 8 ) ---------------------------------------------- [ 7/31/01 ]

Subject: Forte/CynApps, C-Level, CoWare, SystemC, Frontier, Y Explorations

THE NEXT GENERATION:  On two levels, Synopsys has been horribly embarrassed
in pioneering SystemC as the "wave of the future".  The first embarrassment
came from the poltical fiasco around getting SystemC out as a supposedly
"independent" standard.  Too many people kept walking out loudly saying
SystemC was a Synopsys scam.  And this happened multiple times!  Ouch.  The
second embarrassment for Synopsys here is, after all this grief, C-Level's
"System Compiler" is beating the crap out of Synopsys's "SystemC Compiler"!!
Three months ago at SNUG'01, Dan Joyce of Compaq reported the first C-Level
tape-out.  Below, I have 6 more designers reporting either that they're
using C-Level "System Compiler" for current designs or that they've already
taped out with C-Level.  In contrast, there's only 1 guy around talking
about using Synopsys "SystemC Compiler" for a design *plus* a lot of other
user letters saying how they tried but couldn't get SystemC to work!  Ouch!

Forte/CynApps' special CynLibs flavor of C classes seems to be capitulating
to the massive marketing arm of Synopsys SystemC.  They're talking about
'merging' their CynLibs with SystemC.

Frontier, Y Explorations, and CoWare seem to be forgotten sideshows here.
Out of the 182 customer responses I got for this report, these 3 companies
were only mentioned once (each).


    "We use C-Level for a portion of our chip design (not the entire
     chip).  We wanted to prove out the process before committing a
     larger piece of the design to this approach.  We've maintained
     this C-coded part of the design and have not had to do any editing
     to the compilied Verilog.  It does work.

     Our current device is currently in final routing & timing closure
     and tapeout is (knock on wood) expected in the next couple weeks."

          - Michael Renault, Onex Communications


    "Although not exactly a freebie, after getting a basketball at the
     C-Level booth (cool give-away), you could walk over to the nearby
     Forte (formerly CynApps) booth and they had ball needles to let
     the air out of the C-Level claims!  (Cute! -- plus it made it easier
     to pack the basketballs to take home.)

          - Cliff Cummings of Sunburst Designs


    "We did an extensive evaluation of C-Level back in March.  Based on
     that we convinced upper management to fund the purchase even though
     money was tight.  We are using C-Level on two designs and plan to
     make a presentation at our next internal design symposium."

         - Harley Pritt, Alcatel USA


    "* CynApps is still alive and well (or so they say), but they've merged
       with Chronology and formed a new company called "Forte".  They're
       marketing themselves as providing major productivity improvement in
       functional verification through system modeling, synthesis, and
       simulation.  I spoke with Dr. John Sanguinetti, the founder of VCS's
       Chronologic, and he felt that the C languages will merge soon.

     * Co-Centric SystemC Studio continues to look impressive as a modeling
       design tool for chip development. Nokia seems to be the biggest user.

     * C-Level has made a lot of progress with their tool.  They have a
       source code viewer that  displays the C code and Verilog code in
       parallel windows: if you select a line of code, the other window
       shows the corresponding line of C or Verilog code.  They also have
       a waveform viewer and database links into the Debussey debugger, the
       industry's best-of-class tool for debugging.  I asked about
       equivalence checking, model checking, in-line assertion checkers,
       and MCL compatibility, and they are working on solutions for all of
       these items -- they're working with Verplex for model & equivalence
       checking, and they've started working with either Real Intent or
       Zero-In for in-line assertion checkers.  They also have an in-house
       Verilog-to-C converter, and at my prompting, they admitted they plan
       to bring it to market as a product.

     C-Level has 4 tapeouts, and they expect 6 more before the end of the
     year.  When we have time, I think it should be fairly easy for us to
     evaluate their tools."

          - [ An Anon Engineer ]


    "We've been working with C-Level Design since early last year and have
     received very good support in using C Level's System Compiler to
     convert our internal C code to Verilog.  The majority of our design
     was coded in C with portions being brought in as 3rd party IP in
     Verilog or internally coded Verilog blocks.  For the most part, the
     C coded blocks have been leading the development of the Verilog
     portions.  The improved simulation performance in C has also allowed
     our design and verification teams to perform much more testing on the
     C coded blocks to this point.

     We are targeting to have parts back this year."

          - Barry Pangrle, Clearwater Networks


    "I read with interest your comments and the mail you've received about
     using C/C++ to design hardware.  We have been using C-Level Design's
     System Compiler.  Our interest was ignited largely because we are *not*
     hardware designers.  We wanted to find a way to take advanced signal
     processing algorithms written in C and run them in an FPGA.  Our
     environment here is a research one, so the main measure is how much
     time is needed to make this implementation step.  Our chip does not
     need to be cheap, or even maximally fast.

     We recently synthesized our first chip with their System Compiler and
     now have a working FPGA.  I suspect that if we had chosen to learn
     Verilog or VHDL instead, we would be at a comparable point.  However,
     I also think that our next design will be more quickly implemented
     using System Compiler than if we had gone the VHDL way.

     One last point -- when using C/C++ for hardware design (i.e. CycleC),
     we were able to simulate 100k gates of logic and 1.0 MB of memory in
     about 3 minutes on a Pentium 2 (750MHz).

     The same design in VHDL took 3 hours."

          - Rob Lynch, Seagate Advanced Concepts Division


    "C-Level caught our attention because of several factors:

      - It provides a mean for us to implement our design in C++
        and benefit from the speed-up in simulation (obviously).
      - It still allows us to have control over the RTL codes produced.
        Guidelines can be set for synthesizable & error-free codes.
      - It is cycle-accurate (very important!)
      - Its method to achieve cycle-accuracy is in line with our own
        coding style.
      - Its style-checker tool provides an excellent coding-style reviewer.
      - No library to build and maintain.
      - Cheap since its simulator is a C++ compiler.

     We first started to evaluate C-Level during DAC'2000.  We purchased
     our first license in 1Q 2001 and since then have implemented a 750
     Kgate design in C++.  Our RTL had been synthesized without error to
     0.25 um -- except for some minor inconveniences in translation.  We
     did not encounter any major bugs in the process."

          - Vincent Nguyen, TRW Space & Electronics Group


    "We've been using the Synopsys SystemC RTL Compiler extensively for FPGA
     prototyping.  Using the same SystemC source for algorithm verification
     and simulation in C environments and for synthesis is extremely
     convenient.  The design flow is as smooth as the conventional
     Verilog-based one."

          - Boris Bobrov, Motorola Semiconductor


    "I don't think a lot has changed since last year w.r.t. C/C++ entry.
     I see no fundamental differences in 2001 vs. 2000 -- except for the
     fact that some vendors were "attempting" to synthesize for low power
     from the architectural level.  This is new and exciting but I'm not
     sure that the companies doing this work really get it."

          - [ An Anon Engineer ]


    "We're using SystemC for behavioral modeling, plus Wilson Snyder's
     SystemPerl extensions.  No commercial tools.  Looked at
     Wiliamette HDL's SystemC linter.  It was missing a lot.  Not
     ready for prime time."

          - [ An Anon Engineer ]


    "My only experience with Synopsys SystemC proved that you need to write
     the tool oriented C description (meaning a limited subset of C.)  My
     attempt to directly synthesize from the C description generated from
     Simulink failed miserably."

          - Vladimir Sindalovsky of Agere


    "I have experience with SystemC -- just using one part of it in the
     Verilog/C++ combined simulation.  I can't imagine using it for system
     level simulation.  Way too slow and overly complex."

          - [ An Anon Engineer ]


    "SystemC (Synopsys)

     The idea here is to do C-based synthesis.  Synopsys proposes that a
     company write its architectural model in SystemC (a superset of C/C++,
     which includes concurrency controls, clock, HW data types).  Then, the
     company would verify the chip in C/C++ because the Csims run so much
     faster than RTL, and then move right into synthesis using scripts that
     are almost completely identical to the normal Verilog ones we all know
     and love.  (You add one new line in place of the normal read from
     Verilog line.)  There are a number of problems with this:

       - Their whole "verify it fast" claim appears to be a big lie, er,
         "Synopsys marketing claim".  If you verify it as normal C-code,
         the sims will run very fast, but that is not the code you can
         synthesize.  You have to go back and add a bunch of wait()
         statements, to infer sequential elements in your code.  When you
         add those, it appears that the simulation time slows to something
         comparable to a VCS RTL sim.  And, since you have to think about
         the timing and add all the sequential elements to get to
         synthesizable code, I don't know how much of a time savings this
         really provides over writing RTL. 

       - Since we don't start fresh on a new chip, but rather have a large
         portion of code inherited from previous versions, the simulation
         speed up would only apply for the new part of the system.  As we
         test a larger portion of the chip, we would have to generate
         behavioral RTL from the C-code and simulate it with our existing
         code.  This could raise issues about whether the generated
         behavioral RTL will match the synthesized code.  For the same
         reason, a backend equivalence check of ECO'd gates to ECO'd RTL
         would no longer work for the mixed code base. 

       - Their "synthesize your architectural simulator" paradigm assumes a
         pretty different verification methodology.  We use the verified
         architectural simulator as a gold model, and diff our hardware
         results against it to find bugs in the RTL.  When the architectural
         simulator becomes the hardware, we'd need a different strategy
         because the verification problem would be different. 

     Plus all gate-level sims have to be done using a co-sim, which would
     be dog-slow."

          - [ An Anon Engineer ]


    "We went through a "C" phase, but are over it for the moment.  We
     extensively use our own homebrew PLI-based C/Verilog co-simulation
     methodology for our SOCs.  I write as much C as I do Verilog.  But,
     Verilog is our HW language.  One senior person had so much trouble
     getting the SystemC package to compile about 9 months ago, that it
     was a real turn-off.  We had some interest in CoWare and tested the
     waters with our Software group.  Their limited time resources (and
     ours) kept us from bying into a new C-based HW/SW coupling.  Everyone
     agrees that HW/SW integration is hard.  Anyway, we are also a little
     old-fashioned and we *like* Verilog and we don't mind doing mixed
     C/Verilog co-simulations."

          - Tom Coonan, Scientific Atlanta


    "CoWare

     Another SystemC advocate, with good toys, a content-free demonstration,
     and all the normal SystemC problems with their tool.  We can't remember
     anything about the tool, even the name (N2C comes to mind), but they
     seemed to have paid a hefty licensing fee for the rights to all
     Dilbert paraphernalia."

          - [ An Anon Engineer ]


    "For what it's worth, we're doing a SystemC based behavoral modeling,
     Verilog RTL code, with a public domain simulator and VCS.  That drives
     Synplicity synthesis for FPGAs, and will eventually drive Design
     Compiler for ASICs."

          - [ An Anon Engineer ]


    "I've looked at Forte, C-Level and SystemC.  None of them are useful for
     getting working large ASICs out the door.  SystemC can compile, but is
     not tuned for anything but exploring possible solutions."

          - Jeff Deutch, Avici Systems


    "We looked at Vera and Specman.  Specman seems a lot better then Vera.
     As neither nicely supports SystemC, and a lot of the benefit of both is
     for "free" with classes etc in SystemC, we bailed.  Not to mention
     $80K/copy would be ridiculous for the 40+ SystemC executables we can
     run at once."

          - [ An Anon Engineer ]


    "I've spent a fair amount of time looking at these.  Without exception,
     every C++ library based approach is total crap.  Pasting together
     netlists manually is lower level, not higher.  Simulation times are
     longer, as a result.  (Higher level HDLs should simulate *faster*.)
     Hardware designers know Basic, and often C, but counting on C++
     experience is a folly.  SystemC is totally the wrong direction to go.

     That said, I think there is much promise in the C-synthesis idea.  The
     C-Level Design aproach isn't bad, but they wont ever generate good HW
     from the full ANSI C definition.  The SpecC group at Irvine University
     is on the right track.  Start with a C subset, and adding primitives to
     the language to make it a good hardware definition language.  Give the
     user an environment where you can move code from hardware to software
     and back, and have cycle level control.  The advantage over SuperLog
     (which is a nice language that has my support) is that your embedded
     C programmers will be able to get involved up-front."

          - Bill Cox of VI ASIC


    "Forte

     Forte was created by a merge of Chronology and CynApps.  As near as
     I can tell, they make a particularly useless SystemC verification
     tool which translates C code to behavioral RTL for use in simulation.
     Their booth guy was the most laughably clueless one we met at the
     show, which is why I am not sure exactly what their product does."

          - [ An Anon Engineer ]


    "I like CynApps better than SystemC.  Didn't see too much new with
     the tools."

          - [ An Anon Engineer ]


    "Forte Design / Cynapps also looked interesting, since they are
     supporting C++, as well as Rave, if we wanted to migrate to an entirely
     new environment.  Unfortunately, this would make it difficult to
     provide our simulation environment to our customers, due to licensing
     issues."

          - [ An Anon Engineer ]


    "Y Explorations Inc. (yxi.com)

     They have a tool that allows designers to code a mix of behavioral
     code, RTL code and IP blocks, and this year it takes C as well,
     which it synthesizes into RTL. The designers get a list of functions
     or procedures for which cores are available, and can add their own
     behavioral functions. The really interesting thing is that they
     automatically build a shell around your core to put it in its
     environment. They will vary buffer sizing, add registers, and even
     modify state machines to allow a core to be inserted. They also
     generate the Synopsys constraints for the IP.

     The tool also understands that arrays in your code represent
     memories, so it automatically creates the state machine to control
     the memory when you put an array in your code. They say their tool
     is superior to creating Synopsys DesignWare because it's easier to
     describe a part, it accepts hard cores (cores where you are buying
     a layout) and multi-cycle cores, and it does all the glue logic and
     modification of state machines for you. They say it is superior to
     instantiating an RTL model of your core because it does the glue
     logic on it's own, modifies state machines as needed and generates
     Synopsys constraints automatically.

     My perception two years ago was that their success would be dependent
     on getting lots of IP vendors to describe their cores with YXI's tool.
     So far, they have been unsuccessful in that. The bulk of their
     customers are in Japan and most of them are using it to describe
     their own design blocks for internal reuse, so they are in some way
     competing against Synchronicity and EDAptive computing, although
     their tool is quite different."

          - John Weiland, Intrinsix


    "To make this kind of switch a full set of tools will be needed.  We
     evaluated and rejected SystemC Compiler for the time being.  We
     really like what Synopsys is planning, but we will wait until they
     deliver.  We looked at Forte and thought they had a better design and
     implementation than SystemC, but we view SystemC as the most likely
     defacto standard.  We're planning to move to SystemC.  If Synopsys
     delivers on SystemC Compiler, SystemC will become the defacto.

     We have looked at CoCentric, but again, it does not yet meet our
     needs because it is not yet well integrated with SystemC.  Once it
     is integrated, we will eventually take a good look at it.

     We looked at a Y Explorations presentation and had some of the best
     minds in our company there.  The general consensus was "wow, that's
     a really innovative approach.  I wonder if it will work.  Let's look
     at it after they have 5 or 10 tape outs".  It's too risky for us to
     look at until some of the big guys show it can work."

          - [ An Anon Engineer ]


    "Frontier's AR|T Libraries are definitely good for fixed point
     manipulations -- but they are one of the myriad of companies trying
     to go down to the gate level with no solid underlying logic synthesis
     or timing engine.  I just don't like it."

          - [ An Anon Engineer ]


 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)