The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Simulators >> RF Simulators >> Signal exceeds blowup quantity
https://designers-guide.org/forum/YaBB.pl?num=1284463608

Message started by .matteo on Sep 14th, 2010, 4:26am

Title: Signal exceeds blowup quantity
Post by .matteo on Sep 14th, 2010, 4:26am

Hi,
I'm trying to simulate a lumped element balun but when I run the tran analysis I get this error:


Code:
ERROR (SPECTRE-16384): Signal V(I6.net30) = 1.01827 GV exceeds the blowup limit for the quantity `V' which is (1 GV). It is likely that the circuit is unstable. If you really want signals this large, set the `blowup' parameter of this quantity to a larger value.


My network is passive.
I also added huge res to ground to all the floating (and some of the not-floating) nodes and the DC value of all the inductance as initial condition.

I realized that the voltage blows up when the derivative of the sin at the input is maximum.

How can I solve this problem?

Also, I tried to set the blowup parameter by creating a blow.txt file with


Code:
VoltQuant quantity name="V" blowup=1e9


but I get the error


Code:
ERROR (SFE-1997): "/home/bassimat/st065/blowup.txt" 1: VoltQuant: parameter `dc': Unknown parameter name `V' found in expression.


thanks
.matteo

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 14th, 2010, 8:28am

I suspect that Spectre is confused by your quantity statement because you have given it in a Spice netlist, and the Spice parser is treating it as a voltage source. And it is odd that you are using the quantity statement to set the blowup limit to 1GV when the limit is 1GV by default.

But you may be trying to treat the symptom rather than the cause of your problem. Do you expect your circuit to produce such large voltages? If not, you should inspect the offending signal and look for the classic pattern of exponential growth. If you see it, then your circuit is not passive. You can create a non-passive circuit using only resistors, capacitors, and inductors if you use a negative component value. You can use the info statement to have Spectre print the the largest and smallest value specified for each component parameter, which makes looking for negative values easy. However, there is another common situation that could cause this problem. If you are using a coupled inductor, you will need to assure that the inductance matrix is positive definite.

-Ken

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 14th, 2010, 8:31am

Show me netlists.

I will check stability of your circuit by eigen values using Agilent GoldenGate.

Title: Re: Signal exceeds blowup quantity
Post by .matteo on Sep 14th, 2010, 8:50am


Ken Kundert wrote on Sep 14th, 2010, 8:28am:
I suspect that Spectre is confused by your quantity statement because you have given it in a Spice netlist, and the Spice parser is treating it as a voltage source. And it is odd that you are using the quantity statement to set the blowup limit to 1GV when the limit is 1GV by default.

But you may be trying to treat the symptom rather than the cause of your problem. Do you expect your circuit to produce such large voltages? If not, you should inspect the offending signal and look for the classic pattern of exponential growth. If you see it, then your circuit is not passive. You can create a non-passive circuit using only resistors, capacitors, and inductors if you use a negative component value. You can use the info statement to have Spectre print the the largest and smallest value specified for each component parameter, which makes looking for negative values easy. However, there is another common situation that could cause this problem. If you are using a coupled inductor, you will need to assure that the inductance matrix is positive definite.

I was going to set another value if I got it working. It looks like you're right, it seems its treating it as a voltage source. I tried to put it in the ocean script but it gives the same error.
Can you teach me how to check for the smallest/largerst voltage in the circuit using the info statement? I dont know how to do it, even a reference is fine


pancho_hideboo wrote on Sep 14th, 2010, 8:31am:
Show me netlists.

I will check stability of your circuit by eigen values using Agilent GoldenGate.

I attached my netlist, thanks

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 14th, 2010, 8:59am

Run transient analysis with sinephase=0 not 45.


.matteo wrote on Sep 14th, 2010, 8:50am:
I attached my netlist, thanks
Maybe I can inform you something after 24 hours.

Title: Re: Signal exceeds blowup quantity
Post by .matteo on Sep 14th, 2010, 9:02am


pancho_hideboo wrote on Sep 14th, 2010, 8:59am:
Run transient analysis with sinephase=0 not 45.

I did it, it doesn't change anything.
(I set it to 45 to check for the derivative position, but nothing interesting unfortunately.)

Title: Re: Signal exceeds blowup quantity
Post by .matteo on Sep 14th, 2010, 9:04am


Quote:
Maybe I can inform you something after 24 hours.

That's great, thank you a lot.
Can I do it somehow using Agilend ADS? I dont have Agilent GoldenGate

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 14th, 2010, 9:18am

I think increasing "blowup parameter" results in completely vain.
See http://www.designers-guide.org/Forum/YaBB.pl?num=1284058751/4#4


.matteo wrote on Sep 14th, 2010, 9:04am:

Quote:
Maybe I can inform you something after 24 hours.
That's great, thank you a lot.
Can I do it somehow using Agilend ADS? I dont have Agilent GoldenGate
Try two-port S-parameter analysis with "p2" and "s2" as ground.
Then evaluate K-factor.
You could get some informations unless unstability poles of your circuit are canceled by zeros.

Even if unstability poles of your circuit are canceled by zeros, transient behavior could be unstable.
This is known as "Internal Unstability".
See http://www.designers-guide.org/Forum/YaBB.pl?num=1190272820/18#18

Title: Re: Signal exceeds blowup quantity
Post by .matteo on Sep 14th, 2010, 9:32am


pancho_hideboo wrote on Sep 14th, 2010, 9:18am:
I think increasing "blowup parameter" results in completely vain.
See http://www.designers-guide.org/Forum/YaBB.pl?num=1284058751/4#4


.matteo wrote on Sep 14th, 2010, 9:04am:

Quote:
Maybe I can inform you something after 24 hours.
That's great, thank you a lot.
Can I do it somehow using Agilend ADS? I dont have Agilent GoldenGate
Try two-port S-parameter analysis with "p2" and "s2" as ground.
Then evaluate K-factor.
You could get some informations unless unstability poles of your circuit are canceled by zeros.

Even if unstability poles of your circuit are canceled by zeros, transient behavior could be unstable.
This is known as "Internal Unstability".
See http://www.designers-guide.org/Forum/YaBB.pl?num=1190272820/18#18


That's what I did before posting and K is always more than one.
Ok, I think I should wait for the results of your stability test. Meanwhile I'll look for the info statement thing to try to understand what's going on.
Thanks

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 14th, 2010, 11:34am

For information on the info statement, run "spectre -h info".

You probably need ...
Code:
printExtremes info what=input extremes=only
-Ken

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 14th, 2010, 11:50am

Don't bother with the info statement, there are no negative values. I am certain the problem is with your mutual inductor. To confirm this you should build the inductance matrix and feed it into Matlab or Octave and check to see if it is positive definite, and I am pretty confident that it is not.

Once you confirm that the inductance matrix is not positive definite, then you will need to modify it to make it so. It is generally sufficient to make it diagonally dominant (see http://en.wikipedia.org/wiki/Diagonally_dominant_matrix). You will probably need to reduce the size of the couplings.

Check that. You will need to reduce the size of your couplings. The couplings of 1 will definitely have to go. Cutting them all by a factor of 2 allows the simulation to complete.

-Ken

Title: Re: Signal exceeds blowup quantity
Post by RFICDUDE on Sep 15th, 2010, 3:26am

To debug the problem, you probably want to start by removing the mutual coupling (k=1) to the eddy current loss model components.

If that does not stop the DC convergence issue, then remove all the mutual coupling.

You certainly need the coupling between windings to represent the physical coupling, but I'm not sure how you go about verifying that the eddy current loss model is correct and physically accurate.


Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 15th, 2010, 8:09am


Code:
   // Ka=1.0
   K0 mutual_inductor coupling=Ka ind1=L0 ind2=L2
   K1 mutual_inductor coupling=Ka ind1=L1 ind2=L3
   K2 mutual_inductor coupling=Ka ind1=L5 ind2=L7
   K3 mutual_inductor coupling=Ka ind1=L4 ind2=L6

   // Kb=0.185
   K4 mutual_inductor coupling=Kb ind1=L7 ind2=L8
   K5 mutual_inductor coupling=Kb ind1=L6 ind2=L9

   // Kc=0.823
   K6 mutual_inductor coupling=Kc ind1=L0 ind2=L7
   K7 mutual_inductor coupling=Kc ind1=L1 ind2=L6

(1) Stability Judgement by Eigen Values using Agilent GoldenGate.
It reports this circuit is stable.

(2) HB Analysis can converge even if Ka=1.0.

(3) Transient Analaysis of Cadence Spectre can complete without "Blowup" if we reduce Ka to 0.4.

(4) Transient Analaysis of Agilent GoldenGate can complete without "internal time step is too small" if we reduce Ka to 0.45.

(5) Transient Analaysis of Synopsys HSPICE can complete without "internal time step is too small" even if we set Ka=1.0.

Here amplitudes of "s1" and "s2" for (3) and (4) are same as amplitudes of result (2).
Amplitudes of (5) are completely same as result (2).

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 15th, 2010, 8:19am

The reason why HSPICE gave half results compared to HB results is that I was not adding "'" in ".param" statments.

Code:
 **warning** (input.ckt:6) expression 1*1.0    not enclosed in quotes.      Will be evaluated as:  1.0000  instead
 **warning** (input.ckt:6) expression 1*0.185  not enclosed in quotes.      Will be evaluated as:  1.0000  instead
 **warning** (input.ckt:6) expression 1*0.823  not enclosed in quotes.      Will be evaluated as:  1.0000  instead

If I adds "'" in ".param" statement, Transient results of HSPICE can give completely same results as HB analysis of Agilent GoldenGate.

"Netlist for HSPICE"
Quote:
** Generated for: hspiceD
** Generated on: Sep 16 13:52:44 2010
** Design library name: My_RFDE_Test
** Design cell name: test_matteo
** Design view name: schematic
.PARAM prf=0 frf=10G ka='1*1.0' kb='1*0.185' kc='1*0.823'

.PROBE TRAN
+    V(net9)
+    V(s2)
+    V(ct)
+    V(s1)
+    V(p1)
+    V(in)

.PROBE AC
+    V(net9) VP(net9)
+    V(s2) VP(s2)
+    V(ct) VP(ct)
+    V(s1) VP(s1)
+    V(p1) VP(p1)
+    V(in) VP(in)

*.AC poi 1 10g
.pz v(s1) v1

.TRAN 10e-12 2e-9 START=0.0

.OP

.TEMP 25
.OPTION
+    ARTIST=2
+    INGOLD=2
+    MEASOUT=1
+    PARHIER=LOCAL
+    PSF=2
.INCLUDE "~/RFDE/matteo.spi"

** Library name: My_RFDE_Test
** Cell name: test_matteo
** View name: schematic
v1 net9 0 AC 1 SIN 0 '2*sqrt(100*10**((prf-30)/10))' frf
r1 in net9 50
r0 ct 0 100e6
c1 s2 0 200e-15
c0 s1 0 200e-15
c9 in p1 1.5e-12 IC=0.0
c3 in 0 80e-15 IC=0.0
.END

Title: Re: Signal exceeds blowup quantity
Post by .matteo on Sep 15th, 2010, 9:02am

@pancho_hideboo
Thank you very much for spending time on simulting / helping me out understanding this issue.

@ken,RFICDUDE
Yes, I tried to decrease the coupling factor and (as pancho_hideboo found out) my circuit converges for Ka<=3.9 ..even if now its not the same balun of before (and I think I've to go back to ADS and fit it again)

I'm still confused though.
pancho_hideboo, you checked for stability with Agilent GoldenGate and I guess you found the inductance matrix positive definite == all the eigenvalues greater than zero, right?
So, why for ka=1 is still not converging? Am I messing up two different kind of stabilities?


Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 15th, 2010, 9:09am


.matteo wrote on Sep 15th, 2010, 9:02am:
So, why for ka=1 is still not converging? Am I messing up two different kind of stabilities?
"Non Physical" are completely different issues from "Unstability".

Total energy stored in inductors with coupling is negative for your circuits with your parameters.
This is "Non-Physical".

This situation is similar to "Non-Causal-System" which is also "Non Physical".
There is no problem in pure frequency domain HB Analysis for handling "Non-Causal-System".
But it is not true for time domain analysis.

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 15th, 2010, 12:21pm

Let me try to clear a few things up. First, this is not a convergence problem, and it is not a Spectre problem. Your circuit is unstable and Spectre is right to issue the blow up message because the resulting waveforms do shoot off to infinity.

Your circuit is unstable because your inductance matrix is not positive definite. I know this because I converted your netlist into a python script that constructed and analyzed the eigenvalues of your inductance matrix. That script is:

Code:
import numpy
from math import sqrt

L = numpy.zeros((10, 10))
L0=1.3e-9
L1=1.3e-9
L2=1.4e-9
L3=1.4e-9
L4=1.5e-9
L5=1.5e-9
L6=1.265e-9
L7=1.265e-9
L8=4.165e-9
L9=4.165e-9
L[0][2] = 1*sqrt(L0*L2)
L[2][0] = 1*sqrt(L2*L0)
L[1][3] = 1*sqrt(L1*L3)
L[3][1] = 1*sqrt(L3*L1)
L[5][7] = 1*sqrt(L5*L7)
L[7][5] = 1*sqrt(L7*L5)
L[4][6] = 1*sqrt(L4*L6)
L[6][4] = 1*sqrt(L6*L4)
L[7][8] = 0.185*sqrt(L7*L8)
L[8][7] = 0.185*sqrt(L8*L7)
L[6][9] = 0.185*sqrt(L6*L9)
L[9][6] = 0.185*sqrt(L9*L6)
L[0][7] = 0.823*sqrt(L0*L7)
L[7][0] = 0.823*sqrt(L7*L0)
L[1][6] = 0.823*sqrt(L1*L6)
L[6][1] = 0.823*sqrt(L6*L1)
L[0][0] = L0
L[1][1] = L1
L[2][2] = L2
L[3][3] = L3
L[4][4] = L4
L[5][5] = L5
L[6][6] = L6
L[7][7] = L7
L[8][8] = L8
L[9][9] = L9
ev = numpy.linalg.eigvalsh(L)
print ev

It computed the eigenvalues as

Code:
[ -6.69232309e-10  -6.69232309e-10   4.50778482e-10   4.50778482e-10
  2.31985763e-09   2.31985763e-09   3.26523077e-09   3.26523077e-09
  4.26336543e-09   4.26336543e-09]

Several of the eigenvalues are negative, meaning that the inductance matrix is not positive definite, meaning that your coupled inductor is not passive.

So this leaves three questions to be answered.
1. Why does ADS eigenanalysis report the circuit as being stable?
I don't know why. Perhaps Pancho Hideboo accidentally modified the circuit, or perhaps there is a bug in ADS. A pole-zero analysis by Spectre reports RHP poles.

2. Why does harmonic balance analysis give a bounded result (even with k=1)?
Like DC analysis, HB analysis computes a steady-state solution regardless of whether that solution is stable. In a very real sense, this is a problem with HB analysis because it can lead you to believe your circuit is working properly when it is really unstable.

3. Why do HSpice results remain bounded?
I believe that this is because HSpice is using too large a timestep. It is a known problem with transient simulators that like HB simulators they too can sometimes ignore instabilities if they take too large a timestep. Forcing them to take smaller timesteps will eventually cause them to properly produce waveforms that exhibit the instability.

One final comment. In his last post, Pancho Hideboo seems to suggest that the fact that HB simulators are capable of simulating non-physical systems is a good thing. In fact it is not. It can lead designers to into a false sense of security. For example, in this case if you were using only a harmonic balance simulator, you might have missed the fact that your inductor model is fundamentally flawed.

-Ken

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 15th, 2010, 8:31pm


Ken Kundert wrote on Sep 15th, 2010, 12:21pm:
3. Why do HSpice results remain bounded?
I believe that this is because HSpice is using too large a timestep.
No.
Even if I set "delmax" fairly small, results are same.

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 15th, 2010, 10:06pm

Pancho Hideboo,
    Please post the full HSpice netlist.

-Ken

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 16th, 2010, 8:15am


Ken Kundert wrote on Sep 15th, 2010, 10:06pm:
Please post the full HSpice netlist.
I'm using the following Sub Netlist of HSPICE format commonly for Synopsys HSPICE and Cadence Spectre.

"matteo.spi"
Quote:
* Converted from Spectre Netlist to HSPICE Netlist

* Generated for: spectre
* Generated on: Sep 14 17:33:16 2010
* Design library name: RX
* Design cell name: balun_test
* Design view name: schematic

* Library name: RX
* Cell name: balun_eq_mdl
* View name: schematic
.subckt balun_eq_mdl ct p1 p2 s1 s2
   C12  s1 net033   42.5e-15 ic=0
   C8  net054 0   28e-15 ic=0
   C10  net052 0   14e-15 ic=0
   C13  net033 0   14e-15 ic=0
   C9  ct net054   85e-15 ic=0
   C11  s2 net052   42.5e-15 ic=0
   C14  p1 s2   9e-15 ic=0
   C15  p2 s2   9e-15 ic=0
   C16  p2 s1   9e-15 ic=0
   C6  p1 s1   9e-15 ic=0
   C5  net15 0   260e-15 ic=0
   C4  net27 net15   83e-15 ic=0
   C3  net17 0   130e-15 ic=0
   C2  p2 net17   41.5e-15 ic=0
   C1  net14 0   130e-15 ic=0
   C0  p1 net14   41.5e-15 ic=0
   R26  s2 0   100e6
   R27  p2 0   100e6
   R28  p1 0   100e6
   R24  s1 0   100e6
   R16  net32 0   100e6
   R17  net29 0   100e6
   R18  net095 0   100e6
   R19  net088 0   100e6
   R22  net0146 0   100e6
   R23  net089 0   100e6
   R21  net31 0   100e6
   R15  net084 net052   56
   R14  net086 net054   56
   R8  0 net054   38
   R13  net092 ct   2.53
   R11  0 net033   76
   R12  net090 s2   2.53
   R20  net30 0   100e6
   R9  0 net052   76
   R6  0 net15   40
   R5  0 net17   80
   R2  0 net14   80
   R1  net33 p2   2.65
   R0  net35 net27   2.65

   R7   net088  net089   2.7e3
   R10  net0146 net095   2.7e3

   R4  net29 net30   2.75e3
   R3  net31 net32   2.75e3

*   Ka=1.0
   K0 L0 L2   K='Ka'
   K1 L1 L3   K='Ka'
   K2 L5 L7   K='Ka'
   K3 L4 L6   K='Ka'

*   Kb=0.185
   K4 L7 L8   K='Kb'
   K5 L6 L9   K='Kb'

*   Kc=0.823
   K6 L0 L7   K='Kc'
   K7 L1 L6   K='Kc'

   L0  p1 net35   1.3e-9 ic=0
   L2  net32 net31   1.4e-9 ic=0

   L1  net27 net33   1.3e-9 ic=0
   L3  net30 net29   1.4e-9 ic=0

   L5  net095 net0146   1.5e-9 ic=0
   L7  s1 net092   1.265e-9 ic=0

   L4  net089 net088   1.5e-9 ic=0
   L6  ct net090   1.265e-9 ic=0

   L8  net033 net086   4.165e-9 ic=0
   L9  net054 net084   4.165e-9 ic=0
.ends balun_eq_mdl
* End of subcircuit definition.

* Library name: RX
* Cell name: balun_test
* View name: schematic
X25  ct p1 0 s1 s2  balun_eq_mdl

Top Netlist for HSPICE is http://www.designers-guide.org/Forum/YaBB.pl?num=1284463608/13#13.
Here I add ".pz" statement.

The following is a Top Netlist for Cadence Spectre
Quote:
// Generated for: spectre
// Generated on: Sep 16 14:13:04 2010
// Design library name: My_RFDE_Test
// Design cell name: test_matteo
// Design view name: schematic
simulator lang=spectre
global 0
parameters prf=0 frf=10G Ka=1*1.0 Kb=1*0.185 Kc=1*0.823
include "~/RFDE/matteo.spi"

// Library name: My_RFDE_Test
// Cell name: test_matteo
// View name: schematic
V1 (net9 0) vsource mag=1 type=sine sinedc=0 ampl=2*sqrt(2*50*10**((prf-30)/10)) freq=frf
R1 (in net9) resistor r=50
R0 (ct 0) resistor r=100M
C1 (s2 0) capacitor c=200f
C0 (s1 0) capacitor c=200f
C9 (in p1) capacitor c=1.5p ic=0*447.2m
C3 (in 0) capacitor c=80f ic=0*447.2m

simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=25.0 \
   tnom=27 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 sensfile="../psf/sens.output" \
   checklimitdest=psf

pz ( s1 0 ) pz iprobe=V1 freq=1

tran tran stop=2n errpreset=moderate write="spectre.ic" \
   writefinal="spectre.fc" annotate=status maxiters=5

designParamVals info what=parameters where=rawfile
save in p1 s1 ct s2
saveOptions options save=selected pwr=none

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 16th, 2010, 9:46am


Ken Kundert wrote on Sep 15th, 2010, 12:21pm:
First, this is not a convergence problem, and it is not a Spectre problem.
I can never conclude there is no problem in Cadence Spectre.


Quote:
1. Why does ADS eigenanalysis report the circuit as being stable?
I don't know why. Perhaps Pancho Hideboo accidentally modified the circuit, or perhaps there is a bug in ADS.
A pole-zero analysis by Spectre reports RHP poles.
I don't think so.
First, I use Agilent GoldenGate not Agilent ADSsim.

Even if total energy stored in inductors with coupling is negative, this circult as total system could be stable since it includes many resistors.
So there can be stable for steady state.

Pole-Zero Analysis of Synopsys HSPICE also reports no RHP pole like followings.
"Results of PZ Analysis of Synopsys HSPICE"
Quote:
******   pole/zero analysis  
   input =  0:v1          output = "s1" "node")

      poles (rad/sec)                 poles ( hertz)
real            imag            real            imag            
-49.5049k       0.              -7.87896k       0.              
-10.9217g       -13.1425g       -1.73825g       -2.09170g      
-10.9217g       13.1425g        -1.73825g       2.09170g        
-14.9901g       -106.390g       -2.38575g       -16.9324g      
-14.9901g       106.390g        -2.38575g       16.9324g        
-30.2939g       -113.648g       -4.82142g       -18.0876g      
-30.2939g       113.648g        -4.82142g       18.0876g        
-38.2914g       0.              -6.09427g       0.              
-58.2373g       1.72220g        -9.26875g       274.096x        
-58.2373g       -1.72220g       -9.26875g       -274.096x      
-72.8863g       0.              -11.6002g       0.              
-74.5901g       0.              -11.8714g       0.              
-109.473g       0.              -17.4231g       0.              
-110.544g       390.199g        -17.5936g       62.1021g        
-110.544g       -390.199g       -17.5936g       -62.1021g      
-237.094g       0.              -37.7347g       0.              
-242.241g       0.              -38.5538g       0.              
-765.490g       0.              -121.832g       0.              

      zeros (rad/sec)                 zeros ( hertz)
real            imag            real            imag            
-120.630m       118.201         -19.1989m       18.8123        
-120.630m       -118.201        -19.1989m       -18.8123        
-138.970x       0.              -22.1178x       0.              
-17.5797g       -110.761g       -2.79790g       -17.6281g      
-17.5797g       110.761g        -2.79790g       17.6281g        
-28.5668g       -229.147g       -4.54655g       -36.4699g      
-28.5668g       229.147g        -4.54655g       36.4699g        
-36.2165g       0.              -5.76404g       0.              
-60.4080g       0.              -9.61424g       0.              
-72.8863g       0.              -11.6002g       0.              
-72.8863g       0.              -11.6002g       0.              
-75.1812g       -567.353g       -11.9655g       -90.2970g      
-75.1812g       567.353g        -11.9655g       90.2970g        
-75.6976g       0.              -12.0477g       0.              
-204.058g       0.              -32.4769g       0.              
-238.696g       0.              -37.9897g       0.              
-785.480g       0.              -125.013g       0.              

***** constant factor = 59.9655x



"Results of Stability Analysis of Agilent GoldenGate"
Quote:
*** Writing dc estimation file './estimate.ggr'.
Starting eigenvalues stability analysis.
Initializing eigenvalues algorithm.
Eigenvalues stability analysis : Iteration No 1 : 10 % completed.
Eigenvalues stability analysis : Iteration No 1 : 20 % completed.
Eigenvalues stability analysis : Iteration No 1 : 30 % completed.
Eigenvalues stability analysis : Iteration No 1 : 40 % completed.
Eigenvalues stability analysis : Iteration No 1 : 50 % completed.
Eigenvalues stability analysis : Iteration No 1 : 60 % completed.
Eigenvalues stability analysis : Iteration No 1 : 70 % completed.
Eigenvalues stability analysis : Iteration No 1 : 80 % completed.
Eigenvalues stability analysis : Iteration No 1 : 90 % completed.
Eigenvalues stability analysis : Iteration No 1 : 100 % completed.
Eigenvalues stability analysis completed.
Stability              : The circuit is stable.


Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 16th, 2010, 10:01am

"Results of  PZ Analysis of Cadence Spectre"
Quote:
****************
PZ Analysis `pz'
****************
                     Poles (Hz)

          Real                       Imaginary                 Qfactor

  1   -7.87896e+03                  0.00000e+00              5.00000e-01
  2   -1.73549e+09              +/- 2.15048e+09              7.96149e-01
  3   -5.47662e+09                  0.00000e+00              5.00000e-01
  4   -9.44098e+09              +/- 1.16120e+08              5.00038e-01
  5   -1.20469e+10                  0.00000e+00              5.00000e-01
  6   -6.68211e+09              +/- 1.58062e+10              1.28407e+00
  7   -2.35646e+09              +/- 1.72776e+10              3.69994e+00
  8   -1.88534e+10                  0.00000e+00              5.00000e-01
  9   -3.81776e+10                  0.00000e+00              5.00000e-01
 10   -3.88584e+10                  0.00000e+00              5.00000e-01
 11   -2.40787e+10              +/- 4.04759e+10              9.77971e-01
 12    6.58446e+10                  0.00000e+00  **RHP       -5.00000e-01
 13    9.88236e+10                  0.00000e+00  **RHP       -5.00000e-01
 14   -1.41419e+11                  0.00000e+00              5.00000e-01
 15   -6.70474e+11                  0.00000e+00              5.00000e-01
 16   -6.71843e+11                  0.00000e+00              5.00000e-01

                     Zeros (Hz)
                     at V(s1,0)/V1

          Real                       Imaginary                 Qfactor

  1    1.57888e+00              +/- 8.47182e+03              -2.68286e+03
  2   -2.21241e+07                  0.00000e+00              5.00000e-01
  3   -5.47474e+09                  0.00000e+00              5.00000e-01
  4   -9.44452e+09                  0.00000e+00              5.00000e-01
  5   -1.16002e+10                  0.00000e+00              5.00000e-01
  6   -1.22973e+10                  0.00000e+00              5.00000e-01
  7   -1.84450e+09              +/- 1.75446e+10              4.78215e+00
  8   -1.23445e+10              +/- 2.90323e+10              1.27781e+00
  9   -3.45619e+10                  0.00000e+00              5.00000e-01
 10   -3.87240e+10                  0.00000e+00              5.00000e-01
 11   -3.06801e+10              +/- 5.50694e+10              1.02736e+00
 12    8.03933e+10                  0.00000e+00              -5.00000e-01
 13    1.16551e+11                  0.00000e+00              -5.00000e-01
 14   -1.41505e+11                  0.00000e+00              5.00000e-01
 15   -6.70887e+11                  0.00000e+00              5.00000e-01
 16   -6.72587e+11                  0.00000e+00              5.00000e-01

Constant factor =  5.99655e+09

DC gain =  1.35200e-08
Results of Cadence Spectre's PZ Analysis are very suspicious.

(1) Results of poles and zeros are different from results of HSPICE especially for zeros.

(2) Why perfect real axis RHP pole could be reported for this circuit which include R, L and C ?
If circuit is composed of R>0 and L<0 without C, all poles are located on perfect real axis in RHP.

(3) If I set Ka=0.41, 0.42, 0.43, 0.44 and 0.45, Cadence Spectre's PZ Analysis does not report any RHP pole.
However transient Analysis of Cadence Spectre still fail due to "blowup".

On the other hand, Transient Analysis of Agilent GoldenGate can complete even if I set Ka=0.45.
Transient Analysis of Synopsys HSPICE can complete even if I set Ka=1.0.

Even if total system is stable, I think transient analysis could diverge if partial unstabilities are included.
But this could be dependent on algorithm of Transient Analysis.


Ken Kundert wrote on Sep 15th, 2010, 12:21pm:
For example, in this case if you were using only a harmonic balance simulator,
you might have missed the fact that your inductor model is fundamentally flawed.
I agree to this.
As well, we never must not believe only one specific vendor's simulator.

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 16th, 2010, 12:59pm

Pancho Hideboo,
   What a mess. It does not seem like any of the simulators are doing all that well. I am deeply sceptical of the HSpice results. I have shown that the coupled inductor is not passive, and your argument that the resistors in the circuit might somehow make the circuit stable is dubious. If you combine a resistor with an negative inductor, the resulting circuit is unstable regardless of how large the resistor is. The only way make such a circuit stable is to add a positive inductor in such a way as it swamps out the negative inductor, and that cannot happen here.

What size time step did you use when you simulated the circuit in HSpice transient analysis? To be convinced that HSpice transient analysis really believed the circuit was stable, I would want to perform the simulation with the maximum time step set well below 100fs and I would want to whack the circuit with a very rapid pulse to see if I could excite the unstable response.

-Ken

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 16th, 2010, 8:08pm


Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
If you combine a resistor with an negative inductor, the resulting circuit is unstable regardless of how large the resistor is.
It is true, if circuit is composed of R>0 and L<0 without C, all poles are located on perfect real axis in RHP.

But this circuit include R, L and C.
So why this circuit could create perfect real axis RHP pole ?


Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
What size time step did you use when you simulated the circuit in HSpice transient analysis?
I use default maximum time step determined by print tstep=0.01nsec and stop time=2nsec.


Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
To be convinced that HSpice transient analysis really believed the circuit was stable,
I would want to perform the simulation with the maximum time step set well below 100fs and I would want to whack the circuit with a very rapid pulse to see if I could excite the unstable response.
Later I will post results of HSPICE with setting delmax < 100fsec.


Ken Kundert wrote on Sep 16th, 2010, 12:59pm:
I am deeply sceptical of the HSpice results.
Rather I always feel ill-robustness of Cadence Spectre.

Anyway results of Cadence Spectre's PZ Analysis are very suspicious.

Title: Re: Signal exceeds blowup quantity
Post by sheldon on Sep 17th, 2010, 5:04am

Greetings,

  Spectre actually converges when ka=0.75 when using the Liberal error
preset and method=euler. So it seems that convergence is improved
with relaxed accuracy tolerance and lossy integration.

                                                          Best Regards,

                                                            Sheldon

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 17th, 2010, 7:20am

I ran Synopsys HSPICE until 100nsec with setting delmax=10fsec.

As you can see, results of HSPICE don't show any symptom of "blowup", even if I set Ka=1.0.

The following is a Top Netlist for Synopsys HSPICE
Quote:
** Generated for: hspiceD
** Generated on: Sep 17 21:10:39 2010
** Design library name: My_RFDE_Test
** Design cell name: test_matteo
** Design view name: schematic
.PARAM prf=0 frf=10G ka='1*1.0' kb='1*0.185' kc='1*0.823'


.PROBE TRAN
+    V(net9)
+    V(s2)
+    V(ct)
+    V(s1)
+    V(p1)
+    V(in)
.TRAN 1e-12 100e-9 START=98e-9
.OPTION DELMAX=10e-15


.OP

.TEMP 25
.OPTION
+    ARTIST=2
+    INGOLD=2
+    MEASOUT=1
+    PARHIER=LOCAL
+    PSF=2
.INCLUDE "~/RFDE/matteo.spi"

** Library name: My_RFDE_Test
** Cell name: test_matteo
** View name: schematic
v1 net9 0 AC 1 SIN 0 '2*sqrt(100*10**((prf-30)/10))' frf
r1 in net9 50
r0 ct 0 100e6
c1 s2 0 200e-15
c0 s1 0 200e-15
c9 in p1 1.5e-12 IC=0.0
c3 in 0 80e-15 IC=0.0
.END


Title: Re: Signal exceeds blowup quantity
Post by sheldon on Sep 17th, 2010, 7:50am

Greetings,

  BTW,  Spectre also converges for ka=1, if you loosen the tolerances
enough: Liberal error preset, Euler integration, lteratio=10.

                                                         Best Regards,

                                                            Sheldon

Title: Re: Signal exceeds blowup quantity
Post by .matteo on Sep 17th, 2010, 7:59am


sheldon wrote on Sep 17th, 2010, 7:50am:
Greetings,

  BTW,  Spectre also converges for ka=1, if you loosen the tolerances
enough: Liberal error preset, Euler integration, lteratio=10.

                                                         Best Regards,

                                                            Sheldon

I think I should never use a Liberal error preset, I don't think is the right way to solve the problem. (What if it really oscillates then? ...)

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 17th, 2010, 8:07am


sheldon wrote on Sep 17th, 2010, 7:50am:
BTW,  Spectre also converges for ka=1, if you loosen the tolerances
enough: Liberal error preset, Euler integration, lteratio=10.
In this case, Cadence Spectre's results are very inaccurate.

Compare the following two.
http://www.designers-guide.org/Forum/Attachments/aho.png
http://www.designers-guide.org/Forum/Attachments/ka_1.png

I can accept results of former.
But in latter, why amplitude of p1 is same as amplitudes of s1 and s2 ?

On the other hand, results of Transient Analysis of Synopsys HSPICE can give completely same amplitude as HB Analysis of Agilent GoldenGate even if I set Ka=1.0.

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 17th, 2010, 8:48am

Sheldon,
   You are going the wrong way. The circuit is unstable. It should blow up. By using loose tolerances, you are exploiting the tendency of all circuit simulators to suppress time constants that are much smaller than the time step to hide the instability.

Pancho Hideboo,
    I am convinced that the circuit contains a negative inductor and so is unstable. The fact that HSpice results do not exhibit the instability even with a very small time step suggests that it has a serious bug. However, there also seems to be problems in the other simulators as well. In both Spectre and GoldenGate the eigen analyses (pole-zero or stability) disagree with the transient analysis on the presence of unstable poles for at least some values of Ka.

.matteo
    The take away for you is that your inductor is poorly modeled. In general, using a coupling factor of 1 is almost always wrong. Once you come up with a new model for you inductor, you should build the inductance matrix and assure that it is positive definite (or at least diagonally dominant). As far as your choice of simulator, you are probably okay with either Spectre or GoldenGate transient analysis, but I'd be very sceptical of mutual inductors in HSpice and the eigen analyses in Spectre or GoldenGate.

-Ken

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 17th, 2010, 8:55am


Ken Kundert wrote on Sep 17th, 2010, 8:48am:
I am convinced that the circuit contains a negative inductor and so is unstable.
No.
This is "Internal Unstability" problem.
http://www.designers-guide.org/Forum/YaBB.pl?num=1190272820/18#18

You always never admit defect and weak points of Cadence Spectre.

Anyway Cadence Spectre very tends to diverge esepecially in Shooting-Newton.
http://www.designers-guide.org/Forum/YaBB.pl?num=1284058751/4#4


Ken Kundert wrote on Sep 17th, 2010, 8:48am:
In general, using a coupling factor of 1 is almost always wrong.
We can never realize K=1.0.
I always set K < 0.99 even for pure frequency domain analysis such as AC and SP Analyses.


Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 17th, 2010, 9:10am

When Rp=0.1ohm, no RHP poles are reported.

But this is not canceling of RHP pole by zero.
This is simply short of negative inductor.

Title: Re: Signal exceeds blowup quantity
Post by pancho_hideboo on Sep 17th, 2010, 9:11am

Attached is a result of Transient Analysis of Cadence Spectre.

Here it results in "blowup" after 30nsec for Rp=1.0ohm.
"Rp=0.1ohm" never results in "blowup".

Synopsys HSPICE gives completely same result regarding Transient Analysis.

But results of Pole-Zero analysis are completely different between Cadence Spectre and Synopsys HSPICE.

Pole-Zero analysis of HSPICE have very long history.
On the other hand, Cadence Spectre don't have much history regarding Pole-Zero Analysis.

I also don't think Agilent GoldenGate is reliable since originally it has been developed by Xpedion.

Title: Re: Signal exceeds blowup quantity
Post by sheldon on Sep 17th, 2010, 10:16am

Matteo,

  It probably was discussed earlier and I just missed it. Could you
explain why L7, K2/L5/R10, and L8, K3/L7/R7, have eddy current loss
but L6 and L9 do not have eddy current loss? Also are all the mutual
inductances included, there is no L0/L8 or L1/L9 inductance?

                                                                Best Regards,

                                                                    Art Schaldenbrand

Title: Re: Signal exceeds blowup quantity
Post by Ken Kundert on Sep 17th, 2010, 11:40am


Quote:
You always never admit defect and weak points of Cadence Spectre.


Pancho Hideboo,
   In this case I am defending Spectre's transient analysis because I believe it is giving the right answer. The circuit contains a negative inductance, of course the circuit is unstable. Spectre correctly reports that instability, and HSpice does not. Your argument that you can somehow make the circuit stable by using either a very large or very small resistor is incorrect. Even the circuit you give to prove your point is unstable, as you will see if you simulate it for 1us (when you reduce the value of the resistor you increase the time constant of the LR circuit, so you have to simulate for longer to see the waveform explode).

-Ken

The Designer's Guide Community Forum » Powered by YaBB 2.2.2!
YaBB © 2000-2008. All Rights Reserved.