The Designer's Guide Community Forum
https://designers-guide.org/forum/YaBB.pl
Modeling >> Transmission Lines and Other Distributed Devices >> Tline in PSS analysis
https://designers-guide.org/forum/YaBB.pl?num=1169142108

Message started by cmolsen on Jan 18th, 2007, 9:41am

Title: Tline in PSS analysis
Post by cmolsen on Jan 18th, 2007, 9:41am

Hi,

When I try to include a tline component in an qpss analysis, spectre gives the error that "hidden state" precludes using tline.

Then I try mtline. Now spectre gives error to include "interp=rational".  However, I don't know where to put this statement.  I've tried in the options section and in the analysis section, but both places it gets rejected.  Manual offers no help.

I've noticed that if I do s parm analysis using nport, that there is a way to include the interp statement in the nport line.  But I'm not doing this kind of analysis.

Can you help?

I can supply netlist if needed.

Title: Re: Tline in PSS analysis
Post by mg777 on Jan 19th, 2007, 11:23am


I waited to see if someone more informed than me would reply. In such absence, I venture the following suggestions:

My understanding is that qpss works off a harmonic balance solution, and HB should have no trouble at all with transmission lines. Maybe the delay of the line is comparable with the RF modulation period, so the simulator wants to look at a few points along the line.

Do you get the same error if you replace the tline with N sections of the corresponding LC ladder? Do the results match? Note that N will have to be large enough such that N/√LC is greater than ωc.

M.G.Rajan
www.eecalc.com










Title: Re: Tline in PSS analysis
Post by Ken Kundert on Jan 19th, 2007, 1:39pm

In recent versions of Spectre you can choose to use either harmonic balance or shooting methods with QPSS. Shooting methods struggle with distributed components such as tlines, but harmonic balance should have no trouble with them at all, regardless of their length.

-Ken

Title: Re: Tline in PSS analysis
Post by cmolsen on Jan 19th, 2007, 2:43pm

Rajan,

Your solution works.  And I may have to resort to this kind of solution if I don't find any other solution.  But I don't find it a particularly acceptable solution.  Nevertheless, I may just have to put up with this shortcoming of Spectre.

Ken,

Setting harmonicbalance=yes gets rid of the interp=rational error and causes the simulator to actually run.  However a runtime error is generated, namely "Matrix is singular ...".  Then I tried increasing oversample=2.  This causes another runtime error, namely "Fail to build Preconditioner".

So I'm still stuck.

Since I originally got the error message (at parse time) "Use interp=rational" when I use mtline in the PSS analysis, there must be a place to put this statement.  

I assume that incorporating the statement "interp=rational" will get rid of the error.  But where does the statement go?

Michael

Title: Re: Tline in PSS analysis
Post by Andrew Beckett on Jan 22nd, 2007, 3:55am

You must be using quite an old version of spectre, since versions since IC5141 have supported mtline with shooting and flexbalance. That said, the "interp" parameter is a parameter for an nport, not mtline. Do you have an nport in your circuit as well? Which version are you using? Perhaps you can past the complete error message or the log file in its entirety?

Regards,

Andrew.

Title: Re: Tline in PSS analysis
Post by cmolsen on Jan 22nd, 2007, 8:08am

I'm using an port in the circuit, but not an nport.

I'm running under Linux - Spectre version 6.1.0.190 (dated 15 Aug 2006).

Here's the output log and the netlist when running with harmonicbalance=no where I get the "interp" error:

######################
running Spectre for comsrc_ac.scs
spectre (ver. 6.1.0.190 -- 15 Aug 2006).
Includes RSA BSAFE(R) Cryptographic or Security Protocol Software from RSA Security, Inc.

Simulating `comsrc_ac.scs' on cmoa30s at 10:37:48 AM, Mon Jan 22, 2007.

Circuit inventory:
             nodes 19
         equations 186
             bsim4 1    
         capacitor 7    
          inductor 2    
            mtline 4    
              port 2    
          resistor 13    
           vsource 4    


******************************************
Sweep Analysis `sweep': prf = (-40 -> -30)
******************************************

++++++++++++++++++++++
sweep: prf = -40 (0 %)
++++++++++++++++++++++
Fundamental f1:  period = 555.556 ps, freq = 1.8 GHz.
Fundamental f2:  period = 555.247 ps, freq = 1.801 GHz.

**************************************************************************
Quasi-Periodic Steady State Analysis `sweep-000_anal': largefund = 1.8 GHz
**************************************************************************
Important parameter values in pdisto iteration:
   start = 555.556 ps
   outputstart = 555.556 ps
   stop = 1.11111 ns
   period = 555.556 ps
   steadyratio = 1
   step = 555.556 fs
   maxstep = 5.55556 ps
   ic = all
   skipdc = no
   reltol = 100e-06
   abstol(V) = 1 uV
   abstol(I) = 1 pA
   abstol(U) = 1 u
   temp = 25 C
   tnom = 25 C
   tempeffects = all
   errpreset = moderate
   method = gear2only
   lteratio = 3.5
   relref = sigglobal
   cmin = 0 F
   gmin = 1 pS
   maxrsd = 0 Ohm
   mos_method = s
   mos_vres = 50 mV


Warning from spectre at prf = -40 during periodic steady state analysis, during
       Quasi-Periodic Steady State Analysis `sweep-000_anal', during Sweep
       analysis `sweep'.
   Sweep iteration for `prf' = -40 terminated prematurely because of following
       error(s):

Error found by spectre at prf = -40 during periodic steady state analysis,
       during Quasi-Periodic Steady State Analysis `sweep-000_anal', during
       Sweep analysis `sweep'.
   Distributed components are not supported directly for Pdisto, Please use
       rational fitting technique by setting interp=rational.
Warning from spectre at prf = -40 during periodic steady state analysis, during
       Quasi-Periodic Steady State Analysis `sweep-000_anal', during Sweep
       analysis `sweep'.
   Arithmetic exception in analysis `sweep-000_anal' .

Analysis `sweep-000_anal' terminated prematurely due to error.

---------------------
...
10 more identical err msgs follow.
...
---------------------

**** Run Status for sweep analysis `sweep' ****
Sweep iteration 1 (`prf' = -40) failed.
Sweep iteration 2 (`prf' = -39) failed.
Sweep iteration 3 (`prf' = -38) failed.
Sweep iteration 4 (`prf' = -37) failed.
Sweep iteration 5 (`prf' = -36) failed.
Sweep iteration 6 (`prf' = -35) failed.
Sweep iteration 7 (`prf' = -34) failed.
Sweep iteration 8 (`prf' = -33) failed.
Sweep iteration 9 (`prf' = -32) failed.
Sweep iteration 10 (`prf' = -31) failed.
Sweep iteration 11 (`prf' = -30) failed.

Warning from spectre.
   Arithmetic exception in analysis `sweep' .

Total time required for sweep analysis `sweep' was 250 ms.


Aggregate audit (11:00:18 AM, Mon Jan 22, 2007):
Time used: CPU = 630 ms, elapsed = 10 s, util. = 6.3%.
Time spent in licensing: elapsed = 20 ms.
Virtual memory used = 5.05 Mbytes.
spectre completes with 11 errors, 25 warnings, and 0 notices.

######################


######################
//Generated for: spectre
simulator lang=spectre
global 0
parameters vg=0.5083 frf=1.8G prf=-30 vdd=1.2
simulatorOptions options reltol=1e-3 vabstol=1e-6 iabstol=1e-12 temp=25.0 \
   tnom=25 scalem=1.0 scale=1.0 gmin=1e-12 rforce=1 maxnotes=5 maxwarns=5 \
   digits=5 cols=80 pivrel=1e-3 ckptclock=1800\
   rawfmt=nutascii rawfile="acdata"

include "tech/design.scs"
include "tech/fixed_corner.scs"
include "tech/process_ibm.scs"

TR0 (tr1 tr2 0 0) nfet_rf l=0.120u w=382u nf=128 m=1 par=1 ngcon=2 \
       ad=6.912e-11 as=7.134e-11 pd=430.08u ps=437.56u nrd=0.06 nrs=0.06 \
       rf_rsub=1 plnest=-1 plorient=-1 pld200=-1 pwd100=-1 lstis=1 lnws=0 \
       rgatemod=3 rbodymod=1 ring=2 cwire=1 panw1=0p panw2=0p panw3=0p \
       panw4=0p panw5=0p panw6=0p panw7=0p panw8=0p panw9=0p panw10=0p \
       sa=5.5e-07 sb=5.5e-07 sd=3.6e-07 dtemp=0

Cg  (2 tr2)  capacitor c=800p
Lg  (tr2 100)  inductor  l=2u
Cd  (tr1 3)  capacitor c=800p
Ld  (tr1 200)  inductor  l=2u

TL  (1 2 0 0)   mtline z0=50 td=1.5n

Vd (200 0) vsource dc=vdd type=dc
Vg (100 0) vsource dc=vg type=dc

PORTin (1 0) port r=50 num=1 type=sine sinedc=0 \
           freq=frf     dbm=prf   fundname="f1" \
           freq2=frf+1M dbm2=prf  fundname2="f2"
PORTout (3 0) port r=50 num=2 dc=0 type=dc

save 1 2 3

sweep sweep param=prf start=-40 stop=-30 step=1 {
  anal qpss funds=["f1" "f2"] maxharms=[3 3] \
  errpreset=moderate maxstep=10p annotate=status
  }
######################

Michael

Title: Re: Tline in PSS analysis
Post by Andrew Beckett on Jan 22nd, 2007, 8:41am

Ah, that explains it. Distributed components such as nport in linear/spline mode, or mtline, are only supported in shooting PSS, not shooting QPSS (currently).

If you need to use QPSS, you'll need to use flexbalance=yes for this to work, so that the simulation can be performed in the frequency domain. Essentially the work that was done to allow a convolution-based model to be used with shooting PSS has not been done for QPSS.

Since mtline does not support "rational" interpolation (that's only for nport), the error message is not really very helpful...

Regards,

Andrew.

Title: Re: Tline in PSS analysis
Post by mohta on Sep 24th, 2007, 7:54pm

Hi Andrew,

Is the QPSS limitation you describe still present in Spectre 6.2.0.453?

Thanks,
mohta

Title: Re: Tline in PSS analysis
Post by Lynn Lou on Aug 17th, 2012, 6:39pm

Hi cmolsen,
My virtuoso version is IC6.1.5.500.6. I've once simulated a tline using NPORT in a VCO PSS analysis, and the "interpolation method" is one of the optional rows in Edit Object Properties (see Fig). However, I have not seen any related options when using MTLINE. I hope it can help you.

Regards,
Lynn

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