( ELSE 06 Item 10 ) -------------------------------------------- [ 06/23/06 ]

Subject: Synplicity Synplify Pro and Synplify DSP

YAWN AND I'M AWAKE -- Over the years it's been trivial to find users who
gush about Synplify Pro.  (See DAC 04 #6 and DAC 03 #21)  <Yawn>  No news
there.  But these comments about their new Synplify DSP got my attention.
I heard it's very similar to Xilinx's Accelchip and Altera's DSPBuilder.


    Synplify Pro is used and highly regarded.

        - [ An Anon Engineer ]


    Synplify Pro continues to meet my needs very well.  Although it has
    gotten a little slower in recent releases, it was so fast to begin
    with, time spent in synthesis is still down in the noise compared to
    time spent in simulation and P&R.

    Oh, and Synplicity has gotten much better in avoiding making the same
    mistakes from one release to the next (as I complained about in
    http://www.deepchip.com/items/0427-01.html).

    I've been hearing for years that someday I'm going to need Synplicity
    Amplify to do physical synthesis in my FPGA design flow.  And I still
    acknowledge that day will come.  But for now, I still get by with
    using only Synplify Pro, plus

            (a) realistic timing constraints,
            (b) pipelining,
            (c) retiming, and 
            (d) specifying multi-cycle timing paths

    where applicable.  That seems to keep P&R to acceptable durations with
    a few iterations.

        - Bill Lenihan of Raytheon


    We use Synplify Pro, and for the small FPGA's we do, it works well;
    easy to use I/F.

        - [ An Anon Engineer ]


    Synplify Pro is our choice for FPGA synthesis.

        - [ An Anon Engineer ]
         ----    ----    ----    ----    ----    ----   ----

    We wanted to implement our Matlab algorithms in VHDL, so we did an
    eval of Synplify DSP.  Synplify DSP automatically generates VHDL code
    from a Simulink model, using blocks from Synplify's DSP blockset for
    the part of the model that is translated to VHDL code.  To evaluate
    Synplify DSP, I ran a relatively small and simple design through the
    entire flow.  The design's specs were:

    - input sample frequency = 15 MHz
    - input samples are 12-bit signed values
    - input fed to a 3-tap pre-filter with coefficients: 1, 0, -1 to
      eliminate DC and fs/2
    - output of pre-filter fed to a 9-point I- and a 9-point Q-filter
      that produced 20-bits data for both I- and Q-results
    - the 20-bit data was decimated by a factor 8 and rounded to
      12-bits signed output data

    After I ran the small testcase successfully, I ran a more complex
    design (beam-steering calculation) which we had already completed, so
    we could do a one-on-one comparison of the Synplify DSP results with
    our original results.

    The beam steering algorithm is used to calculate the switching behavior
    of 420 dipole-antenna's which control the beam direction of a reflect
    array antenna, based on a number of input parameters such as position
    of the dipole-antenna, desired beam direction, health state of the
    dipole-antenna and some conversion factors.  The beam steering
    calculation has following specs:

    - a set of input parameters, all 24-bit wide signed integers,
      with 6 bits before and 18 bits after the decimal point (6.18 format).
    - 3 lookup tables with X, Y and Z position values for each dipole
    - for each dipole, an algorithm performing multiplications, additions
      and subtractions with the parameters and table values is performed
      to calculate the phase value.
    - the calculated phase value in combination with a 2-bit parameter is
      used to look up the corresponding state value in a table.
    - from the state value, 2 bits are selected that define the switching
      of a dipole-antenna.  The selection is made by looking up the health
      state of a dipole-antenna in a table.
    - the calc is performed sequentially for all 420 dipole-antenna's,
      after the detection of a trigger pulse.

    I did not run any specific benchmark tests on Synplify DSP's capacity
    and speed.  This is because the realistic testcases showed it was able
    to generate VHDL within a few seconds, which was so fast it can be
    ignored compared to other design steps, such as a P&R run.

    The Synplify DSP positives:

    - Quality of results.  Synplify DSP produced VHDL that was readable;
      then, after synthesis with Synplify Pro we got the hardware that we
      expected, with no unexpected waste of resources.
    - Design portability to different FPGA hardware.  Synplify DSP supports
      both Altera and Xilinx.  I have run my testcases for both and it
      showed that the results are OK.  This is very useful!
    - DSP synthesis/architecture optimizations, including automatic
      production of multi-channel implementations help make optimal use
      of the chosen FPGA technology.  For my small testcase the tool
      produced a result that I could trace back to my original design.  For
      the large testcase the design was optimized so dramatically that it
      was very hard to link the result after synthesis to the original
      design.  Simulations showed that the behaviour was still OK, but as
      an engineer I want complete control over the implementation and with
      these features I have to blindly trust it, which is difficult...
    - Its Fixed-point and Full Precision Data Types and Automatic Data
      Propagation let you build a very flexible design.  When a different
      accuracy is needed, I can easily adjust the bit-width and see what
      influence such a change has.
    - RTL Generation from Simulink.  The generated RTL-code is readable and
      when it is  synthesized, it maps to the logic you would expect.

    The Synplify DSP not-so-positives:

    - Extension / improvement of the DSP blockset needed.  Synplify DSP is
      able to generate VHDL only when all blocks in the design are from this
      blockset.  Synplicity could improve its blockset by adding more blocks
      and making the existing blocks more adjustable.  Synplicity is very
      cooperative here and has improved the blockset with every new release.
      I would like to see them go beyond DSP / algorithm design and also do
      interface, control logic (state-machines) and glue logic design.
    - You have to completely adapt your design flow to this tool, which can
      be pretty radical and expensive. For the front-end you have to use
      Matlab/Simulink and for the back-end you have to use Synplify.  These
      tools are very expensive and Synplify DSP is only suited for one
      special task (DSP or algorithm design), but when you need this
      functionality and you can afford the tools, Synplify DSP is great.

    - Testbench Generation. The testbench generation in itself is OK, but
      its usefulness is doubtful.  Normally, the Simulink part of the design
      is simulated against the functional model in Simulink.  When this
      simulation is OK, an RTL model is generated and this RTL model is
      integrated with the rest of the design.  The complete design is then
      simulated with a dedicated testbench.  So when using this flow, the
      generated testbench for the RTL model is of no use.

    Generating functionality with Synplify DSP is far more flexible than
    instantiating IP-blocks.  IP-blocks are mostly vendor specific, so we
    can't reuse a functional block in another FPGA technology.  Also, with
    Synplify DSP it is very easy to make changes to a design, such as
    changing the bit-width.

    Having a common design environment (Simulink) for both functional
    (algorithm) design and design implementation was a big advantage for us.
    In the past, our algorithm designers made a Matlab model, translated
    it to a text-document, and subsequently the HW designer interpreted the
    text-document and created a hardware model.  This caused a number of
    misunderstandings between algorithm- and hardware-designers when they
    could not verify the HW model against the functional model.

    The results with Synplify DSP required similar resources to our handmade
    design, yet we were able to do the large testcase with Synplify DSP in
    50% of the time that was needed to do it by hand.  I should qualify this
    statement... since we used a handmade design as a reference point, we
    did save some time that would normally be needed to figure out how to
    solve certain problems had it been a new design.  Also, since Synplify
    DSP is not suited for interface-, control- and glue logic-design, which
    are usually also substantial parts of a design, the decrease in total
    design time for the complete design will be less than 50%.

        - Iwan Hulsman of Thales Naval Netherlands


    I use Synplify DSP v2.8 and Altera DSPBuilder v5.1 with Synplify Pro
    v8.5 as my synthesis tool.  Mathlab/Simulink v2006 plays a big role in
    all of this, too.  I've used DSPBuilder for 1 year and Synplify DSP
    for 10 months.

    Altera DSPBuilder Pros:

    - Easy to operate, no real need to look at the manual for most designs.
    - I love that you can import verilog (or VHDL) as a block.  This is
      very important because we have the HDL code generator for filters
      from Mathlab (we use a lot of filters).
    - Enable on most blocks.
    - Simulation files work great (we use ModelSim PE +).

    Cons:

    - The filter generator in DSP Builder is not good!
    - It doesn't make frequency you want all the time.
    - Biggest word length is only 50 bits (not great).
    - You can only output VHDL (we like to use Verilog).
    - Customer support is the worst.

    Synplify DSP Pros:

    - Long Word length supported.
    - Customer support is great.
    - Achieved much higher frequency.
    - With v2.8 uses much less resources of FPGA then DSPBuilder.

    Cons:

    - Had to call customer support a couple of times.  (I could not
      figure out some of the blocks.)  Manual not the best.
    - No Enable on blocks.
    - Couldn't use Synplify DSP until v2.8 came out, filter generator
      was not good; it produced resource hogging filter with no option
      for FIR decimator filters and interpolator filters.
    - Still no import of HDL code!!
    - Simulation files not so great for Verilog simulation.

    About my company: We design and sell test equipment to power companies,
    filtered voltmeters, watt meters, impedance meters and frequency
    generators.  We have been using DSP's from TI to do all the processing
    (filtering and math).  I thought it would be a good idea to try FPGAs
    for this application.

        - Alan Jayson of Signalcrafters Tech, Inc.


    The strength of Synplify DSP:

    1. easy to start
    2. reach libraries
    3. fast running simulation
    4. good support
    5. reasonable accuracy comparing to matlab

    Problem:

    1. difficult to trace the signals in VHDL code
    2. no adaptive FIR support
    3. no parameter path support from Matlab to Synplify.

        - Shlomo Moler of Rafael Israel


    I use Synplify DSP for HD and SD video algorithms.  When the clock
    frequency is up to 80 MHz, it works straight forward.  The reliability
    is good, what you simulate in Simulink is also happen on the hardware
    with the generated VHDL-code.  An automatic generated testbench for a
    verification check in ModelSim (or other simulator) ensures the correct
    generation.  You will make more simulations on the PC in the Simulink
    environment, evaluation on the hardware is much shorter in time.

    Minus:

    - At this moment Synplify DSP generates one 'flat' VHDL file, no
      hierarchy. (possible in the future)
    - Also needed Synplify Pro for retiming, an expensive tool.

    Plus:

    - Generates general VHDL file, not vendor specific.
    - Easy to make cumstomer libraries, compare with Altera DSPBuilder.
    - Reliable functional generation, no debugging in VHDL or on the
      hardware.
    - Easy to simulate in Simulink instead of test benches in VHDL and
      ModelSim.

    We have to invest more effort for algortihms on 150 MHz or even 225 MHz.
    The functional behaviour is correct.  The amount of resources (logic
    elements) are much more than we expected.  We will look closer to what
    is happening, so no conclustion yet.

        - Co Nelen of Thomson
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)