( ELSE 06 Item 16 ) -------------------------------------------- [ 06/23/06 ]

Subject: Fishtail Focus/Refocus vs. Blue Pearl

WHERE'S WALDO? -- My congrats go to the Fishtail people, because for the 2nd
year in a row their technical rivals, Blue Pearl Software, was M.I.A. with
the users in my survey this year.  I guess there aren't that many Indigo
users out there compared to Focus/Refocus users.  Congrats Fishtail.


    We benchmarked Fishtail Focus/Refocus on an eval version of a MIPS32
    processor IP core.  Our goal was to achieve the highest frequency with
    this core using standard design flows, augmented with the Fishtail 
    post-processing tools.  Our objective was to study whether the Focus
    generated false-paths improved flop-to-flop timing on this IP.  We set
    a target clock period of 1.87 nsec (535 MHz) in 90 nm.  We used DC for
    RTL-to-gates and Magma for gates-to-GDS-II.  We used "useful skew" in
    Magma.  We compared timing after place and route) for our baseline flow
    and the Fishtail flow -- the only difference being the Fishtail flow
    introduced register-to-register false paths after the fix-clock stage
    (after clock-tree synthesis) in Magma.  Our focus was on flop-to-flop
    timing, so we ran both designs with and without IO delays.  We 
    compared timing within Magma. 

    Fishtail generated 57 register-to-register false paths.  We mapped these
    over to the "fix-clock" netlist using Refocus.  35 false paths were
    mapped over by Refocus -- the remaining 22 had been optimized out.  We
    verified the 35 false paths in PrimeTime (using the verify_false_paths
    script provided by Fishtail).  All the false paths passed verification
    in PrimeTime.

    We found that in the case where the MIPS core had overly-constrained IO
    timing, *both* the Fishtail and Baseline flow did not meet timing by
    ~160 psec, there were about 2,100 violating endpoints and TNS was about
    83 nsec.  However, for the run *without* IO timing constraints we found
    that the Fishtail flow was significantly better:

                           Baseline             Fishtail 
             WNS       44 psec (522 MHz)    14 psec (530 MHz)
             TNS         5,155 psec             134 psec 
          # Viol.            265                   31 

    As our focus was on flop-to-flop timing, the timing improvement we saw
    without IO constraints on the MIPS core was legitimate and meaningful.
    The TNS improvement provided by the Fishtail exceptions is significant. 

    The conclusions we draw from this study: 

    If a design has a chance of meeting timing at the target clock speed
    then the Fishtail exceptions will get it over "the hump" and save time
    and effort that would need to be spent to manually get the design to
    timing  closure. 

    The Fishtail exceptions did not impact final area/power numbers, so
    that isn't the reason to use Fishtail.

    Contrary to conventional thinking it is better *not* to introduce
    Fishtail exceptions during logic synthesis but instead to pull them
    in at that stage in the P&R flow where the timing numbers are
    realistic.  In our Magma flow this was after clock-tree synthesis
    (after fix-clock).

        - Krish Subramanian of Toshiba America


    I have been watching and evaluating Fishtail for some time.  I am VERY
    impressed with this technology and with this company.  They are some
    very bright folks, and they are dedicated to the success of their
    customers.  Due to circumstances out of their control, we have not
    completed our evaluation and thus don't actually own a license, but as
    soon as I get some spare cycles I intend to complete that work and push
    my management to buy this tool.  They have taken a very difficult
    problem and provided a pragmatic solution.  Anyone using timing
    exceptions and not using Fishtail is playing with fire.

        - [ An Anon Engineer ]


    We use it in our flow and have found Fishtail's Focus tool is well worth
    the money.  In our last tapeout, it caught 6 user defined exceptions
    which were wrongly declared, hence probably saving us a chip revision.
    It identified a large number of false paths before layout and some
    number of MCPs.  We were able to get to a good quality netlist sooner,
    and since we needed lesser number of iterations, we reduced the usage
    of our expensive PD tools.

    Conceptually, their flow seems to be a bit convoluted, but the Fishtail
    folks have done a very good job of automating the flow of constraint
    generation and constraint validation, and most of our designers get up
    to speed in a few days.

        - [ An Anon Engineer ]


    We are using Fishtail on almost all of our chips and see significant
    benefits in terms of speed improvements.  We are consistently observing
    reduction in negative slack when using FP's alone.  Today, we are only
    using the FP's in the flow and using PrimeTime to justify the FP's.  So
    far, we have not observed any incorrect FP's.  In future, we do plan on
    using the MCPs also, but we want to make the validation flow for MCP's
    smoother before using them.  Fishtail does have the ability to validate
    user's constraints too, and this flow is also being tested.

    Regarding your question of 'useful or a waste of time and money'; well,
    all I can say is that anyone who is involved in timing closure must
    realize the importance of good SDC file.  Also, the fact that other
    EDA companies are also chasing this technology is justification enough.

        - Himanshu Bhatnagar of Conexant Systems


    We have Fishtail but do not use it.

        - [ An Anon Engineer ]


    Recently I finished an evaluation of Fishtail's tools in our ASIC flow.
    I picked a couple of large blocks (both were close to 1 million
    instances) and ran Fishtails tools on them.  I wanted to see the effect
    Fishtail's tools had on synthesis, timing, and area.

    On the first block, the major clock domain had 755 violations.  After
    applying Fishtail false-paths and multicycle paths, this clock domain
    met timing constraints.  Combinational area improved by 1.03% giving a
    total area improvement of 0.26%.  I started with 780 multicycle paths.
    The tool found that 18 of these were incorrect when viewing this block
    only.  (It can check your false-path and multicycle paths.)  We went
    back and found in the context of the full chip, these too were good.
    The run time of the tool took 28 hours to find 7706 false paths and
    62 hours to find 296 proven multicycle paths.  (The tool can produce
    many more potential multicycle paths, but these need to be proven by
    simulation or examination.)

    On block 2, a clock domain had 134 violating paths.  After applying
    Fishtail false-path and multicycle paths I had 17 violations.
    Combination area improved by 3.03% giving a total area improvement of
    1.66%.  I started with 219 multicycle paths.  The tool found that two
    of these were formally incorrect.  The tool took 10.5 hours to find
    3,096 false-paths and 51 hours to find 7,070 multicycle paths.

    In my test of the tool, I generated false-path and multicycle paths
    from the RTL, but did not apply them to initial synthesis.  I tried
    this, but found it hurt me -- area went up and timing degraded in
    spots.  Fishtail has a tool called Refocus that takes RTL constraints
    and applies them to gate-level netlists.  I used this tool.  Running
    the Refocus tool takes minutes.  I then did an incremental compile.
    This is where I saw benefit.  Only about 2/3 of the constraints mapped
    over.  The points that did not map had been optimized out or into large
    complex gates.  Using the refocused constraints does not penalize area
    by causing intermediate points to stick around.  I might also point out
    that final comparison values were generated from flows that did
    incremental compiles, too.  I believe the numbers were a true
    apples-to-apples comparison.

    I did not find much change in synthesis time.  Time went down slightly,
    but in general remained approximately the same.  Both blocks take
    several hours to compile.  I would usually kick them off before going
    home, and get new results sometime the next morning.

    The tool writes out assertions to prove the potential multicycle paths
    if you have a simulation environment that covers the RTL well.  This was
    not my case, and I only used multicycle paths that were formally 100%
    proven.  I had a large number of IP blocks that I did not have full
    verification simulations available.  I wish the technology of formally
    verififying multicycle paths were more robust.

    As I went through the evaluation, I ran into several problems with the
    tool, but Fishtail promptly corrected them.  I usually had fixes within
    an hour or two.  They are very responsive.

        - Maynard Hammond of Scientific-Atlanta, Inc.


    We ran Fishtail Focus on a 530 K cell instance design with 30 specific
    defined clocks and 55 internal generated clocks.  Focus runtime was
    about 5 hours on a 32-bit Linux machine and it identified 15,085 false
    paths.  1,636 of these were register-to-register false paths and we
    applied these in our Magma flow at the fix-time (RTL Synthesis) stage.
    Focus also generated 21 multicycle paths where 18 were proven valid
    using NC-Sim simulation.  We observed:
                                                    User Constraints
                             User Constraints     + Focus false paths
           Instance Count:        538 K                  533 K
     Total Negative Slack:    -21,729 nsec           -20,656 nsec
      Violating endpoints:     17,500                 16,313

    So, by introducing Focus false paths we were able to reduce instance
    count by 1%, reduce TNS by 4.9% and reduce the number of violating
    endpoints by 6.8%.

    I have found that the tool can be a little difficult to set up, but
    once I became familiar with the format required setup became easier.
    The most difficult part was setting up the clocking structure.  One
    thing that helped was that I was able to export my constraints from
    Magma (clocks, etc.) in SDC and import them directly into Focus for
    the required clocks in the setup.

        - [ An Anon Engineer ]


    We used Fishtail on our entire design which is about 2 million gates.
    There were about 80,000 false paths identified and all of them were
    truly false paths.  It also identified about 8,000 Multicycle paths.
    We confirmed all these MCP by running our complete regression to make
    sure these are indeed MCPs.

    We didn't take this feedback to layout as we were well into final stage
    of tapeout.  Next design I would use this tool in the beginning and
    output from Fishtail will be used for synthesis and layout.

        - [ 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)