( DAC 02 Item 13 ) ---------------------------------------------- [ 9/10/02 ]

Subject: Synopsys PhysOpt, Floorplan Compiler, Avanti Jupiter

TOUGH CHOICES:  With an estimated 1,200 tape-outs, PhysOpt unquestionably
owns the physical synthesis market.  Synopsys obsessively focused on this
niche and took it over.  But in one of those strange quirks of fate, while
their PhysOpt completely dominates physical synthesis, their floorplanning
solution, Chip Architect, fell completely on it's face with users.  To deal
with this, Synopsys released a new tool at DAC called Floorplan Compiler.
On top of that, in a move that made a lot of waves in the EDA industry,
Synopsys aquired Avanti.  So now Synopsys has a boatload of Avanti tools
to sort through.  In floorplanning it has to choose between:

   1.) Floorplan Compiler (FPC) that has a lot of the look and feel and
       functionality of the wildy popular First Encounter.  Floorplan
       Compiler currently does not run on the Avanti Milkway database.
       FPC is production beta right now; meaning that there's only a
       handful of users exhaustively testing it on chips now.

                                -- or --

   2.) Avanti Jupiter/Jupiter-XT that has it's own unique look & feel,
       it's native to the Milkyway database (meaning it's well debugged
       working with other Avanti tools) and has an established user base.

It's a tough choice.  Either approach has it's ups and downs.  At DAC they
wisely told users to let placement be the deciding factor for now.  Use
Jupiter/Jupiter-XT for floorplanning if you intend to use Apollo/Astro to
*place* your chip.  Use Floorplan Compiler for floorplanning if you're
using PhysOpt to *place* your chip.  That buys them some time for now at
0.13 um, but things are definitly going to change by 90 nm.


    "I only use Synopsys PhysOpt.  With Design Compiler experience, PhysOpt
     is not hard to use."

         - Pascal Gouedo of STMicroelectronics


    "We've been an early partner with Synopsys on their Hidden-Dragon or
     Floorplan Compiler flow.  I've been very impressed with this tool.  It
     can insert feedthroughs between blocks.  FPC will insert buffers
     automatically for you based on length or parasitics.  We enjoy working
     with Floorplan Compiler.  It has enabled us to do a true top-down
     floorplan.  Their clustering algorithms are nice.  Figuring out how
     things should be grouped has been made easy.  We have some blocks
     running at 250 MHz with 24 levels of logic.  Editing is easy.  It
     has some strong ECO features that makes updating the database simple.
     RTL and port changes are all easily handled.  Once we have the initial
     floorplan, we can turn a new floorplan in a couple of hours to a couple
     of days depending on the magnitude of the changes.  (We have 6+ million
     gate designs.)

     What I think FPC lacks now is budgeting.  Their budgeting capabilities
     still have problems.  They generate numerous virtual clocks.  Some of
     the constraints generated are bogus (input delays greater than clock
     period).  They don't have an "ideal_net" construct which makes their
     budgeting almost useless.  (You want to budget up front, not after
     blocks have been released and clock trees inserted.  Unlike First
     Encounter, FPC can't insert clock trees yet.)  It lacks a timing driven
     placement algorithm.  (I am told this is coming out soon.)  The tool
     works in a reasonable time.  The Cadence tool, First Encounter, is
     faster on some things, but FPC gives you some more useful data from
     its run.  I like the fact that the First Encounter flow can insert the
     clock tree, while in the Synopsys flow this is done in PhysOpt."

         - Maynard Hammond of Scientific-Atlanta


    "Synopsys' "Hidden Dragon" was finally released and renamed Floorplan
     Compiler (well you just knew it had to have "compiler" in the name).
     It uses a "virtual flat" approach, where the design is physically flat
     but retains its logical hierarchy.  It uses "smart clusters" for
     floorplanning, where the logical hierarchy starts out together but
     can get mushed around.  It does power analysis based on Power Compiler
     or Primepower files.  One thing they emphasized was their ability to
     do abutted floorplans (i.e. no routing space between blocks).  In
     order to do this you need to be able to automatically generate
     feedthroughs, and they emphasized this is much harder than it sounds.
     It requires that you update the logical hierarchy with new feedthrough
     ports and constraints, and your time budgeter must provide
     time-of-flight budgets for the feedthroughs, plus if you need to add
     repeaters in a feedthrough it must be added at the right level of
     hierarchy, and ECOs become a whole lot harder.  Anyway, they claim
     this is a unique feature of Floorplan Compiler.

         - John Weiland of Intrinsix


    "Our eval has convinced us that Floorplan Compiler's virtual flat
     approach is a significant value added to our design flow.  As for bugs,
     the tool appears mostly stable.  Its hierarchy management and block
     planning features can significantly improve design productivity and we
     found it reducing floorplanning cycles from weeks to days.  Our target
     for power network analysis adoption is early Q4 2002."

         - Valentina Baiardo of STMicroelectronics (from ESNUG 398 #1)


    "Floorplan Compiler (v2002.05) is available at the SNPS ftp site.  Does
     anyone know if Chip Architect licenses will be converted to FPC
     licences?"

         - Mark Wroblewski of Cirrus Logic (from ESNUG 396 #4)


    "We tested Saturn for more than 1 year trying to bring up timing-driven
     flow in Apollo line.  (We have already PKS flow running for over 1 year
     in production flow.)  In the end, Saturn was proved to be useless.
     Very buggy in STA and constraint parsing.  I believe Synopsys will
     integrate PhysOpt+Apollo and throw away Saturn.

     Cadence PKS is pretty good but I still need to build another flow based
     on Apollo, so PhysOpt will be our next tool.  We have seen pros and
     cons in both flows.  Hard to say who will win."

         - [ An Anon Engineer ]


    "Currently use Apollo/Synopsys/Saturn as well as PhysOpt.  Looking at
     Magma BlastFusion."

         - Phil Hoppes of Intersil


    "We are using PhysOpt.  Amazing step forward.  When we did eval last
     year it was the only tool that actually worked.  Have seen definite
     improvements with recent releases of PhysOpt.  Even just doing
     initial placement without timing it does a better congestion-driven
     placement than Silicon Ensemble.  I don't like capacity (run time is
     related and generally annoying.  Our PhysOpt runs typically take a
     couple of days.)

     I really like having same static timing behaviour between tools.
     Although PrimeTime and PhysOpt do delay calculation differently and
     there are sometimes minor differences in latch treatment, the
     constraint commands work the same and Synopsys is trying to bring
     everything closer together."

         - John Webster of Intel


    "The 0.13 u PhysOpt/Apollo flow that we have in production works.  We're
     introducing Astro as it's mature and to improve productivity.  This is
     also to support 90 nm.  We already have 2 test chips through the 90 nm
     PhysOpt/Astro flow here.  FYI, we are also developing and/or applying
     on projects Magma, Monterey and Cadence Nano in case they have a
     breakthrough somewhere.  Maturity problems and their lack of support
     prevented us to see any breakthrough there so far.  But it might be a
     question of time.  We're more focused on PhysOpt/Apollo/Astro here."

         - Jean-Pierre Geronimi of STMicroelectronics


    "I feel that PhysOpt seems ahead of PKS in its quality and GUI, but
     PhysOpt is missing floor planning (now they have PhysOpt-MPC) which
     makes the flow too complicated.  Also the data compatability between
     PhysOpt and other P&R tools such as Silicon Ensemble is a headache.
     Since we are pushing the performance envelope, we still prefer to use
     PhysOpt in our flow.  I imagine users with less aggressive timing
     requirements may find PKS helpful."

         - [ An Anon Engineer ]


    "We've had great results using PhysOpt and would use it exclusively
     except for the price.  Astro has given us almost as good results at a
     much better price, so we use Astro mostly.  We keep PhysOpt for the
     extra hard blocks that have trouble closing timing."

         - [ An Anon Engineer ]


    "About all I know is that we use PhysOpt."

         - [ An Anon Engineer ]


    "Synopsys PhysOpt is the real deal.  Used it on a tapeout (850K gate
     equivalents + RAMs, regfiles, 2 10-bit triple DACs and 3 PLLs;
     altogether 9.3M transistors, top speed 180 MHz targeted and achieved)
     and PhysOpt did great.  What was most impressive to me was we took an
     original design, added a block with 15% of the original core area,
     and came up with a new chip that was just 3% larger than the original.

     The other EDA tools in this space don't matter to me at this point."

         - Mark Wroblewski of Cirrus Logic


    "PhysOpt seems to be winning, although technology wise, I think
     Sequence's PhysicalStudio is better."

         - Weikai Sun of Volterra


    "Rapid Prototyping Environments Demos

     Magma      - Blast Prototype
     Monteray   - Sonar
     Synopsys   - Floorplan Compiler, Jupiter-XT, PhysOpt-MPC
  
     All of the tools (except Sonar) has some form of Interface Logic Model
     that hides the internal paths of a module yet included all of the IF
     logic of the module.  Jupiter and Magma go one better and also capture
     power rail physical info in the model.  Magma is the most advanced by
     incorporating all physical information important for signal integrity
     (called a glass box model).

     All of these tools have a sweet spot around 70% utilization.  The idea
     is that changes due to RTL ECOs, detail route, and SI don't perturb
     the whole floorplan.

     The Synopsys dogma is:

        * If you are using Astro for physical synthesis then use
          Jupiter-XT for prototyping.

        * If you are using PhysOpt for physical synthesis then use
          Floorplan Compiler for prototyping. 
 
     but only Astro has a decent SI story.

     PhysOpt-MPC does not need a DEF floorplan before it can place gates.
     (It will create a crude floorplan on the fly.)  The idea is to let the
     RTL guy know when an architecture must be changed to meet area or 
     timimg goals.  Results vary greatly w.r.t. pin assignments (so dumb
     pin assignments => questionable conclusions about the RTL)."

         - Joe Eury of Intersil


    "Synopsys has been talking about their Hidden Dragon tool for a long
     time, which they finally introduced as Floorplan Compiler.  Avanti was
     also working on one, which they introduced as Jupiter-XT.  With the
     merger, Synopsys finds itself in the very unenviable position of not
     just owning two competing tools but actually trying to introduce both
     of them at the same DAC.  Their solution is to say that the tools
     aren't exactly competing.  I attended the demos or both tools, and in
     both cases they said that it is critical that your planning tool be
     correlated to your placement engine.  If you use Synopsys PhysOpt for
     placement, you should use Synopsys Floorplan Compiler for planning.  If
     you use Avanti Astro for placement, you should use Avanti Jupiter-XT
     for planning.

     This makes a ton of sense to me, although I must admit the fact that I
     agree with an obvious marketing ploy makes me second guess myself.

     The Jupiter-XT tool, formerly from Avanti, is supposedly correlated to
     the new Astro router, while the Jupiter planner is correlated to the
     older Apollo router.  Jupiter-XT gives advice on physical vs. logical
     hierarchy and keeps the two separate (always an issue).  It partitions
     based on congestion and timing.  It can do non-rectilinear blocks and
     can push power lines into the blocks.  It produces a TDF pin constraint
     file and can support real areas array pads (not just redistribution).
     Jupiter-XT can support bump placement, signal assignment, connecting
     drivers to bumps, and interfaces to Comet, Encore and Astrorail.  It
     extracts all top level nets and does time budgeting.  It can provide
     top level and block level SDC constraints."

         - John Weiland of Intrinsix


    "I've been using Jupiter for quite a while now and just like any other
     tool, Jupiter has its own advantages and pitfalls.

     First of all, it operates on the same Milkyway database as the rest of
     the Avanti tools and we being completely dependent on the Avanti suite
     for the backend, Jupiter fits in very well from the data management
     point of view.  I can have consistent routing rules (in case I need to
     specify different rules for different nets) and this can be propagated
     down to Apollo when I do block level design.  Jupiter's blackbox
     modeling is pretty powerful, if we treat all sublocks as blackboxes.
     The need to do so arises because of Jupiter's lackluster performance
     in reading in huge gate level netlists & manipulating them at the full
     chip level.  Identifying and placing the macros/RAMs at the top level
     is tough if they are burried into more than one level of hierarchy.

     Avanti came up with a better GUI and added some functionalities and
     called it Jupiter-XT, but IMHO the price/performance ratio of
     Jupiter-XT is not any better than Jupiter.  SoftMacro pin editing is
     great, but pin generation is purely based on connectivity & congestion
     and not timing driven.  Also, the pin placements are good based on
     connectivity, but they are not the best placements.  I do have Scheme
     scripts and I put in manual effort after that to come up with a cleaner
     pin placement.

     Power planning: Jupiter does a good job in creating power straps at the
     top and in pushing them down into the blocks.  However if there are
     multiple instantiations of a block, I don't like the way Jupiter
     handles them and I don't buy Avanti R&D's explanation justifying
     Jupiter's behavior either.  In that case, my experience tells me not
     to push down power from the top.

     Competition wise, the only other tools that I am aware of in this space
     are Synopsys' Floorplan Compiler (FPC) and Cadence's First Encounter.
     The technical info and demos on FPC are impressive and I feel FPC is
     certainly better than Jupiter, but demos are always good; aren't they??
     I haven't updated myself with First Encounter's latest developments,
     but it was delivering the technology that FPC intends to deliver now
     at least an year back though I do not have a comparison of the QOR.
     Now that Synopys has taken over Avanti, I wish and I hope that they
     integrate FPC and Jupiter together into one tool with the best from
     both.  That certainly would be a step in the right direction."

         - Jay Pragasam of Brecis Communications


    "I'm using Jupiter (the Apollo version) & Jupiter-XT (the Astro rev)
     on a project that's a little over a million placeable instances (~5M
     gates depending on how you count RAMs).  I use the tool mostly for
     intital netlist processing, hierarchy manipulation and preliminary
     protoyping of my chip (pushing blocks around). 

     JXT is _much_ better than the classic Jupiter/Apollo/Planet tools with
     respect to chip prototyping and floorplanning.  Theie new GUI (TCL
     based overlay on top of the legacy Jupiter engine) is faster and easier
     to use.  It could certianly use improvement in some areas such as
     memory usage, user interface, speed, and documentation.  For instance
     you can drag blocks around with the mouse but it's hard to align blocks
     precisely.  The interface has an X and Y coordinate box that updates as
     you move the block.  You can type new values in the box (giving the
     impression I can just type in the coordinates) but the block does not
     move.  Once you select the box and move it slightly, the coordinate
     reverts back to wherever the mouse put the block.  Avanti/Synopsys
     definitely needs to pay attention to the GUI details.  To be fair I
     showed them some of the other issues I had during the eval and they
     fixed them in a reasonable amount of time.  The support from Avanti has
     been great.  They sent an apps engineer down here twice (Ryan Hoke)
     who was very helpful in getting me up to speed on Jupiter. 

     Now that my floorplan is stable (blocks are moving around and changing
     shape), I scripted the build process using Make and SCHEME scripts (the
     native scripting language of the tool).  When I get a netlist update I
     can run make and rebuild the floorplan in just over a half an hour.
     Not too bad.  JXT takes about 30 min to read in and process my netlist.
     The remaining steps (flattening some hierarcy, binding the netlist,
     creating a floorplan view, and placing the IOs and core blocks) takes
     about 5 min with the script. 

     One major limitation Jupiter (and Avanti's tools in general) have is it
     can only handle designs with less than 250K instances at one
     hierarchical level.  I tried flattening my entire design and doing a
     placement and after 2 days I killed the tool.  In contrast, running
     the design in Cadence's First Encounter tool can process the flattened
     design in around 8 hours.  I get around the instance limit by breaking
     the design up into hierarchical blocks (6 major ones at the top level).
     This method allows us to apply different tools (PhysOpt, First
     Encounter, DC Ultra, etc.) and methodologies to different blocks in the
     design as appropriate.  It also allows multiple people to work on
     pieces of the design in parallel. 

     Another area that could use improvement is the interface to other
     tools.  Particularly PhysOpt and First Encounter.  We primarly bring
     the a design into the tool by reading a netlist, PDEF, and
     SDC/Primetime constraints.  Jupiter's native reader PDEF reader just
     does not work with PDEF files created by FE and PhysOpt.  There are
     some scripts provided by Synopsys that convert PDEF to SCHEME scripts
     but these are just patches.  Avanti/Synopsys needs to fix their PDEF
     3.0 reader and writer.  Perhaps with the merger this will happen soon.
     The PrimeTime constraints reader usually requires the scripts be
     "cleansed" to remove "unsupported commands" like set_dont_touch.  The
     read in is OK but fills the log file (and screen) with numererous
     warning messages.  It would be nice to have a supress messages command
     like DC does to filter out don't cares.

     One thing I have not been able to do (probably due to my limited
     experience in this area) is to get the timing engine in
     Jupiter/JupiterXT to correlate with PrimeTime.  Usually Jupiter reports
     more pessimistic delays.  I have yet to be able to get the tool to give
     me the same (or at least similar) delay info as a StarRC-XT extracted
     SDF run through PrimeTime report.  I've done some global P&R work both
     congestion and timing driven.  The tool seems to work pretty well but
     I have no real basis to compare against.

     I actually just encounterd a major bug in the Verilog conversion
     utility (hdl2A) that interprets all bussed pins on blocks (RAMS and
     custom hardmacs) as LSB:MSB order, even though the tool is told to
     order them MSB:LSB.  This results in all the bus connections to RAMS
     getting reversed.  Not good.  Fortunately I work around the issue by
     using the Jupiter netlist reader which works fine.  Their AE is aware
     of the issue so I'm sure it will get fixed quickly."

         - Tom Trocine of Adaptec


    "Regarding hierarchical layout, now we are benchmarking Jupiter-XT.
     First Encounter and Floorplan Compiler use similar technology.  They
     use virtual flat technology.  AmmoCore also uses it.  But considering
     test and ECO TAT, maybe traditional floor planner like Jupiter-XT
     will be the mainstream.

     We are using Apollo/Saturn and Astro.  Astro has more powerful
     capability than Apollo/Saturn.  Regarding PhysOpt, we will
     benchmark it after Milkyway and .db are merged."

         - Zenji Oka of Ricoh


    "John, I just finished a chip in 0.13 um process.  It's a well known
     synthesizable microcontroller (can't give out the name) but the
     requirements from my boss was: "Make it run at 300 MHz as no one else
     in the world has done it".  Of course in these troubled times no extra
     bonus will be given.  Be thankful that you have a job.  Well... with
     that in mind we started with completely writing our own DC synthesis
     scripts.  The scripts that were provided to us yielded only 200 MHz at
     best.  The flow was to use DC-Ultra and then do Apollo placement. 
     Well!!  We only got 220-240 MHz after many runs.

     I then pushed for PhysOpt (with DC Ultra) and in the first run it
     achieved 285 MHz.  Subsequent runs got me closer to 290 MHz, but
     my design did not improve after that.  To get to 300MHz, I did buffer
     sizing by hand and acheived my last mile.  So in my opinion PhysOpt is
     a great tool, although I'd love to see clock tree insertion capablity
     introduced into it (its coming I'm told).  I have not used Magma but
     am told that its a great tool for high-speed designs.  We are actually
     thinking of evaluating them."

         - Himanshu Bhatnagar of Conexant


    "Ultima has merged with BTA Technology to form Celestry.  They sell a
     tool that closes timing by purposely putting clock skew in the clock
     tree.  With the world moving to tightly integrated physical synthesis
     tools, I'm not sure what the future of this tool is, but they say it
     fits into PhysOpt flows."

         - John Weiland of Intrinsix


    "It's not my direct area of expertise, but I think Synopsys will win the
     physical synthesis battle."

         - [ An Anon Engineer ]


    "We're using a design house for physical synthesis.  They are using
     Synopsys PhysOpt."

         - Jay Abel of Shera International


    "We're still using PhysOpt.  Still getting good results with it."

         - Chris Gorzek of Cray. Inc.


 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)