-1
\$\begingroup\$

I have a question. I'm trying to simulate a ring oscillator with variation on Vth ,..., in hspice, but I get no convergence in dc sweep curves error. I tried some of solutions to convergence, but have not got any success, can you help me. The netlist & the errors are as followings:

V1 vdd 0 0.9V
V2 vss 0 0V

.PARAM bias=1m
 MN11 vss 15 11 vss N1 L=120n W=280n x=-7000u y=2000u
 MP11 vdd 15 11 vdd P1 L=120n W=980n x=-7000u y=6000u
 MN12 vss 11 12 vss N1 L=120n W=280n x=-5500u y=2000u
 MP12 vdd 11 12 vdd P1 L=120n W=980n x=-5500u y=6000u
 MN13 vss 12 13 vss N1 L=120n W=280n x=-4000u y=2000u
 MP13 vdd 12 13 vdd P1 L=120n W=980n x=-4000u y=6000u
 MN14 vss 13 14 vss N1 L=120n W=280n x=-2500u y=2000u
 MP14 vdd 13 14 vdd P1 L=120n W=980n x=-2500u y=6000u
 MN15 vss 14 15 vss N1 L=120n W=280n x=-1000u y=2000u
 MP15 vdd 14 15 vdd P1 L=120n W=980n x=-1000u y=6000u


.MODEL  N1  NMOS  LEVEL = 54
.MODEL  P1  PMOS  LEVEL = 54


.Variation
  .Global_Variation
  Parameter var=N() Y='180 + 8.02 * var' Z='17.5 + 0.37 * var'
  Nmos N1
 + VTH0=Perturb('Y')
  Pmos P1
 + VTH0=Perturb('Y')
.End_Global_Variation
.Local_Variation
  Parameter var=N() T='11.46 * var' U='0.54 * var'
  Nmos N1
 + VTH0=Perturb('T')
  Pmos P1
+ VTH0=Perturb('T')
.End_Local_Variation

.End_Variation

.op

.dc bias 1m 1m 1m monte=10
.print I(MN11) I(MN12)
.measure dc I11 find I(MN11) at=1m
.measure dc I12 find I(MN12) at=1m

.END

dcop: begin pseudo transient
dcop: ...failed with iteration exhausted
dcop: end pseudo transient
dcop: gshunt =      0.1000000E-03
dcop: gshunt =      0.5050000E-03
dcop: gshunt =      0.7277500E-03
dcop: gshunt =      0.8502625E-03
dcop: gshunt =      0.9176444E-03
dcop: gshunt =      0.9547044E-03
dcop: gshunt =      0.9750874E-03
dcop: gshunt =      0.9862981E-03
dcop: gshunt =      0.9924639E-03
dcop: gshunt =      0.9958552E-03
dcop: gshunt =      0.9977203E-03
dcop: gshunt =      0.9987462E-03
dcop: gshunt =      0.9993104E-03
dcop: gshunt =      0.9996207E-03
dcop: gshunt =      0.9997914E-03
dcop: gshunt =      0.9998853E-03
dcop: gshunt =      0.9999369E-03
dcop: gshunt =      0.9999653E-03
dcop: gshunt =      0.9999809E-03
dcop: gshunt =      0.9999895E-03
dcop: gshunt =      0.9999942E-03
dcop: gshunt =      0.9999968E-03
dcop: gshunt =      0.9999983E-03
dcop: gshunt =      0.9999990E-03
dcop: gshunt =      0.9999995E-03
dcop: gshunt =      0.9999997E-03
dcop: gshunt =      0.9999998E-03
dcop: gshunt =      0.9999999E-03
**error** no convergence in dc sweep curves at  1.00000E-03

I ask you to help me.

\$\endgroup\$

closed as unclear what you're asking by Olin Lathrop, dim, Bence Kaulics, Autistic, Daniel Grillo Jul 8 '16 at 13:41

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Show a schematic so we don't have to decode you spice code. Not everyone has Hspice \$\endgroup\$ – Voltage Spike Feb 1 '16 at 21:13
  • 1
    \$\begingroup\$ A ring oscillator has no stable DC operating point. Perhaps @laptop2d's suggestions will allow you to move past that obstacle... \$\endgroup\$ – Brian Drummond Feb 1 '16 at 21:37
  • \$\begingroup\$ I want to measure leakage current of a ring oscillator with variation on Vth, in 45 nm node technology. variation is a gaussian distribution with a mean and sigma, ( T & Y in the code). I do a monte carlo simulation as is mentioned in the code. So the result must be a distribution of leakage currents. \$\endgroup\$ – lili94 Feb 2 '16 at 12:43
1
\$\begingroup\$

My best guess is the solver can't find the DC operating point. Here are the ways I've overcome this problem in other simulators.

  • Turn the DC operating point analysis off.
  • If you can set initial conditions for voltage on your nodes try that
  • It doesn't look like you have a definite DC path to a lot of your nodes, try adding some parasitic resistance (a resistor on the order of 10^9 or above on some of the nodes to ground (on a board you'll have the same parasitic resistance anyway). And see if it helps the solver converge.
\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.