( DAC 03 Item 21 ) ----------------------------------------------- [ 01/20/04 ]

Subject: Synplicity Synplify & Identify & Certify

THE FPGA KINGS:  With Xilinx and Altera giving away free software, it always
amazes me how successful Synplicity is.  They have a fantically loyal user
base who jealously defents their Synplify FPGA synthesis tool and they've
branched out nicely into other FPGA niches with Identify (Bridges2Silicon)
RTL debugging and Ceritify for FPGA partitioning.  Synplicity should be
flattered that a new start-up, Hier Design, is going up against their Amplify
FPGA floorplanning tool.  At the same time, Synplicity is unsuccessfully
trying to nip at the Synopsys Design Compiler monopoly with its Synplify
ASIC tool, but their Structured ASIC push did get noticable air time at
this year's DAC.


    The most important feature of Synplicity's Identify is it links real-
    time debugging capability with your RTL SOURCE.  We were doing a Audio
    DSP encoder/decoder project and this tool help us solved many nasty,
    nested bugs.  Sometimes I use it as a real-time simulator.
   
    The cons are it will create timing closure problem for you so the APR
    turnaround time will be increased dramatically.  Sometimes the timing
    goal is not achievable after you inserted too many watch points.
   
    In comparison, Identify to is far useful than the Altera's and Xilinx's
    tool.  Period.
   
        - Hown Cheng of ITE USA
   
   
    We are just getting to the point where we can probe internal nets
    efficiently by bringing them to unused pins.  We're getting better with
    the Logic Analyzer.  We like the idea of Identify.  The key thing is, of
    course, robustness and flexibility in setting the watchpoints.  As yet
    we don't have a good feel.  I need more than a DAC demo to get a feel
    for how useful Identify is...
   
        - [ An Anon Engineer ]
   

    Identify seemed like a useful tool. I've used Actel's Silicon Explorer
    for hardware debugging and found it somewhat onerous.  I would have to
    sort through the netlist to get the signals I was looking for.  The
    problems would really start when one of my RTL signals would get
    optimized out and I would have to resort to looking at the schematics
    in technology view in Synplify to figure out what was going on.

    If Synplicity's Identify works as advertised, it would greatly assist
    the hardware debugging effort. I saw a demo by a couple of Synplicity
    sales people but I have yet to use it myself.

        - Kent Zickuhr of Lockheed Martin


    One of the really neat FPGA tools I saw was Synplicity's Identify RTL 
    Debugger.  It solves the visibility problem when doing FPGA prototyping 
    of an ASIC and you are trying to figure out what is going on inside the 
    FPGA.  This is the Bridges2Silicon technology they bought last year.  I 
    wish Synplicity hadn't removed the support for 0-in assertions.
    
        - Anders Nordstrom of Elliptic Semiconductor
    

    Identify is not perfect, but it does have it's moments.

    To be fair, Synplicity may have "over-hyped" my endorsement a bit.

        - Richard Grenier of FoundryNet.com


    We bought a license for Certify SC, mainly because of it's automated
    handling of clock gates, but we never wound up using it.  When we got
    it, the mapper (I think) was from an earlier version of Synplify.
    That in itself would probably have been fine, but we'd already moved
    our constraints to the newer version of Synplify.  So we were stuck
    with the choice of rewriting the constraint files again (not a small
    task for this design), or mucking with the clock gate design to make
    it equally applicable to ASIC and FPGA designs.  By the time the
    Certify mapper caught up, we'd already rewritten the clock gate code so
    there was no use for it.
   
    Then they moved the clock gate converters into Synplify & eliminated the
    need for Certify SC.  This was the very first release of Certify SC, so
    I'm not terribly surprised that the codebase wasn't fully sync'd with
    their other tools yet.
   
    All of that said, I've got only good things to say about Synplicity. 
    They've supported their tools well, they're responsive, friendly,
    everything you'd expect from a company trying to win and keep market
    share.  This is a very pleasant contrast from the established players.
   
    When we pointed out the problems we were having with the older mapper,
    they gave us access to early versions of the next release using the
    newer mapper (a nice gesture, but too risky for us to take them up on
    it).  When Ceritify SC got EOL'd, they offered to move our license to
    a Synplify or straight Certify license for free -- a really nice
    touch considering we started using Synplicity because Synopsys changed
    their product name from FPGA Compiler to FPGA Compiler II and insisted
    that meant we had to buy a whole new license.
   
    I don't have any experience w/ the others.  We picked up Certify SC
    because we were already using Synplify and it looked like a quick
    solution to a problem.  Our designs are pretty redundant internally,
    so breaking up across multiple FPGAs isn't difficult for us to
    do by hand.
   
        - Gregory Best of Trimble Navigation Ltd.
   
   
    FWIW, I never got Certify to work for partitioning.  It is always
    downrev (for synthesis) compared to the Synplify Pro tool, and when I
    tried to do multi-point synthesis with Certify as a preliminary step to
    partitioning, it had problems with mixed language designs -- it would
    hang (the FAE got me to that point).  After that, I had the latest
    version of Synplify Pro with a factory patch for another problem that
    wouldn't work on Certify - so I never got back to trying it.
   
    I was ready to drop Certify in favor of just using Synplify Pro and
    doing hand partitioning, but one thing led to another and we are now
    switching to Mentor for FPGA synthesis.
   
        - [ An Anon Engineer ]
   

    Yes I am a user of Certify.  I have been using it on an off for about a
    year.  The only other product that I somewhat evaluated was Aptix, we
    were exploring there prototyping solution and decided to make out own
    ASIC emulator.
   
    We made a system with 10 FPGA - mostly Virtex II 6000 parts with a
    couple of 8000 parts too.  I used Certify to partition a 4 million
    "gate" ASIC into 9 of the FPGAs. We architected the FPGA conductivity
    similar to the expected ASIC structure.
   
    Overall the tool performed fairly well.  I took the approach to do
    source level partitioning.  This creates a top level source file for
    each FPGA.  This allows the partitioning to be done once as long as
    the inter-FPGA conductivity doesn't change.   We could even generate
    inter-FPGA timing constraints for the Xilinx P&R tools.
   
    Not too many hiccups with the tool, there were a few bugs found, but
    Synplicity's support was great.  They would provide a fix or work around
    pretty quickly.  Of course there is always a feature you would like to
    have, but overall the job got done.  We created a 25MHz emulation version
    of an ASIC that should run at 250MHz.
   
    No major complaints, it's actually a pretty cool tool after you get your
    board model setup.  The best features are the graphical partitioner and
    the automatic pin/signal assignment.  The auto partitioning didn't work
    for our design, so I would count on it working, unless your design is
    simple.
   
        - Tom Bylenok of QuickSilver Technology


    Synplify rocks, but I'm actually a true believer in Xilinx's free XST 
    synthesis tool.  XST does an excellent job inferring RAMs (block or 
    distributed), and most importantly, SRL16 inference results in designs 
    that are 10-20% more logic efficient.  The key advantage of XST over 
    Synplify is that I can run it on my laptop unplugged (running Linux under 
    VM-Ware) or on my home Linux workstation away from the FlexLM server.
    My results have been almost as good as using Synplify, but no license 
    hassles.  Now if I could just target Stratix devices with XST, too...
    
        - Kevin Hubbard of Siemens
    
     
    We use Synplicity and it's good for our needs.
    
        - Damien Chardonnereau of Iroc Tech
    
    
    We are using FPGAs to validate our designs (mostly Xilinx).  The platform
    is an in-house platform as we found it to be more cost effective and also
    to better fit our other system requirements (additional peripheral 
    components).  We are using the Synplicity for the FPGA synthesis.
    
        - Yuval Itkin of Metalink Ltd. 
    
    
    I have used Synplify Pro and Quartus.  Coming from using Design Compiler 
    and have a lot of controls via scripting it was painful to learn both of 
    the above tools.  Counter-intutive as it might sound, less constraints in 
    Synplify seemed to produce better results.  If you come from the DC 
    world, you might want to slowly add more constraints rather than add a 
    lot of them and then slowly take them out. 
    
    Quartus is an interesting tool.  I have some problems in getting to set 
    false paths and it looks like they utilize them only for timing analyzes.  
    Seems a little useless if they don't use it for their synthesis and place 
    and route tools. 
    
    I am trying to use FPGA Compiler to see if I can get any better results.  
    We do not have Synplicity license for Altera.  That seems to be a load of 
    a crap that a tool for synthesis has different licenses for different 
    FPGA vendors.
    
        - [ An Anon Engineer ]
     
    
    I like Celoxica & Synplicity.
    
        - Gangadhar of DigiPro Design
    
    
    I kind of like Synplicity.  I stopped by Mentor, but was reviewing their 
    BIST product only.
    
        - [ An Anon Engineer ]
    
    
    I like Synplicity's set of tools, but can see Synopsys working their way 
    back into the market if they can tie in DesignWare features to their new 
    DC-FPGA tool.
    
        - [ An Anon Engineer ]
    

    I've used Synplify for a few years and have had good luck with it.  It
    seems to produce dense code that is well optimized for FPGA's.  My
    biggest complaint with Synplify is getting it to do what you tell it to. 
    Synplify has a tendency to try to optimise everything, despite
    instructions to the contrary.
   
    A good example of this was in an asynchronous clock FIFO design where I
    was designing empty-full logic.  The comparison of the Read-Write
    pointers was registered at the output to produce a FIFO Full indication. 
    The FIFO Full signal went to several state machines to start data
    processing.  It was impossible to keep Synplify from replicating this
    register multiple times.  This resulted in some state machines getting a
    Full indication and others not, depending on the relative phases of the
    asynchronous clocks on either side of the FIFO.  I ended up having to
    instantiate a Flip-Flop primitive to make it work.
   
    Another problem I have had with Synplify has been with Flip-Flop
    enables. If the underlying primitives have a Flip-Flop clock enable, it
    can be very difficult to tell Synplify to use that enable instead of
    merging the enable into the input logic cloud.
   
        - Joe Vornbrock of Philips
   

    We are a "Structured ASIC" company so I may be a bit biased here, but
    after years of using Design Compiler I have been working with the
    Synplify-ASIC tool and I've been generally impressed.  The GUI interface
    was easy to pick up and it had no problems for an initial smaller design
    that I ran for comparison.  Particularly nice was the tracing abilities
    of the schematic and it's tie-in to the static timing analysis report. 
    There are differences for those familiar with the DC flow, however none
    were major and each was relatively easy to deal with (although some may
    beg to differ).
   
    For example, a single .syn file (like .db) is needed per design and
    black box Verilog (VHDL) models are required for any instantiated cells
    in the design (i/o's, rams, pre-synthesized bist logic, etc.). One bonus
    though:  scan flops can be used during synthesis *without* an extra
    license and the next version (purportedly) will also support scan
    stitching.
   
    Synplify has established itself in our RTL handoff flow.  It is
    installed on all our FAE's laptops and is used primarily for quick
    estimates on area and timing before the final customer RTL comes in
    house for synthesis (where, by the way, we still use DC in our golden
    flow).  It is important for us to know the probability of fitting in a
    given masterslice (array) size and whether we are in the ballpark
    timing-wise. Synplify-ASIC gives us decent results for these estimates.
   
    We have also provided our libraries compiled for Synplify on our
    external web site since we found that the FPGA designers out there like
    to be able to use a familiar tool in analyzing their RTL before handoff.  
    In summary, we have yet to have any serious issues arise and have found
    the tool to be beneficial in this usage model.
   
        - Jeff Waite of Chip Express
       
   
    I have been using Synplify / Synplify Pro for the past three years for
    FPGA synthesis.  I have compared synthesis results against Mentor
    Leonardo, but the evaluation was done in June of 2001, and no
    comparisons have been done recently.
   
    That comparison of Synplify Pro against Leonardo (HDL designer - prior
    to release of Precision) showed 20 to 30% better resource packing with
    Synplify Pro over Mentor, with timing estimates about 10% better.  I used
    two designs for this comparison, one that was mostly logic (no device
    specific resources), and the other that had high Block RAM and CLB RAM
    use.  The 30% difference was observed on the design that was high in
    RAM resources.  Mentor claimed that Leonardo didn't handle inferred RAM
    very well in the version I was evaluating, and if I was to instantiate
    a vendor RAM their tool performance would have been comparable.
   
    From what I have seen, the Synplicity tools seem to be better tied in
    with FPGA vendors for targeting specific FPGA architectural elements
    during synthesis, resulting in better design fit and performance than
    other tools.  That being said, I have also noticed that the more recent
    releases of Synplify Pro version 7.2.0, 7.3.0, and the latest 7.3.3 all
    fail to fit a previous completed design with no changes.  I have been
    told that changes to the Synplify Pro mapper stage to make the tool more
    generic are the cause, and I can get the same results by adding compiler
    directives to the source to control mapping.
   
    My personal feelings are that two years ago Synplify Pro was the only
    tool to use for FPGA synthesis.  Today I'm not so sure.  I think that
    Synplicity has tried to expand their market by addition of tools like
    Amplify, and their push into ASIC synthesis, which has distracted their
    focus and efforts of FPGA synthesis.
   
        - Michael Dabb of Avocent
   
   
    We used Synplify most recently for development targeted at the Xilinx
    VirtexII-Pro line.  The only problems I recall were issues with getting
    RAMs included in the right places and building the connections to the
    RocketIO (high-speed serial) blocks.  But Synplicity's support was top-
    notch and our FAE got us through any problems in a matter of hours, not
    days.
   
    The performance of the tool was phenomenal - certainly faster than ASIC
    synthesis.  And the results were at least 10-20% better in area than
    Leonardo, Xilinx, and Quartus (we've used all three).  We especially
    liked not having to tailor our syntax to the compiler like we did for
    Quartus.  It even recognized our '// Synopsys' directives which helped
    us with RTL targeted at both an ASIC and an FPGA.
   
    Synplify's easy front-end made it a snap for ASIC designers to give
    their RTL a spin to see how bad it was in an FPGA.  And the timing
    estimates from Synplify matched reasonably well with post P&R results.
   
    My only complaint is that they don't do the full timing-driven place and
    route for me - I'm stuck with Xilinx/Altera tools after synthesis.
   
        - Carl Ramey of StarGen Semiconductor
   
   
    I tried to use Xilinx XST but I gave up due to poor language support
    (need to re-write a lot of RTL code in order for the tool to
    understand).
   
    Synplify Pro Strengths:
   
      - Strong language support.
      - Very tightly integrate with Xilinx place/route tool (strong
        support for forward annotation).
      - Ease of use.
      - Maybe run time?
   
    Synplify Pro Weaknesses:
   
      - Did not provide full suite of options for timing constraint.  There
        was a specific timing constraint that I want to apply but the tool
        did not provide the option/syntax to apply the constraint.  But I
        can do this in Synopsys DC easily (I'm more of an ASIC guy than an
        FPGA guy).  I can't recall what it was right now.
   
    That's all I can think of right now.  I will let you know if something
    else pops up later.
   
        - Kevin Nguyen of Celite Systems
   
   
    I have done some comparisons in the past of XST versus Synplify Pro. 
    That was when ISE4.1i was just out, so it is outdated.  At that time the
    same RTL implemented with both tools was much denser and had better
    timings coming from Synplify Pro.  Since I was targeting Virtex-II
    devices, I am sure XST is a lot better now.
   
    Synplify gives good feedback on how the RTL is implemented, and what
    architecture-specific resources are being targeted, as well doing a fair
    job at identifying the optimal structures to utilize.  This is a big
    benefit when dumping ASIC code into FPGAs.
    
    Probably the biggest benefit of Synplify is their support.  Synplicity
    is large enough to have a good support structure, but small enough to
    get personal attention.  In one case the FAE was helping me in my cube,
    contacted the VP of the company regarding a problem we were working on,
    and within a short time had the appropriate engineer involved and
    resolving the problem.  I would rank Altera and Mentor okay on support,
    and Xilinx as low as you can dig a hole (maybe a slight exaggeration).
   
    XST is probably the optimal choice if the design is not speed or space
    constrained - since it is built into the ISE tool.
   
    Some complaints about Synplify Pro: The line numbers tend to be
    calculated slightly differently from their editor to their synthesis
    engine, sometimes making it difficult to determine exactly which line
    the error is on.  Black boxes are difficult to debug -- note messages
    list most objects as black boxes, so you have to wait for the fitter
    sometimes to find out a black box was dropped, and often there is no
    indication whatsoever why it was dropped.
   
    I am a little skeptical when it comes to the large license premium for
    Synplify Pro over Synplify for the bells and whistles gained... but I am
    not in marketing.
   
    All things considered, I would still rank Synplify Pro quite a lot
    ahead of the others.
   
        - Tony Zabinski of Intel
   
   
    
 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)