How to deal with conflicts during simplify in LVS?

After the align and simplifiy, the device will be combined. Therefore, many resistors or transistors connected in parallel or in series will be reduced to one device. Sometimes, this leads to difficult matching between the extracted netlist and the original netlist, because sometimes series resistance will be recognized as a whole resistance, which is obviously wrong, but sometimes some of the same series or parallel resistance needs to be simplified.
What should I do in this case? How can I set a global or local simplify?


  • I occasionally have to go back to the schematic
    and update the length and segments properties
    to reflect the "observed layout reality". This would
    be one of your your "local" options, appropriate if
    the schematic reflecting as-laid-out makes the

    Asking "should be same, but different details"
    to be figured out 100%, may be too much to expect -
    even $$$,$$$ tools with professional grade PDKs
    will stumble on occasion.

    There's no shame in schematic realism.

  • @dick_freebird "Schematic realism" - I like that :)

    @Bian Would that be a decision based on the device class (model) or does it need to be an individual decision based on each individual instance of a device?

    In the next minor release (0.27.3) you should be able to turn off combination modes on device classes basis like this:

    res_cls = extract_devices(resistor, ...)
    res_cls.supports_parallel_combination = false
    res_cls.supports_serial_combination = false


  • edited July 20

    @Matthias Based on this individual instance.

    I want to compare a macro composed of many identical resistors connected in series. The netlist reader recognizes it as many individual resistors, but after simplifying, only the simplified resistors are still displayed, so I wonder if I can solve the problem by turning off some of the simpler.

    How should I deal with that?

    This Res5 is a part of a large circuit. To make the problem easier, I've redesigned this bug. The following is the test file.
    Sincerely thanks for your Help! :)

  • Maybe, you can try to simplify the schematic netlist as well :


  • @laurent_c Thanks! That works very well, I didn’t know method .simplify would work for the schematic too :D
    But now I've found a new bug, can't simplify multilevel call macros.
    For example, re1 is composed of 6 resistors and re2 is composed of 9 re1s. After schematic.simplify, there are nine re1 in the reference netlist. This Macro is not completely simplified.

    Is it possible to completely simplify multi-level call macros? Or is there any other way to deal with it?
    The following is the new rebuilded Bug.

Sign In or Register to comment.