( DAC 04 Item 2 ) ---------------------------------------------- [ 02/09/05 ]

Subject: Forte Cynthesizer

THE JAPAN CONNECTION -- While SystemC synthesis is considered playland
experimental stuff for most U.S. design teams, in Japan it's slowly being
considered as a serious design methodology for quick-to-market consumer
electronics designs.  No, SystemC synthesis is not mainstream yet (hardly),
but it's not pure pie-in-the-sky either.  Konnichiwa, Forte!


    We are a Japan-based design consulting firm that supports various
    large design activities with major Japanese electronics companies.  We
    have been looking into higher level or behavioral level synthesis in
    chip designs for years now, and currently use Forte's Cynthesizer.

    At first, there was Behavioral Compiler from Synopsys, and then
    others.  None of these tools produced satisfactory RTL code from a
    C-language source.

    From our point of view, the following points are important in higher
    level synthesis tools:

      1) Support of pipelined design
      2) Ease in defining/creating interfaces to surrounding blocks
      3) Tool processing speed and throughput
      4) Quality of design, i.e. Cynthesizer produces compact circuits.

    We were very surprised to find Forte Cynthesizer, because it cleared
    all of our 4 criteria.

    Cynthesizer takes SystemC models and automatically generates RTL code.

    We specify constraints for performance, clock speed, area, and target
    semiconductor technology library, so that Cynthesizer can produce
    more optimized RTL.

    We are now working with customers to actually use Cynthesizer in the
    design process.  With one customer we have coded up MPEG in SystemC.
    From this source we were able to get working RTL code from Cynthesizer
    within 2 months.  Our simulation speed was about 300 times faster.  We
    also found debugging at higher level of abstraction in SystemC to be
    quite productive... it increased overall debug-simulation cycle
    throughputs.

    Our Video/MPEG related decoder:

        - 7000 lines of code
        - Resulted in 500K gate equivalent
        - Roughly 1/5 of RTL lines of code
        - simulation ran 100x faster
        - design time was roughly 1/2 of RTL design cycle

    Areas where Cynthesizer still can improve:

    1) From a 3-D matrix description, we were unable to generate multiple
       memories.  Instead, a single memory was generated.  Also, we can't
       quite synthesize memory w/pipe-line storing capability.
       Cynthesizer seemed to add extra cycles during memory access, and
       we had to specify the matrix if we didn't want memory generated.
       Finally, Cynthesizer is limited to pipe-lined memory access

    2) SystemC coding method and styles are being worked out, thus it is
       not straight forward for design engineers to learn correct coding.
       Also interface issues to SystemC are not completely clear cut.
       You can't synthesize memory interfaces, or CPU interfaces that
       have been connected.

    Beyond just knowing SystemC, design engineers considering using
    Cynthesizer must able to anticipate how coding affects resulting RTL
    code... this isn't that much different from current RTL synthesis.  But
    because timing and cycles are abstracted, more detailed knowledge of
    how resulting RTL is generated might be required. i.e. there is more
    responsibility for the users.

        - Hiroyasu Hasegawa of HD Lab, Inc.


    Forte sells a tool that does from SystemC to RTL.  The tool inserts
    registers based on a separate constraint file.  In order to know how
    much logic it can do I a given period of time, it characterizes the
    library for common arithmetic blocks.  It also has a data path
    synthesis tool and can characterize some parts on the fly.

        - John Weiland of Intrinsix Corp.


    Cynthesizer first translates behavioral SystemC (an untimed algorithm)
    to RTL SystemC, and then it translates RTL SystemC to Verilog RTL for
    logic synthesis.  Beyond this, it automatically creates multiple RTL
    implementations and optimizes them according to designer-specified
    constraints/requirements, e.g. area, performance, clock speed, and
    target semiconductor technology library.

    This allows architectural exploration and can both aid in more thorough
    implementation exploration, as well as potentially saving a great deal
    of time.

    Cynthesizer analyzes the functionality of the algorithmic design and
    identifies all of the data and control dependencies.  It automatically
    generates a finite state machine to control the flow of logic between
    a set of functional units that have been optimally scheduled to meet
    constraints, such as adders and multipliers or much more complex
    datapath components.  It constructs RTL structures which keep the
    variable FSM timing off of the critical path and help with timing
    closure.  It can also automatically unroll loops, flatten memories,
    pipeline the design, and perform a host of other RTL design techniques
    automatically.  It also has an integrated datapath optimizer for high-
    performance, low-area parts to further optimize the results.

    The original behavioral algorithms are supposed to run anywhere from
    10x to 1000x faster than typical RTL simulations speeding verification.
    This is consistent with what I have actually experienced with SystemC
    models of modestly sized systems.  To validate the generated RTL from
    Cynthesizer, Forte claims that the tools will automatically manage the
    simulation of each RTL implementation with the original testbench
    without changes.  This seems important given that the RTL
    implementations can be generated very quickly.

    Forte also claims that their quality of results exceeds hand-coded
    design -- specifically with timing & area optimization.  This has been
    a problem with behavioral synthesis in the past.  For example, in the
    demo Forte showed an imaging algorithm used in a consumer electronics
    application.  The tool quickly generated multiple RTL implementations
    with thousands of lines of RTL each from the functional algorithm.
    Using the exploration and optimization features, the tool was able to
    reduce the area by 25% and improve the performance by more than 10% as
    compared to the original hand coded designs.  If this is true, it has
    great potential.

    No claims were made that this was the answer to all our behavioral
    synthesis problems.  In fact I saw no evidence that the technology
    would be much help for the large-scale, control dominated systems on
    which I spend most of my time.  However, it was abundantly clear that
    the tool had a sweet spot where it did an excellent job: algorithms
    for complex data transformation of the kind that turn up again and
    again in consumer products.

    More speculatively, while RTL-coded IP is sometimes very hard to figure
    out, let alone to adapt, reshape and re-optimize, having it expressed
    in SystemC with a tool that can transform it to meet SOC-level
    constraints while allowing for technology factors, may be a very
    powerful means of delivery.

    In an ideal world, I would like to see a constraints and estimators for
    power in Cynthesizer.  Additionally, more emphasis on memory support is
    needed it.

    The other problem is that SystemC-based flows currently lack good
    tools for debugging, especially for bugs caught late in the flow that
    need to be correlated with front-end design descriptions, constrained-
    random verification and other really important flow hooks and point
    tools.

        - [ An Anon Engineer ]


    Forte's Cynthesizer can actually convert high level coding to RTL.
    This will help in terms of verification.  We do have some issues while
    verifying SystemC and C++ behavior models.  I think their tool will
    help close the loop with System models.

    One weakness: when we convert from behavioral model to RTL, how can
    we do formal verification?  How about cross-clocks domains, i.e.
    asynchronous clock domains; how will Cynthesizer handle that scenario?
    I don't think Forte  ever mentioned this.  Our design has a lot of
    cross-clocking path.  So I'm curious and would like to know."

        - Hien Nguyen of Skyworks Solutions


    Forte Cynthesizer excels at exploring design tradeoffs.  Given a range
    of design parameters it will provide area and speed numbers.  For
    products with very short design cycles where designers are not looking
    to wring the last few % out of a design it could be useful.  It would
    be a good tool for us if it supported a greater subset of C++ and could
    explore power.  And cheaper would always be better.

        - Greg Tumbush of Starkey Labs


    We are evaluating Forte Cynthesizer, Mentor Catapult C, and Synfora.
    No final mark yet.

        - [ An Anon Engineer ]


    Looking at all.  Forte has the lead, Celoxica is closing in fast, and
    a dark horse will soon be entering the race that will surpass all.

        - [ An Anon Engineer ]


    I had a chance to use Forte's Cynthesizer and was impressed by the
    results.  The area/latency results I obtained clearly showed that it
    can create efficient designs in less time.

        - Gaurav Singh of Virginia Tech


    Forte Cynthesizer -- done designs with this tool, but no silicon.
    Forte claims a lot of things (very marketing aggressive), however they
    still need to work a little bit to have some stable results on large
    blocks.  Their "C + pragmas" mixed description is very messy.

        - [ An Anon Engineer ]


    Just looking at these tools right now.

        - Himanshu Bhatnagar of Conexant


    We are looking at those tools.  Concerning Celoxica, we think
    that this is a much more HW coprocessor approach, based on a PC
    architecture with a closer look to the HW resources.

    From our point of view, Forte allows a better "platform independent"
    approach staying closer to the standard SystemC approach.

        - Jordi Carrabina of the University of Barcelona

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)