( ESNUG 392 Item 8 ) --------------------------------------------- [04/18/02]

Subject: Synopsys R&D Q&A To The SNUG'02 PhysOpt Update


 1. When we do congestion analysis, do we consider power structure,
    test structure, clock trees, etc.?

 We consider whatever is available in the netlist and the floorplan. If
 you already have test structure and clock trees, that will be in your
 netlist. If you have the power structure, that will be in your
 floorplan. We will use all that information for the analysis of the
 design.


 2. How is congestion quantified?

 Congestion is quantified as the ratio between the number of wires
 passing through an area versus the available number of tracks or
 routing resources.


 3. How do you specify double-width wires?

 Currently, Physical Compiler does not do detailed routing. It does not
 have specific information of which nets are wide wires or not. One
 method you can apply is to adjust the congestion threshold to allow
 the tool to work harder on resolving congestion issues.

 A new method is to specify nondefault routing rules in v2002.05. The
 tool takes the specified width into consideration in delay and
 congestion calculation.


 4. Why is it important to fill up the valleys (Slide 18: High-Effort
    Congestion Removal) in fixing congestion?

 In some cases, it is not important to fill up the valleys as long as
 none of the congestion peaks is higher than 100 percent. Filling up
 the valleys is just some congestion relieving tricks (algorithms) that
 high-effort congestion fixing applies.


 5. In which version of Physical Compiler is the command
    'set_congestion_options -coordinates' (that allows the tool to work on
    some particular area on the design for congestion fixing) available?

 The command is in v2001.08.


 6. Does the command 'set_congestion_options -coordinates' change the
    structure of your netlist?

 No, it does not change the structure of your netlist. The logical
 hierarchy of your design is maintained.


 7. At what specific time do you apply 'set_congestion_options'
    command?

 You need to apply this command before the first use of physopt,
 compile_physical, or create_placement command with -congestion or
 -timing_driven_congestion option. Subsequent runs with -congestion or
 -timing_driven_congestion option take the same values set by the
 'set_congestion_options' command.


 8. Can 'set_congestion_options -coordinates' be used with setting both
    horizontal and vertical thresholds at the same time?

 Yes. There is no conflict.


 9. (Slide 33: Floorplan and Placement) Why do we have to worry about
    placing cells with pins on METAL2 underneath the METAL4 and/or METAL5
    power nets? (In this case, the power nets are covering a long and thin
    channel created by two macros -- RAMs.)

 METAL2 not colliding with METAL4 and METAL5 is true. However, the
 point we want to make here is that by this configuration (long and
 thin channel with power nets on top), you are reducing the amount of
 routing resources, and therefore creating congestion problems.


 10. Are ideal nets and DRC free nets the same?

 They used to be the same but now they are not. No optimization is done
 on ideal nets, whereas only timing optimization (but not DRC fixing)
 is done on DRC free nets.


 11. What kind of guidelines do you have whether to use Physical
     Compiler or other tools (such as clock tree synthesis) to work on
     high-fanout nets?

 Clock tree synthesis is a separate topic and we do actually have a
 product that can do clock tree synthesis. For other high-fanout nets,
 we recommend that any nets of fanout up to 100 can just be run through
 physopt or compile_physical. Anything above that, you should mark it
 as an ideal net so that Physical Compiler does not try to optimize it.
 Then, we have a separate command called create_buffer_tree which has
 specific algorithms to deal with high-fanout nets. Please note that
 create_buffer_tree is NOT a clock tree synthesis command; it does not
 deal with clock skews. It merely improves the timing of high fanout
 nets.


 12. Does 'physopt -quick' give you a report only or actually do
     optimizations?

 It does optimizations, but it does not do DRC fixing or slew
 degradation calculation is turned off. The idea is to do a quick
 physopt run to quickly find out whether the design is sensible or not.
 If it is not sensible, you would be wasting your time applying full
 power on the physopt command.


 13. Can you do 'physopt -quick' and then 'physopt -inc'?

 Yes, you can, but don't. 'physopt -quick' runs through and gives you
 quick results, but the QoR is not so good. The resulting netlist and
 placement are not be a good starting point for further (incremental)
 optimization.


 14. Do you need a floorplan for 'physopt -quick'?

 Yes.


 15. Is there a way for Physical Compiler to place macros and standard
     cells concurrently?

 Yes, there is a beta-feature called minimal physical constraints (MPC)
 to be production-released in the middle of this year.


 16. Does RTL-to-Placed-Gates always produce better results than
     Gates-to-Placed_Gates?

 No, it does not always produce better results. For example, in some
 designs, all the heavy lifting has already been done -- creating
 scripts, wireload models -- producing a good starting point.
 RTL-to-Placed-Gates does not show much benefit in those examples. If
 you are taking a new design, out of the box, no wireload models,
 RTL-to-Placed-Gates gets you to timing closure much faster.


 17. Why does 'physopt, save the result, physopt -inc' give better
     results than 'physopt, physopt -inc'?

 It should not although it is possible because of some internal physopt
 algorithms. If it happens, please report to us and we should treat it
 as a bug and fix it.


 18. Is there any better way besides modifying RC parameters manually
     for different process corners?

 Unfortunately, there is no better method. We are working on improving
 the RC calculation issue and also deriving better information from
 physical libraries to apply to different parts of your design.


 19. What is the speed up with -num_cpu?

 It depends on the number of CPUs you specify. Typically, we see a
 speed up of 2.5 to 3 times if you specify '-num_cpu 4', and it scales
 if you have more than 4.


 20. If you add more link_libraries into your script, will Physical
     Compiler use all of them?

 Yes, it uses all of them on a first-listed basis. Physical Compiler
 uses your timing, DRC, and area costing to choose the cells. If you
 are trying to target some specific cells, you might have to specify a
 'dont_use' on other cells.


 21. What are the circuit limitations for RTL-to-Placed-Gates and
     Gates-to-Placed-Gates?

 The maximum circuit size for RTL2PG is 300K gates, and for G2PG is
 400K instances.


 22. Is creating a lot of regions (bounds) recommended?

 Creating a lot of regions is not recommended because run time
 dramatically increases, and in many cases you might be fighting
 against what Physical Compiler wants to do in terms of placing those
 cells. The general recommendation is to give the tool as much
 flexibility as possible to allow it to use the timing constraints to
 drive the placement optimization. Therefore, you try to reduce the
 number of regions (or bounds) specified.


 23. How do 'set_bounds' and 'set_congestion_option' interact?

 'set_bounds' pulls cells together and 'set_congestion_option' spreads
 them apart. This is why you have to be very careful dealing with these
 kinds of situations. You can end up giving the tool conflicting
 constraints, and it fights against itself. Again, try to give the tool
 as much flexibility as possible and interact with it whenever possible
 but not too much.


 24. I heard something about reading RTL without floorplan.  Can you
     explain?

 We have a project called minimal physical constraints (MPC) that can
 take a design with zero physical information and start to create that
 information and make recommendation as to what the floorplan should
 look like.  The feature will be released in the middle of this year.


 25. Does the tool take into account the routing resources for clock
     tree, scan structure, and so forth, that might come into the picture
     later?

 No, it does not guesstimate what comes next. If the scan chain is
 connected, those nets will be part of the netlist and those will be
 part of the routing requirements of the design. Similarly, if the
 design has clock buffer trees incorporated, Physical Compiler will
 consider the buffer tree routing as part of the routing estimation.


 26. How can I place some specific gates near some ports using
     RTL-to-Placed-Gates flow?

 You are not be able to do that in RTL-to-Placed-Gates because those
 instances do not exist at the beginning. In order to place some
 specific gates at specific locations, you have to produce some
 gate-level netlist. Then, you have specific instances to place
 wherever you want. With the existing gate-level netlist, you can use
 Gates-to-Placed-Gates for further optimization.


 27. Is Synopsys pushing RC estimation problem from the interface
     between synthesis and placement to placement and routing tools?

 Yes. The reason is that we now have more accurate information and it
 is appropriate to do it at the placement phase, but there are still
 issues trying to resolve timing discrepancies between placement and
 routing. The solution would be a much more integrated one for
 placement in global routing and placement in detailed routing.
 Synopsys could buy some place and route company and might be able to
 solve that problem! 8^)


============================================================================
 Trying to figure out a Synopsys bug?  Want to hear how 13,958 other users
  dealt with it?  Then join the E-Mail Synopsys Users Group (ESNUG)!
 
     !!!     "It's not a BUG,               jcooley@TheWorld.com
    /o o\  /  it's a FEATURE!"                 (508) 429-4357
   (  >  )
    \ - /     - John Cooley, EDA & ASIC Design Consultant in Synopsys,
    _] [_         Verilog, VHDL and numerous Design Methodologies.

    Holliston Poor Farm, P.O. Box 6222, Holliston, MA  01746-6222
  Legal Disclaimer: "As always, anything said here is only opinion."
 The complete, searchable ESNUG Archive Site is at http://www.DeepChip.com

 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)