• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC Design
  3. How to reduce time needed before transient simulation to...

Stats

  • Locked Locked
  • Replies 4
  • Subscribers 126
  • Views 25029
  • Members are here 0
This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

How to reduce time needed before transient simulation to be started in case of large circuit

P Chy
P Chy over 8 years ago

Hi,

I have to run transient simulation for a very large circuit. But every time, before starting transient simulation( simulation for different times), it is taking a significant amount of time to find DC solution. I have set up "Initial Condition Parameter" of transient simulation as follows:

ic: all, skipdc: no, readic: spectre.ic; also i tried, readic:spectre.fc. But both of them, don't help to reduce the simulation time for DC convergence. Can you please help me on this aspect? And another question: What's the difference between spectre.ic and spectre.fc files and which one should be appropriate for readic field?

Program: @(#)$CDS: virtuoso version 6.1.6-64b ,Sub version: sub-version IC6.1.6-64b.500.1

  • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    First of all, knowing the version of the IC tools isn't what's important here - it's knowing which simulator (I assume spectre, given the options you specify) and the version of the simulator too. That said, I doubt this is very dependent upon the version of the simulator.

    Assuming you have the default settings for transient, the spectre.ic is a dump of the initial conditions after the initial transient solution (the DC operating point for the transient, where the transient starts from) is computed - as set by the write parameter. The spectre.fc is the final operating point at the end of the transient (as set by the writefinal parameter).

    You are trying to read an initial condition file, but still asking it to compute the dc operating point - that's maybe OK, but it may make it hard to converge. Reading initial conditions should be reserved for special cases when you really need the initial conditions to be different from the DC solution (e.g. you need a capacitor charged, or you're trying to avoid a metastable state in an oscillator, say).

    Most likely you should just use readns="spectre.ic" (leave skipdc=no, readic blank). Provided that the spectre.ic is for the same circuit condition as the one you're currently simulating, this should speed up the DC because it can start from the previous good solution. This of course depends upon the spectre.dc existing - if it doesn't exist yet, then this won't help.

    In terms of understanding why the DC convergence takes a while, you might be able to use +diagnose in the userCmdLineOptions field in Setup->Environment - although that depends now which spectre version you're using as to whether it is available or helps in any way).

    Regards,

    Andrew.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • P Chy
    P Chy over 8 years ago

    Hi Andrew,
    Here i see that i am using following simulator:
    Cadence (R) Virtuoso (R) Spectre (R) Circuit Simulator
    Version 12.1.1.048 64bit (found from input.log file)

    Now i have several questions:
    1. you said that for transient simulation i need to set up readns="spectre.ic"(leave skipdc=no, readic blank), but at that time, i also need spectre.dc file. I don't know why this spectre.dc file is needed and how? because in transient simulation options, i don't see any field like readns, readic where i would use spectre.dc file.

    2.If i assume that spectre.dc file is needed for rapid DC convergence during transient simulation, at that time, do i have to run dc simulation before transient simulation? because i see, there is a field" write" in option of dc simulation which would produce spectre.dc file. And what's the difference between spectre.dc and spectre.ic files? Do they contain same information?

    3.Actually, i have to simulate large image read circuit of different columns. Every column contains same circuit diagram and same number of transistors. So circuit containing 256 columns is just bigger than circuit containing 64 columns, but every column includes same circuit diagram. So at that time, if i use spectre.ic (found from circuit containing 64 columns) in readns of bigger circuit (circuit containing 256 columns) during transient simulation, will this trick help to reduce DC convergence time, (although some extra nodes will be added to the second bigger circuit)?


    4. Can you please explain (your last point) in more details about how to find out the reasons of taking too much time for DC convergence? sorry, i couldn't get it.

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel
  • Andrew Beckett
    Andrew Beckett over 8 years ago

    You seem very confused by relatively simple things - I suspect you're assigning more meaning to files than maybe they deserve. Let me explain a little about what these "spectre.dc", "spectre.ic" and "spectre.fc" files are.

    1. First of all, the naming of the files doesn't imply any meaning - it's just a matter of what ADE calls various files by default. If I turn on a DC operating point analysis, and a short transient and leave everything else as default in ADE, it netlists as:

      dcOp dc write="spectre.dc" maxiters=150 maxsteps=10000 annotate=status
      dcOpInfo info what=oppoint where=rawfile
      tran tran stop=100n write="spectre.ic" writefinal="spectre.fc" \
      annotate=status maxiters=5

    2. The write parameter of an analysis (e.g. dc or tran) writes the DC solution from the beginning of the analysis. For a dc operating point, this is the value computed with all capacitors open, all inductors shorted, and all sources at their "dc" value (this means that if the dc value is set it uses that, otherwise it uses the time-zero value of the source). For a transient analysis, again all caps open and all inductors shorted, but it always uses the time-zero value of all the sources (so that the initial transient solution matches the value at the very first time point of the transient). So the spectre.dc and spectre.ic contents can be different.
    3. The writefinal parameter (available on dc and tran and a few others) is the solution at the end of the analysis. For a dc analysis this is useful if you did a dc sweep, and transient it's the solution at the end of the time simulation.
    4. All these files contain node voltages and some currents - they represent a "node set".
    5. The tran analysis has options on the Algorithm tab for readic and readns. (dc has equivalent options called readforce and readns). These allow you to read one of these types of files to give a starting condition. The readns will use the contents of the file as a starting point for the DC solution - it essentially drives each node by a 1 ohm resistor (by default) with the voltage at each node, and tries to reach convergence - then removes the sources and continues to reach convergence - so it's a hint to pull the solution in the right way and make it easier to converge by giving a decent (hopefully) starting point. With readic the difference is that it doesn't try to remove the forcing sources after converging - that is then the converged solution (they are then removed for the transient though). If you do skipdc=yes, it will just use the readic solution as-is and won't try to converge further - which may be a problem if the readic file doesn't match the circuit.
    6. It is not required to read these files - they are just a convergence aid. I suggest you read Ken Kundert's book - A Designer's Guide to SPICE and Spectre for more details on how to aid convergence.
    7. I doubt very much that using the initial transient solution from a much smaller circuit will help with the nodeset of the bigger circuit since three quarters of the circuit has no convergence aid, unless the convergence problem is in some common part of the circuit unrelated to the repeated part.
    8. I already explained how to add the +diagnose option to add more convergence diagnostics.

    If this isn't enough - you should contact customer support.

    Regards,

    Andrew.

    • Cancel
    • Vote Up +1 Vote Down
    • Cancel
  • Frank Wiedmann
    Frank Wiedmann over 8 years ago

    In order to speed up dc convergence, you can also try to use the +dcopt command-line option, available starting with MMSIM 14.1 ISR3 (see https://support.cadence.com/wps/mypoc/cos?uri=deeplinkmin:ViewSolution;DocumentType=tbshtng;solutionNumber=20360814).

    • Cancel
    • Vote Up 0 Vote Down
    • Cancel

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information