#235 When Using .TRAN analysis with UIC, unconnected pulse bug

analyses (40)
Kevin Szabo

Hi, this problem shows up in v24 and v25, in the windows version and the CYGWIN version.

When monitoring the current consumption of a ring oscillator, there is a wild +/- current swing for the first 1.5 nanoseconds UNTIL an unconnected voltage pulse source changes output levels. At that time the ringing instantly stops. The output of the voltage source is floating and is not connected to any of the circuit except for node "0" (gnd).

If I do the same analysis without UIC, the current is shown as a fairly stable 0.2 ma or so.

When I run the same netlist in LTCspice I don't see the influence of the voltage pulse source.

I am a complete SPICE newbie, so I may be messing something up or this is known behaviour. In case it is a real bug I thought you fine folks would like to know about it.

The ring oscillator and 50nm MOS models are from Jacob Baker's EXCELLENT book, CMOS Circuit Design, Layout, and Simulation.

Cheers, Kevin Szabo


  • Kevin Szabo

    Kevin Szabo - 2013-03-04

    Ring Oscillator exhibits problems with pulse voltage source

  • Holger Vogt

    Holger Vogt - 2013-03-04


    it is a bug. I can get a similar error with other R.O.s also without uic.

    We somehow have inherited this bug from veberable spice3f5 which shows the same strange behaviour.

    You may get rid of it (works at least for me) by switching the integration method using
    .option method=gear

    We will have a look.


  • Holger Vogt

    Holger Vogt - 2013-03-04
    • assigned_to: nobody --> h_vogt
    • status: open --> open-accepted
  • Holger Vogt

    Holger Vogt - 2013-05-18

    Even if this may be a bug, it is not very useful to start a transient simulation without prior dc operating point simulation (as is invoked if you use the uic option).

    The manual (chapt. 15.2.2) says for uic:

    Since no dc bias (initial transient) solution is computed
    before the transient analysis, one should take care to specify all dc source voltages on the
    .ic control line if they are to be used to compute device initial conditions.

    You are specifiying only one voltage, this may result in ringing as you experienced. I am not sure if it is appropriate to spend much time looking for the source of the ringing.

    Using the unconnected pulse source simply means that at the time of the pulse an (internal) breakpoint is set, which results in very small time steps after its occurence, so the simulator has a chance to restabilize.

    It is much better however to not select uic, then you will see that the initial voltage on node osc_out is just 0.6V, as prescribed on the .ic line, and everything goes fine.




Log in to post a comment.