( ESNUG 480 Item 2 ) -------------------------------------------- [04/01/09]

Subject: ( ESNUG 479 #4 ) Synfora PICO vs. CatapultC/Cynthesizer/CtoSilicon

> A total of 820 engineers responded, and below is what they told us.  Since
> they could pick 2 answers, the total is ~200% rather than 100%.
>
>      "What are the 2 biggest reasons to use High Level Synthesis?"
>
>                 Faster time to RTL :  ######################## 64%
>           Faster verification time :  ################## 49%
>        Fewer engineering resources :  ############ 31%
>                         Fewer Bugs :  ####### 19%
>         RTL better than hand-coded :  ##### 14%
>          Faster ECO implementation :  ### 8%
>     Better product differentiation :  ### 7%
>                              Other :  ## 4%
>
> The results?  Almost 2/3rds (64%) recognized that high level synthesis
> will get to RTL code faster.


From: Vinod Kathail <vinod.kathail=user domain=synfora hot mom>

Hi John,

Like Shawn's CatapultC users, our PICO Extreme users have also indicated
that verification is an important part of their C synthesis flow.  They tell
us that synthesized IP has fewer bugs than hand-written RTL.  For example,
in a joint tutorial I did with ST at DAC last year, ST stated that they
found 5 bugs in a design done using PICO whereas they found 30 bugs in a
hand-written RTL design of a similar complexity.  

Also, users like that having C as their combined design and verification
language means running simulation is fast and virtually free.  That is, it
helps cuts back on needing more of those pricy VCS/NC-Sim/ModelSim licenses!

Just to clarify, our Synfora Pico Extreme competes directly with Mentor's
CatapultC, Forte's Cynthesizer, and Cadence's C-to-Silicon tools.  For us,
"synthesis" is taking ANSI C and converting it to Verilog RTL.  (To get to
a gates, you must run our RTL through Design Compiler, RTL Compiler, or
Blast Create.)  Our big claim to fame is that PICO can do some amazing
architectural optimizations at the C level on complex, multi-block designs.

Here's also what our users told us:

  1.) Power, Performance and Area (PPA) are equally important.

  2.) Hierachical Capacity is everything.  It turns out mixing synthesized
      RTL with your system can be a source of bugs, and so our users
      want PICO to synthesize as large a design as possible.   The plus
      is you get better PPA because if PICO has visibility over a larger
      context, it can find and exploit more optimizations.

       - PICO is the only tool with Recursive System Composition (RSC),
         which allows its compiler to manage arbitrary levels of
         hierarchy in a design.   The user can specify a procedure as
         a building block, and the compiler will build it as a separate
         module.  We call these blocks TCAB's; Tightly Coupled Accelerator
         Blocks.  The compiler will then automatically allocate and
         schedule TCABs at the next level of hierarchy.  (This is a very
         intuitive and familiar design style to hardware designers.)

       - PICO also has some advanced parallelization abilities based on
         decades of research at HP Labs.  It can automatically extract
         the correct multi-threaded hardware from single-threaded C
         application in order to meet your target performance.

      As far as we know, no other C/SystemC synthesis tool on the market
      can do either of this.  Mentor's CatapultC allows you to build block
      level designs, and then allows you to stitch them together using
      their "SL" product.  This limits your designs to a single level of
      hierarchy.  Also, as far as we know, CatapultC has no inter-block
      parallelization and optimization capabilities.

      SystemC-based tools like Cadence C-to-Silicon and Forte Cynthesizer,
      on the other hand, rely on the designer to explicitly express block
      interaction using constructs provided by SystemC.

   3. You must automate everything - the tools must do most of the work for
      the user.  Here's what PICO does automatically, which I believe
      CatpultC, C-to-Silicon, Cynthesizer can't do.

       - PICO has a "C linting" phase to automatically detect common errors
         like bit-width overflow, uninitialized variables and out-of-bounds
         array access.  I believe the other C synth tools make you debug
         these data errors at the RTL level, which is very time consuming.

       - There are certain aspects of the design that you cannot verify at
         the C level e.g., the impact of internal stall cycles on the final
         result.  So we added "perturbation checking" at the RTL level,
         which automatically extends test vectors to verify that internal
         stall cycles don't affect your result.  The user doesn't have to
         do anything.  It's automatic!

       - Users can explore the performance of their design with alternate
         FIFO sizes and memory porting in PICO.  This lets them do tradeoffs
         between design size and performance.  Again this can be very time
         consuming to do manually, and I don't think Mentor/Forte/Cadence
         does this.

John, our customers have told us that they want a C synth tool that does BIG
designs.  Having a Mentor two-pass block-level/system-level approach means
that verification is messed up plus you never get system-level optimizations.
(Sorry CatC.)  

Legacy dictates that ANSI C/C++ is the right language for design because
that's where most customers' algorithms start.  Having to do an ugly rewrite
into SystemC sucks.  In addition, SystemC verification is slow (compared to
C/C++) -- sorry Forte Cynthesizer; sorry Cadence C2S.

The acid test is to take a real world design like a motion estimation engine
or a multi-standard video Deblocking filter and see who is left standing.

It'll be PICO.

    - Vinod Kathail
      Synfora, Inc.                              Mountain View, CA
Join    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)