From: Tommy Kelly <tommyk@mekb2.sps.mot.com>

  In an EE's review of the Usenet hardware newsgroups John Cooley wrote:

  > "alt.cad" ( 180 posts/week, 100 percent garbage )
  >
  > A hotbed of AutoCAD & TurboCAD discussions, machine tool drawings, and
  > mechanical drafting software insights.  Completely useless for EEs.

   John,

   This "CAD == guy who draws engine blocks" problem has caused us
   recruitrment problems.  We have been trying for over 18 months now to get
   a what we now call EDA engineer.  Until now, although our ads mentioned
   synthesis, verification, and "unix wizard" they have also had "CAD" in
   them.  As a result our applicants are either technician-level unix
   administrators, or people who can draw toilet seats with MacDraw.  (Not
   that I'm trying to drop any hints that anyone out there should send me
   their resumes.  Particularly given that although rain is not unknown
   in Scotland, neither is excellent whisky, and it does have some of the
   best ice climbing on the planet.  And none of the ESNUG readers would be
   EDA-specialists, with a strong HP-UX bent, and keen on moving to Glasgow,
   Scotland, to work in an ASIC/Motorola-cores design group...)

   Would they?

     - Tommy Kelly
       Motorola, Scotland

 [ Editor's Note: A job where your only off hours fun is to be a drunken,
   ice climber?  Gee, Scotland sounds like *sooo* much fun!  :^)  - John ]


( ESNUG 269 Item 1 ) -------------------------------------------- [10/97]

Subject: ( ESNUG 268 #8 ) HP, DEC, SUN Workstation Benchmarks w/ Synopsys

> At our company we have historically used SparcStations and UltraSparcs as
> our Verilog and Synopsys engines.  Given the nosebleed prices of *certain*
> EDA tools, we are curious if other hardware platforms might deliver better
> Synopsys performance and, as a result, improve the utilization of our
> Synopsys licenses.   Sooo....  Has anyone out there benchmarked HP,
> Dec-Alpha, and Ultra Sparc's running Synopsys.  Could you please share
> them with us on ESNUG?


From: zehentner@heidenhain.de (Zehentner Georg)

Hi John,

About a year ago we had the same idea.  Buy a high performance hardware and
save the money for a further synthesis license.  So we tried an HP-Station,
our Sparc-Stations and a new 300 MHz Sparc with Synopsys 1997.08 Version.

The results:

  Ultra 1 / 300 MHz:        47 min   = 1.60 * Ultra1/200

  Ultra 1 / 200 MHz:        73 min   = 1.00 * Ultra1/200

  HP C 180:                135 min   = 0.54 * Ultra1/200 !!!!

  Hypersparc, Sparc 20:    152 min   = 0.50 * Ultra1/200

Our synthesis-jobs run now on the Ultra1/300MHz.

With the Version 1997.01 the performance of Ultra/200 and HP is the same.

  - Georg Zehentner
    Heidenhain GmbH

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

From: Brian Arnold <bka@hpesbka.fc.hp.com>

John,

Someone asked for a platform performance comparison and here is what I could
come up with.  Performance comparison of HP -vs- Sun.  The numbers have been 
normalized to an HP C110.  All platforms have been configured with a minimum
of 256MB RAM,  512 MB SWAP, 4GB DD and running either HP-UX 10.20 or
Solaris 2.5.

Application: Synopsys Design Compiler rev. 1997.01 

     Machine        Normalized performance
     -------        ----------------------
     HP C110                1.00
     HP B132L               1.16
     Sun Ultra 200          1.45
     HP J282                1.48
     HP B180L               1.54
     HP C180                1.51
     HP C200                1.81
     HP C240                2.20
     Sun Ultra 300          2.20
     HP K-class @240 MHz    2.28

Application: Synopsys Cyclone rev. 1.1c

     Machine        Normalized performance
     -------        ----------------------
     HP C110                1.00
     Sun Ultra 200          1.70
     HP J282                1.90  
     HP B180L               1.15   !!!!
     HP C180                1.89
     HP C200                2.15
     HP C240                2.53
     Sun Ultra 300          2.44
     HP K-class @ 240MHz    2.58

  - Brian Arnold
    Hewlett Packard


( ESNUG 269 Item 2 ) -------------------------------------------- [10/97]

Subject: (ESNUG 264 #3) 1.5 Hrs "Design Rule Compile" Now Takes 24 Hrs!

> I have a design, the top level of which compiled under synopsys 3.4b in
> roughly 1.5 hours.  ...  In both 97.01 and 97.01-01_44683, that same
> compile takes over 24 hours (basically 24 hours fixing design rule
> violations).  I have tried this using vendor libraries which were designed
> for 3.4b and new vendor libraries designed for 97.01.  Again, most of the
> time (basically 24 hours) is spent fixing design rules.  I've tried a
> number such as always using "best case tree", turning off automatic
> wireload selection which chose a chip level wire load (enclosed mode) and
> instead chosing a very small wire load.  Any ideas?


From: "Maureen L. S. Ashley" <mseils@btv.ibm.com>

Hi, John,

We've found that the transition degradation capability and that the setting
of max_fanout were impacting compile times in v1997.01 and v1997.08.  Here's
some things we've found to help reduce compile time:

  * We've removed transition degradation capability from our newer IBM
    ASIC libraries.  This meant removing transition degradation from 
    library source code and recompiling of ALL synopsys technology 
    libraries.

  * As an alternative solution or a temporary work around, libraries with 
    transition degradation capability can be used in v1997.08 with

              disable_transition_degradation = "true"

    (This will cause a marginal increase in run times, compared with 
    totally removing transition degradation from the library.) 

  * To help avoid longer run times, the designer could set a max fanout 
    on the library (in case it is not set in the library).  When a 
    default max fanout is NOT set in the library and a designer applies 
    a max fanout to the top level design, then this max fanout is applied 
    to ALL nets in the design.  This includes any Synopsys generated nets.  
    Synopsys will then try to fix the max fanout constraint on these virtual 
    nets.  During the design rule compile Synopsys spins on the virtual
    nets.  To avoid the problem caused by setting the max fanout on the
    design, the customer should use the set_attribute command to set
    the default_max_fanout on the technology library.  (Note: The
    difference here is that setting the attribute on the library
    does NOT set the fanout on the virtual nets, where as setting max fanout
    on the design does!)  The max fanout setting is design dependent.  For
    example, the command to use to set the default library max fanout to
    20 would be:

          set_attribute LIBRARY_NAME default_max_fanout 20 -type float

Hope this helps your ESNUG readers, John.

  - Maureen Seils Ashley
    IBM Microelectronics


( ESNUG 269 Item 3 ) -------------------------------------------- [10/97]

From: eign@rdsc.wb.xerox.com (William G. Eign)
Subject: Designs with I/O Buffers & DC 1997.08 Need Power Analysis Key

John,

   I have noticed that many of your readers have experienced FATAL ERROR
ENCOUNTERED when compiling with 1997.08.  We were experiencing this problem
using the AMI 6G5 library.

   We traced the problem to I/O buffers.  If there was an I/O buffer in the
design, the compiler would crash.

   We turned it in to the Synopsys support center and they could not
re-create the problem.

   All of a sudden I received an email from Synopsys containing a Power
Compiler key and a note indicating that this would solve my problem.  Sure
enough, the compiler completed without crashing on the design and our test
cases.  I don't know what the plan is for a permanent fix, but this seems
to work fine so far.

  - William G. Eign
    Xerox Corporation


( ESNUG 269 Item 4 ) -------------------------------------------- [10/97]

Subject: (ESNUG 266 #5 267 #1 268 #5) *WHO* Is Using Behavioral Compiler?

> BC moves design to another level of abstraction which means you need to
> rethink how to capture a design - and that can't happen without effort
> and time: with the enormous time pressure and work load engineers are
> often under, there is little room for taking the necessary time to learn
> a new way to design.
>
> BC - and other application-specific synthesis tools like test synthesis
> and protocol synthesis - is a taste of how designs are going to be done
> in the future.
>
>  - Janick Bergeron
>    Qualis Design Corporation


From: Victor_Duvanenko@truevision.com (Victor Duvanenko)

Hi, John and the Gang,

On Behavioral Compiler... I took the BC class from Synopsys and even read
through half of the book that one of the BC designers published.  I take
issue with anyone that says "It's going to take a while to switch engineers
from RTL to a higher-level."  This is absolute rubbish.  VLSI engineers are
a very clever and resourceful bunch and they would gladly do it a better
way.  It also doesn't take that much of a mind switch to go to BC-style -
c'mon if they can teach it to you in a couple of days - it's definitely not
differential equations or sub-atomic physics!

BC is just not ready - plain and simple.

BC does not follow the fundamental design methodology of hierarchy - it's
hard to hook two BC generated blocks together.  BC wants the freedom to
change the interface on each of the blocks (a very block-centric approach).
BC does not understand the concept of "stalling data pipes", such as when
your block is surrounded by FIFO's and there happened to be no data available
for the pipe to work on, so BC doesn't know how to design pipes that stop
for a while and wait for data to get there.  Currently BC is really an
implementation compiler.  When BC is ready I'll be the first to jump on
it - I've been ready to give up RTL-level coding since my first design with
Design Compiler 1.0.

 - Victor J. Duvanenko
   Truevision

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

From: Doug Warmke <doug@ikos.com>

John,

In the BC discussion, one thing that is really important to us that might
be worthy of public discussion is the risk-reduction point.

Our RTL FSM's simply got too out of hand.  They are of the "pipelined FSM
form", where the FSM is simultaneously controlling several stages worth of
pipeline.  This kind of FSM is necessary when you're dealing with a
synchronous resource like an external Late-Write SRAM, which has a couple
cycles latency on its results.  (Too hard to explain in crystalline form
here.)

BC reduced our code substantially (3x less lines), and most importantly, we
could convince ourselves that we had the algorithm implementation
fundamentally sound by visual inspection.

In the RTL versions, we just couldn't tell, and we were continually running
into hard-to-find corner cases with difficult and risky eventual solutions.

It's an interesting philosophical point, I think.

  - Doug Warmke
    Ikos Systems, Inc.

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

From: Robert Hoffman <bobh@siforge.com>

Hi John,

Just a brief note on BC, since I didn't see anyone mention this.  

About 6 months back, I evaluated the tool for use in a DSP modem asic
(QAM256).  Previously, I had used verilog and found the use of parameterized
designs for handling datapath to be an incredible timesaver.  Carrying this
forward, I concluded that the use of vhdl with its more robust generic
command (allowing for optional hw elements) in combination with BC would
result in excellent architectural flexibility.

Now the bad news, I found that BC was incompatible with the use of
parameterization.  This to me was a fundamental flaw -- I would rather have
parameterization over scheduling.

Just wanted to forewarn others - and I never got a Synopsys commitment to
fixing this.

  - Robert Hoffman
    Siforge


( ESNUG 269 Item 5 ) -------------------------------------------- [10/97]

From: Thomas Tomazin <thomas.tomazin@analog.com>
Subject: Synopsys Design Compiler & Removing Gated Clocks

Hi John,

I am converting a 2-phase latch based gated-clock design into a non-gated
clock design.  We're removing the gated clocks to avoid any surprises with
the clock tree distribution.  Our proposed solution was to take the gated
clock, call it CKHLD, and break it into it's constituents, namely CK & HLD.
A latch that had
                      always @(CKHLD or D)
                          if (CKHLD) Q <= D;

would be rewritten to

                      always @(CK or HLD)
                      begin
                          if (CK) begin
                            if (!HLD) Q <= D;
                          else Q <= Q;
                          end
                      end

This looks a little funny, but consistently prevents Synopsys from gating
the clock and hooks CK up to the clock pin of the latch.  We plan on adding
a "holdlatch" to the library that will prevent the latch from updating
unless !HLD, and hopefully HLD would be connected to the ENABLE pin on the
latch.   There are a couple problems with this approach:

 1) Synopys gets very confused when timing paths with Q<=Q feedback.  It
    borrows all the time it can from the latch somehow.  Very strange.

 2) I don't think it's possible to guarantee that Synopsys won't suck
    HLD into the D pin of the latch and not use the ENABLE pin, and
    if it allows borrowing, the latch will get corrupted before HLD
    goes high, then feed back the improperly updated value.

So, my question is, how do people deal with these problems in latch based
designs?  My background is primarily with flops, so this is new to me.

  - Thomas Tomazin
    Analog Devices, Inc.


( ESNUG 269 Item 6 ) -------------------------------------------- [10/97]

From: jonathan@ikos.com (Jonathan Liu)
Subject: DC 97.01 & 97.08 Are Inconsistant With Bussed VHDL Ports

John, When I first installed 1997.08, I did experience an inconsistency 
(which I reported to Synopsys) in versus 1997.01 with respect to how the VHDL 
writer handles bussed ports (with certain combinations of switch settings).

When I read into 1997.08 a source VHDL file containing a vector port in
which the LSB  was non-zero, and then wrote out the same design as VHDL
output file, it changed  the range of the vector such that the LSB was zero.

My VHDL input file ports, which should & does remain unchanged w/97.01:

    entity vector_test is
        Port (a: in std_logic_vector(7 downto 1);
              b: out std_logic_vector(4 to 7));
    end vector_test;
     
    architecture structural of vector_test is
     
        component sub_test
            Port (c: in std_logic_vector(7 downto 1);
                  d: out std_logic_vector(4 to 7));
        end component;

Original .synopsys_dc.setup settings:

    vhdlout_preserve_hierarchical_types = "VECTOR";  
    vhdlout_follow_vector_direction = "TRUE";

Original dc_shell script:

    analyze -f vhdl vector_test.vhd
    elaborate vector_test
    report_port
    write -f vhdl -o vector_test_out.vhd
    quit

Output file in 1997.08 (incorrect, note bus ranges):

    entity vector_test is
       port( a : in std_logic_vector (6 downto 0);
             b : out std_logic_vector (0 to 3));
    end vector_test;
     
    architecture SYN_structural of vector_test is
       component sub_test
          port( c : in std_logic_vector (6 downto 0);
                d : out std_logic_vector (0 to 3));
       end component;

I originally worked around the problem by reverting to 1997.01 for steps
which needed to write VHDL output files.  However, fortunately, our Synopsys
A.C. helped me find a superior solution, which was to change some switch
settings  in my .synopsys_dc.setup to be as follows:

    vhdlout_preserve_hierarchical_types = "USER";
    vhdlout_follow_vector_direction = "FALSE";

(Originally those two settings had been "VECTOR" and "TRUE" respectively.)

With the new settings, I was able to obtain the desired result in 1997.08,
So it wasn't a serious problem.  Nonetheless, people might want to be warned
of this inconsistency in behavior between the two versions.

  - Jonathan Liu
    Ikos Systems, Inc.


( ESNUG 269 Item 7 ) -------------------------------------------- [10/97]

Subject: ( ESNUG 267 #10 268 #4 )  Synopsys Vs. Altera Max-Plus II For FPGAs

> I wouldn't buy Altera's VHDL package since you already have Synopsys,
> and it won't give you the vendor independence that Synopsys does.
>
> The Synopsys sales rep. will want you to buy FPGA Compiler which is
> supposed to give better results than Design Compiler for Altera designs.
> Stick with good ole' Design Compiler.  The extra expense and hassle of
> FPGA Compiler isn't worth it.


From: Mike Dini <mdini@dinigroup.com>

John  -- I have used Synopsys FPGA Express/ Synplicity's Synplify/Exemplar's
Leonardo to do Altera 10k designs.  Their Altera interfaces are quite easy.
This engineer is overlooking simulation, though.  The Altera simulator is
primitive compared to a verilog/vhdl test bench, and this is where you spend
most of your time.  Synthesis is the easy part.

  - Mike Dini
    The DINI Group

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

From: Geoffrey Brown <gbrown@hplms2.hpl.hp.com>

John,

Personally, I'm a big fan of Altera's tools.  The synthesis for AHDL is
very fast and error free.  While at Cornell, my students and I developed
synthesis tools for a protocol description language that generated AHDL.
This output always compiled flawlessly.  In addition, we performed little
or no optimization before generating the AHDL -- the Altera tool did a
really good job of eliminating the chaff.  At one point we did the same for
Altera's version of VHDL.  Unfortunately, this package was slow and buggy
(3 years ago).  My inclination would be to approach the VHDL route with
caution -- test a few simple designs to see if it's bearable.

On the other hand, AHDL is a "trivial" language.  With a rigid coding
style, a future port to VHDL might not be such a problem.

  - Geoffrey Brown
    Hewlett-Packard

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

From: [ *I* Didn't Say This ]

Hi, John,

When I used some Altera parts about 3 years ago they didn't even offer VHDL.
AHDL is so similar to VHDL that I simply wrote my code in VHDL then
corrected to AHDL when the compiler complained.

I then wrote out the placed & routed design in VHDL and instantiated
several FPGA designs into a TestBench.  We even figured out how to edit
the behavioral VHDL into synthesizable VHDL to feed into Synopsys to
translate to other formats.

And, Max-Plus II does the entire design-flow in one step.  In using Altera's
tools, you're doing the right thing.

Because I'm in the Synopsys Inner-Circle program, please keep me anon.

  - [ *I* Didn't Say This ]


( ESNUG 269 Item 8 ) -------------------------------------------- [10/97]

Subject: ( ESNUG 268 #7 ) DC's Flip-flops & Optimization Trashes Testablity

> I have a problem with Synopsys's logic optimisation.  How do I stop it
> generating logic that is slightly faster than the stuff I want but breaks
> certain design rules we have.   ...  Sometimes, it calculates that a reset
> flip-flop with its reset tied off is faster than a non-reset flip-flop.
> This is also a testability no-no, so can we stop it doing this?


From: "Andrew Hulbert" <ah@bristol.st.com>

John, try the following:

 set_attribute current_design no_sequential_degenerates true -type boolean

We had this problem with Hcmos5 and Hcmos6 standard cell libraries.  We had
the problem of the Set/Reset flip flops being inferred with Set/Reset tied
to 1 or 0 as the timing was marginally better. This flag fixed that problem
because it stops Synopsys from creating logic with tied off FF's.

  - Andrew Hulbert
    SGS-Thomson Microelectronics


( ESNUG 269 Item 9 ) -------------------------------------------- [10/97]

From: mtoofan@asic.smos.com (Mehrdad Toofan)
Subject: Looking For Tips & Tricks Involving Asynchronous Synthesis

Hi John,

I am trying to learn and put into "real" practice synthesizing some
asynchronous logic using Synopsys.  Do you mind giving me tips on the
general guidelines for such designs, how to avoid any possible pitfalls,
and any sample scripts?

  - Mehrdad Toofan
    SMOS



 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)