( ESNUG 450 Item 2 ) --------------------------------------------- [01/25/06]

From: Anurag Jain <ajain=usr domain=broadcom hot mom>
Subject: Fishtail False Paths Benchmark Well; Multicycle Paths Not So Well

Hi John,

We evaluated FishTail on a 300 K instance design.  The goal of the eval was
to compare the timing results after P&R with & without Fishtail constraints.
Focus generated about 1,700 false paths in 5 hours on a Linux machine.  Those
false paths were verified using 0-in at the RTL level and PrimeTime at the
gate-level.

We then compared the timing improvement provided by the FishTail constraints.

We did this by taking a baseline constraint file (containing clocks, I/O
delays and clock-to-clock false paths) through DC and Astro.  We then took
the FishTail constraint file (containing clocks, I/O delays and Focus
generated false paths) through the same chip implementation flow.

The timing was compared in PrimeTime after doing the detailed route with
Star-RCXT extraction.  The results looked good.  TNS for our design dropped
from about 8,000 nsec in the baseline flow down to  3,300 nsec in the
FishTail flow - a reduction of about 60%.  The number of violating timing
paths dropped from about 42,000 in the baseline flow down to 20,000 in the
FishTail flow.  The WNS for the critical clocks on the design also improved
by about 50%.

During the evaluation phase we also used FishTail to verify user-defined 
multi-cycle paths (MCPs).  FishTail correctly found an error in an MCP that
was used to tapeout that design.
 
Based on the good eval, we purchased Focus and soon after used the tool to
tapeout a 1.5 M instance, 12-clock design.  We used Focus in a bottom-up
synthesis flow to generate false paths for the design.  Over 5 blocks, the
Focus tool discovered about 5,000 false paths in a cumulative run time of
about 7 hours.  All of the false paths were proven using 0-in at the RTL
level and PrimeTime at the gate-level.  (The FishTail people provided a
Tcl proc verify_false_paths that can be run in PrimeTime; the script uses
PrimeTime's "report_timing -justify" capability to establish that a false
path definition is correct.)  We also used FishTail to verify our existing
user-defined MCPs.  Focus found errors in few of our user-specified MCPs;
all of which were removed from our final constraint file.  We just taped out
this chip and our experience with the FishTail tools has been very positive.

The MCP gotcha:

In nutshell we used Focus to generate false paths only, not the multicycle
paths.  We found during our eval that not all MCPs written out by FishTail
were correct.  We found cases where MCPs written out by FishTail were, in
real life, single cycle paths.  This was found by running some tests that
included the PSL assertions for the MCPs.  So we decided to limit using
Focus to only false path generation and validating user-defined exceptions
(the hand coded MCPs & false paths).  Using Focus to check the user-defined
exception is more important to us than the automatically generated false
paths from Focus.  The reason being is that most of our design is legacy IPs
and we already have lots of user-defined exceptions.  We use Fishtail and
0-in to validate our user-defined exceptions.

Focus is close to mature now.  Initially there were few crashes, but now it
is getting very stable.  Their support is good.

    - Anurag Jain
      Broadcom                                   Santa Clara, 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)