( ESNUG 387 Item 5 ) --------------------------------------------- [01/23/02]
Subject: Cadence Ambitware & Synopsys DesignWare vs. Rolling Your Own IP
> Is there a timing performance penality using the Synopsys DesignWare vs.
> trying to code the module at a finer granularity? For instance, an
> adder. There are various adder architectures to trade-off, but I suspect
> DW uses one approach, but have not researched this.
>
> What about comparators to check for limits reached?
>
> Any folks gown through this trade-off? i.e. Is the synthesis tool smart
> enough to use one approach over the other based on the width of the
> operands?
>
> - Jim O'Keefe
From: Andrew MacCormack <andrewm@tality.com>
DesignWare does do trade-offs of different adder architectures for you, as
does the Ambitware stuff in the Cadence synthesis tool. If you really must
use DC, you can improve its default results (if you have the appropriate
licence) by adding the following:
set synthetic_library "dw_foundation.sldb"
set dw_prefer_mc_inside true
Why isn't this the default, then? Because you need to have an extra DC
licence to use it. Don't recall which one, sorry. There is a similar
"datapath" option when running Ambit which I think is specified on the
ac_shell command line.
- Andrew MacCormack
Cadence/Tality Livingston, Scotland
---- ---- ---- ---- ---- ---- ----
From: Lars Rzymianowicz <larsrzy@ti.uni-mannheim.de>
Yup, Designware does do trade-offs and it does a pretty good job on it (as
Ambit might do, too. ;-) I wouldn't try to implement arithmetic stuff on
your own. Only full-custom multi-bit cells would be better, I guess.
Concerning the special DC license you're talking about, I think it's
DC-Ultra.
Some useful things are:
- report the selected implementation after a compile w/ "report_resources"
- you can force DC to use one implementation with "set_implementation"
- you can give preferences to different DW implementations
The DesignWare User Guide is also very good, just have a look at it.
- Lars Rzymianowicz
University of Mannheim Germany
---- ---- ---- ---- ---- ---- ----
From: "Ruei-Shiang Suen" <rueishiang1@attbi.com>
For adder/subtractor/inc/dec, DW does very good job.
For more advanced components, if you do not use all the functions provided,
you will get timing/area penalty.
- Ruei-Shiang Suen
---- ---- ---- ---- ---- ---- ----
From: chrispy@synopsys.com (Chris Papademetrious)
Just a quick response to this.
DesignWare is specifically constructed such that, if you are not using
certain features of components (various status flags in FIFOs, particular
flags in a 6-flag comparator, etc.), the logic will automatically be
optimized away. No dangling logic will be left to implement features which
are unused/disconnected. This is also true when you don't use all the bits
of an arithmetic operator, such as just using the MSBs of an adder. The
mechanism by which this works is boundary optimization.
Also there was discussion about what licenses were needed for:
set synthetic_library "dw_foundation.sldb"
set dw_prefer_mc_inside true
The only license needed for this is a standard DesignWare-Foundation, which
is almost always packaged with a Design Compiler seat. Although the second
line enables the advanced Module Compiler datapath engine to construct the
datapath in Design Compiler, no Module Compiler license is necessary - just
a seat of DC, combined with DesignWare Foundation.
However, you do need DC-Ultra for the carry-save transform stuff which
combines multiple arithmetic operators (the 'partition_dp' command).
- Chris Papademetrious
Synopsys, Inc. Mountain View, CA
|
|