The Designer's Guide Community
Forum
Welcome, Guest. Please Login or Register. Please follow the Forum guidelines.
Mar 28th, 2024, 3:07am
Pages: 1 2 3 
Send Topic Print
Signal exceeds blowup quantity (Read 451 times)
.matteo
Community Member
***
Offline



Posts: 51
Padova, Italy
Signal exceeds blowup quantity
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
Back to top
 

TestBench1.png
View Profile   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: Signal exceeds blowup quantity
Reply #1 - 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
Back to top
 
 
View Profile WWW   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: Signal exceeds blowup quantity
Reply #2 - Sep 14th, 2010, 8:31am
 
Show me netlists.

I will check stability of your circuit by eigen values using Agilent GoldenGate.
Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
.matteo
Community Member
***
Offline



Posts: 51
Padova, Italy
Re: Signal exceeds blowup quantity
Reply #3 - 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
Back to top
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: Signal exceeds blowup quantity
Reply #4 - 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.
Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
.matteo
Community Member
***
Offline



Posts: 51
Padova, Italy
Re: Signal exceeds blowup quantity
Reply #5 - 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.)
Back to top
 
 
View Profile   IP Logged
.matteo
Community Member
***
Offline



Posts: 51
Padova, Italy
Re: Signal exceeds blowup quantity
Reply #6 - 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
Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: Signal exceeds blowup quantity
Reply #7 - 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
Back to top
 
 
View Profile WWW Top+Secret Top+Secret   IP Logged
.matteo
Community Member
***
Offline



Posts: 51
Padova, Italy
Re: Signal exceeds blowup quantity
Reply #8 - 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
Back to top
 
 
View Profile   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: Signal exceeds blowup quantity
Reply #9 - 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
Back to top
 
 
View Profile WWW   IP Logged
Ken Kundert
Global Moderator
*****
Offline



Posts: 2384
Silicon Valley
Re: Signal exceeds blowup quantity
Reply #10 - 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
Back to top
 
 
View Profile WWW   IP Logged
RFICDUDE
Community Fellow
*****
Offline



Posts: 323

Re: Signal exceeds blowup quantity
Reply #11 - 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.

Back to top
 
 
View Profile   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: Signal exceeds blowup quantity
Reply #12 - 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).
Back to top
« Last Edit: Sep 16th, 2010, 7:30am by pancho_hideboo »  

test_matteo_sch.png
View Profile WWW Top+Secret Top+Secret   IP Logged
pancho_hideboo
Senior Fellow
******
Offline



Posts: 1424
Real Homeless
Re: Signal exceeds blowup quantity
Reply #13 - 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
Back to top
« Last Edit: Sep 16th, 2010, 7:40am by pancho_hideboo »  

HB_vs_TR.png
View Profile WWW Top+Secret Top+Secret   IP Logged
.matteo
Community Member
***
Offline



Posts: 51
Padova, Italy
Re: Signal exceeds blowup quantity
Reply #14 - 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?

Back to top
 
 
View Profile   IP Logged
Pages: 1 2 3 
Send Topic Print
Copyright 2002-2024 Designer’s Guide Consulting, Inc. Designer’s Guide® is a registered trademark of Designer’s Guide Consulting, Inc. All rights reserved. Send comments or questions to editor@designers-guide.org. Consider submitting a paper or model.