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

Subject: Prolific ProGenisis vs. Cadabra

NEW SOLDIERS, OLD WARS -- Years ago, when the dinosaurs still walked the
earth, Cadabra was the ancient rival to Prolific and vice versa.  Then, in
big-fish-eating-little-fish fashion, Numerical Technologies acquired Cadabra.
And then Synopsys acquired Numerical.  Yet today we still see users doing
side-by-side comparisons Prolific vs. Cadabra.


    Yes, we have been a user of Prolific ProGenisis for about 3 years.  We
    have built one 90 nm chip and are in the final stages of another 90 nm
    design.  We are not using the latest release of the software because of
    our tapeout schedule, so I am not able to give you an honest review
    except to say we are still using the tool and plan to continue with it.
    We did evaluate Cadabra and decided to stay with Prolific. 

        - Howard Sachs of Telairity Semiconductor


    Prolific ProGenesis Layout Generator

    We tested both Cadabra and Sagantec products against Prolific, but it
    was several years ago.  Sagantec was eliminated as we decided we wanted
    to do generation, not just migration.  Overall impression of Prolific
    vs. Cadabra was sort of a user-friendliness vs. power.  Cadabra had a
    great interface -- GUI and programming -- but didn't have all the
    capabilities that we wanted.  It wasn't necessarily deterministic (you
    get could very different layouts with very minor tweaks to the input
    files), and couldn't do multi-row cells.  Cadabra was also quite a bit
    slower.  Obviously, some of this may have changed, but that was the
    result of our eval.

    ProGenesis is extremely powerful, in that every little detail of its
    operation can be tweaked/changed.  This enables just about any style
    routing, contacting, gates, taps, etc.  The GUI interfaces are nice;
    it's easy to get a very basic setup, technology layers/rules/etc.
    Each rule can also have a recommended value, which is very nice,
    although we haven't used it much.  Custom rules are pretty easy to
    define as well.

    The drawback to being powerful is that the setup for Prolific is fairly
    complex.  If you want only the most rudimentary settings, ProGenesis
    can be really straight forward.  But I don't think most users would be
    happy with this.  If you really understand the tool, the setup doesn't
    take too long, but to dig in to the myriad functions and options
    available can be a quite daunting.  Most of our ProGenesis settings are
    done through scripts and functions calls -- which requires several
    files all working in conjunction.

    The multi-row capability is provided through the use of generators
    (which is the basis for how cells are handled in all cases).  The
    "Prosticks" feature allows the creation of custom generators with any
    number of busses or rows.  This is entirely GUI based, which lets you
    specify all the routing and placement that you want.  The limiting
    factor is how large a cell the "Progen" engine can handle.  We've run
    cells of up to ~200 transistors (defined as individual fingers).  A
    more realistic limit, however, is about 100-120 transistors.  The
    biggest drawback is the time and effort required to create large
    generators.  Ideally we would like to just specify the placement and
    let to tool route -- which is not possible.

    Overall, the main judgment of ProGenesis has to be in runtime and
    results.  For us, it was a big change to start auto-generating cells,
    which might not look as "pretty" as carefully hand-crafted ones.  The
    results were generally very good though, and as I said, just about
    anything can be tweaked.  Its runtimes were very good (although they
    use the 1 cell at a time per license model -- which is pretty limiting
    without lots of licenses.)  The runtimes vary a lot depending on cell
    size -- we've seen anything from 30 seconds to days.  We've averaged
    somewhere around 20-30 minutes per cell for an ~250 cell library, with
    transistor counts varying from 2 to ~100, the largest cells causing
    the bulk of the runtime.

    The tool has not been entirely bug-free, either.  In basic cells, it's
    good, but with custom or very complex function calls (or generators),
    it is possible to cause DRC problems, or violate the cell architecture
    that has been defined, so you have to be careful.  The support we've
    received has been good on tracking these down and getting fixes
    (functions or patches) for them, although the fixes would be better
    incorporated into the base tool.

        - [ An Anon Engineer ]


    We found that Prolific gives us best control of our build style with
    their stick layout tool.  Either this tool will start from a schematic
    or it can start with a stick diagram.  This stick diagram can then be
    used to rebuild the cell in a different technology or rebuild with
    modified design rules when these occur or venders are changed.  This
    has worked very well for us in that we had to do only minor adjustments
    in  transistor widths to accommodate the rule differences where
    maximum size devices were used.

    Operation observations:

    Both Cadabra & Prolific keep track of their every completed cell try
    for defined stages of progress.  These stored stages are used as branch
    points that the tool may decide to take as based on some internal
    metrics.  X or Y compaction for example.

    Cadabra operation displays an inverted tree of the path it is taking.
    Each level of the tree represents a level of progress uniformally across
    the tree.  The user can halt the tool and graphically observe the layout
    of any point he or she desires.  The neat thing is that the user can
    intervene and modify the layout here with a path type of layout editor.

    Prolific displays its progress in real time so that the path it's taking
    can be observed.  The user can then go back to the stick diagram to
    force a different start stick diagram route preference or seed.  It
    would be nice to be able to pause the tool's progress, modify some
    paths, and restart ProGenesis; but this is not consistant with its
    automatic philosophy which uses stick based seed starts.  It is
    understood that in this manner, the cell layout can be regenerated using
    different design rules at any time from preserved results.

    Prolific has a table-driven easy method of design rule entry and display
    which is similar to the more modern CAD tool design rule entry.  This
    also applies to the cell architecture.  This database entry/display is
    extremely helpful.

    As I said before, Cadabra has the advantage of being able to interrupt
    the cell's construction in order to modify its path of its progress.
    When we visually observe the path the cell's construction is taking,
    some changes are obvious, but the Prolific tool does not have the
    ability see them.  A little frustrating.  For instance, we could easily
    interchange wire order or go a different way around a group of
    obstructions.  With Cadabra, it is nice to make these changes in
    midcourse layout, without the consideration of design rule violations,
    and let the tool will take care of rules when restarted.

    With Prolific, these changes are taken care of by modifying a stick
    diagram that is used to seed the layout.  The layout is then restarted
    from the stick diagram -- an easy job for the computer.  The layout
    in Prolific can refer back to the stick diagram which has these layout
    pushes stored in them.  We consider preservation of the cell layout
    procedure extremely important since the cells are always revisited
    at later times.

    With Cadabra, the result is that these layout pushes are part of each
    regenerated layout procedure (which are not remembered when the cell is
    ported to a new vender or process.)  There is some control to restart
    from the same point in a procedure, but when Cadabra is restarted
    sometime later for re-layout, this point is not part of the procedure
    rerun.

    Once you have a good cell, in addition to Cadabra and Prolific, there
    is an alternate approach, which is the design rule migration path.  For
    this, there are tools such as RubiCAD, Sagantec, Cadence Layout Migrate,
    and others.  However, they do not supply a way to find that good
    original cell and we found the migration produce produces increasingly
    poor results.

    A nice feature of the Prolific tool is if you do end up with constraints
    that cannot be resolved, the tool has a familiar feel "DRC" like feature
    which will help determine which stack of constraint has to change to
    complete the cell with in the required cell height.

    Cadabra has a slight edge on the manufacturability cell cleanup rule
    side.  It has an effective post-processor cleanup cycle.  The basic
    cell layout is not encumbered with perfect cell results in the interest
    of time.

    Prolific has a "Fast" cell generation option that principally works on
    the critical stack that defines the cell size in both x and y.  Here
    polygons are not trimmed off to their minimum, but extend to the next
    interference object.  This saves processing time in minimizing the cell
    layout.  Some rules can also be relaxed here to get a more rapid cell
    generation.  The idea is to try many different combinations of limiting
    cell builds and keep track of the progress to branch to the smallest
    cell.  After a good cell is roughed in, the "Fast" option is turned off
    and the final cell is made with all the details completed.

    User accessibility and control for those that may want to control these
    programs more:

    - Prolific uses a lot of higher or macro like ".tcl" UNIX features that
      are in ASCII that can be edited by the user.

    - Cadabra is less accessible with more "C" code like access.

    Most important to us is the ability to create a "hard or defiant" cell
    from a SPICE netlist.  We have made several complicated cells that we
    initially did not have an acceptable stick diagram.  As an examples of
    this, there is a need for very good scan in & out flip-flops with reset
    and set asynchronous inputs and other features.  We tried many different
    designs many of which were nearly impossible to layout unless the whole
    library was increased in size.  They also had to perform well in both
    speed and power.  We had to try many strange configurations to arrive
    at some of the best layouts achievable.  It is the layout size, and its
    performance that counts, not the generic schematic.  Prolific assisted
    us in delivering these.

    Cadabra was poor.  It could do recognizable circuit configurations, but
    when it was presented with some of our strange configurations, Cadabra
    could not arrive at a result.

    Prolific, on the other hand, always arrived at some configuration, even
    though we may not have liked it.  Sometimes the cell was way too tall,
    but Prolific always gave us results that we could tweak to restart with
    a resulting stick diagram and progress through a path to acceptable
    results.  Often times Prolific found configurations we did not consider,
    which made us very happy.

    On the support side, we find that Prolific is extremely responsive.
    Typically, a call is answered during the call or within a couple of
    hours if the answer calls for some research.  The support person on the
    first call answers 90% of the questions.  The other 10% of the questions
    have always been answered the next day.  When Prolific is given
    feedback, we see many of the features actually get incorporated in the
    next release if not in a patch delivered to us.  As Red Hat Linux users,
    Prolific does a good job at supporting Red Hat's latest release instead
    of requiring we keep a machine with a legacy operating system maintained
    for their software.

        - Bob Schober of Nanopower Technologies, Inc.


    Cadabra automatic layout generation tool Kazam is really a good tool
    that does 90% of the job.  Most important, the support from the Cadabra
    AEs is outstanding.

    Prolific has a different approach, maybe faster but needs more coding.
    Not really impressed by the support.

    What happened to Circuit Semantics tools "acquired" by Silvaco 
    (Dynacore, Dynacell...)?  Are they still alive?

        - [ An Anon Engineer ]

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)