( ESNUG 447 Item 1 ) -------------------------------------------- [09/26/05]

From: Kevin Broe <kevin_broe=user domain=britestream spot calm>
Subject: Two Users Hands-on Eval of Synplicity Certify FPGA Partitioning

Hey John,

I recently completed an evaluation of Synplicity Certify for partitioning
our chip across multiple FPGA's for prototyping purposes.  The evaluation
was between Certify and doing it by hand (the old fashion way) in which I
took our design all the way through Xilinx P&R, but I did not actually
build the hardware.

The evaluation was to take an existing multi-million gate ASIC and partition
it to 10 large Xilinx devices.  Then we evaluated how easy/hard it was to
make a change to the partitioning.

The bottom line is that Certify worked well, and automated all of the
tedious, error-prone tasks associated with partitioning an ASIC to multiple
FPGA's.  The learning curve was short and the quality of results was good.
I also evaluated Certify's QPT feature (auto-partitioning) and found that
in at least 1 case it reached a better solution than I could find by
hand (in terms of I/O and resource usage).

There were a couple of usability improvements that I would like to see:

    - the ability to modify a board file without starting over.
    - the ability to add pin info through a TCL script.
    - the ability to add RAMs and connectors more accurately to a board file.

And the resource "estimation" feature in Certify was in some cases
dramatically optimistic.

Overall a good tool and we are going to use it on our current project.

    - Kevin Broe
      Britestream Networks, Inc.                 Austin, TX

         ----    ----    ----    ----    ----    ----   ----

From: David Davies <ddavies=user domain=ikanos spot calm>

Hi John,

Since you asked, here are my thoughts on Certify.

Who should use Certify:

 a) If you need to partition into more than 2 devices then you may want to
    consider Certify because the complexity grows quickly with the number
    of possibilities for what modules will go into what FPGA.
 b) Also, if you need to partition multiple times during a project.  For
    example, if you're emulating a large ASIC you may want to break it
    into pieces for emulation purposes.

Pros and Cons of Certify:

 a) Certify will take in a Verilog board file (.vb) so the tool will know
    the number of traces that connect each FPGA.  A downside of the tool
    is the creation of the .vb is not automatic.  Certify should take a
    OrCAD netlist and create the .vb automatically, but it doesn't.  If
    you buy Certify, Synplicity will give you some scripts that will help
    out.  Synplicity created the .vb for me so I never dealt with creating
    my own .vb.

 b) Certify is smart about auto trace assignments.  It won't waste a common
    trace connecting more fpga's than needed.  It will use traces that only
    connect to the required points.

 c) Certify gives nice screen showing module connectivity so user can be
    smart about how to partition modules if user wants to partition manually.
    I did manual partitioning because I wanted to insure that pin muxing was
    not used as may occur if you request the tool to do automatic partition.
    Pin muxing refers to Certify inserting logic to allow a trace to serve
    double or triple duty, (or more) by providing 3x or faster clock for
    those signals.  Pin muxing is supposed to be a big benefit of the tool,
    but I never used it.

 d) Certify creates top level modules for each fpga, which is nice.

 e) Documentation is good.

Bugs:

I used Certify 6.7 Beta.

 a) Compile doesn't recognize some intermodule connectivity is loadless or
    sourceless but still includes them in I/O count calculation.  Current
    workaround is to find all these and manually tie them off at the top
    level, otherwise, drap/drop info is not correct.

 b) Verilog files containing only `defines are missing from generated .prj
    for each FPGA.

 c) I have various signals in the trace assignment window as already
    assigned via .paf.  I want to have the tool automatically place the
    rest.  I can't seem to do it unless I manually click around the matrix
    to avoid the preassigned pins when selecting those I want to auto
    assign.  If I select to top left corner (selecting all) then I can't
    "Mark" them because the "Mark" is greyed out.  It is a bug and should
    be fixed in a later version.

Sometimes top level signal names will get changed by the tool during compile
stage.  This causes constraints applied to original signal name to fail
because original signal name is gone.  The current problem is with original
signal FPGA_DEBUG[39:0] gets changed into FPGA_DEBUG_1[39:0] and this causes
my traces assignment in .paf to not get used for these signals.  Certify
should never change the name of a top level signal.

    - David Davies
      Ikanos Communications                      Fremont, CA

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)