Re: [SI-LIST] : About the AC analysis with HSPICE

Dmitri Kuznetsov (
Thu, 02 Sep 1999 12:04:35 -0700


The main cause of underestimated loss in your testcase is the Hspice's
fieldsolver that extracts RLGC parameters from the input geometry. For
ac analysis, the transmission-line model just uses the exact analytical
solution for the given RLGC.

The recent Rs correlation in SI reflector has shown that the Hspice's
field solver produces Rs that is almost a factor of 2 smaller than Rs'
from other fieldsolvers. This is because it assumes constant current
distribution for Rs calculation whereas other quasi-static field solvers
employ the perturbation approach which is more accurate at higher

The field solver I put into Hspice was written by TMA and uses my
exponential approximation technique to accelerate solution for
multilayered dielectric. As a result, it runs orders of magnitude
faster than other fieldsolvers if you have many different dielectric
layers. The same technique is used by Cadence's DFSigNoise. It is very
good for quickly extracting large boards. If you want accurate
wide-range correlation with measurements, you should use a full-wave
fieldsolver, such as that from Ansoft, and you may still need to
calibrate RLGC's with measurements.

All quasi-static fieldsolvers solve only for L and C, and neglect
resistive loss. R and Rs are computed using simple formulas by
perturbation assuming lossless current distribution. But full-wave
fieldsolvers are prohibitively slow for extracting large designs.

Mike is absolutely right about the frequency-dependent RLGC. Hspice's W
element uses parameterized frequency dependence: R(f) = Ro + Rs*Sqrt(f),
G(f) = G0 + f*Gd. So Ro, Lo, Co, Go, Rs, and Gd parameters are
constant, but R(f) and G(f) are frequency dependent.

As Ray mentioned, there are also higher-order linear and even quadratic
loss terms in microstrip due to radiation and surface wave
propagation along the dielectric interfaces. However, all the
microstrip measurements I have seen, fit the Sqrt() resistive loss very
well up to at least 10 GHz.

The .net in Hspice simply inserts reference resistors. S parameters are
then readily calculated from the voltages at the insertion ports. You
can easily use this technique manually in a simulator that does not have
.net or if you need to extract S matrix for more than 2 ports.

I would like to respond to Ron's comments. Spice is, among many other
capabilities, a frequency-domain simulator. In particular, Hspice has
an FFT/convolution model where one can specify an arbitrary frequency
table. But the main advantage of this type of frequency-domain
techniques is generality and straightforward algorithms, not accuracy.

Best regards,

Dmitri Kuznetsov, Ph.D.
Principal Engineer

ViewLogic Systems, Inc. e-mail:
1369 Del Norte Rd. Tel: (805)278-6824
Camarillo, CA 93010 Fax: (805)988-8259

Rachild Chen wrote:
> All Sirs,
> Thanks for your advice.But I still have some questions.
> I use the .AC analysis to simulate the high frequency loss of
> transmission line.I use the .NET option of the .AC analysis.I mainly simulate the S21 parameter.
> But I found that the loss DB between simulation and test (I test with HP network analyer) is
> more and more different with frequency increasing.The loss DB of simulation is less than that of
> test.I want to know the reason.The .sp file is following:
> *******************************************************************
> .options probe post csdf
> Vac nd_pin1 gnd ac 1v
> Rrerm cpin1 gnd 100k
> .NET V(cpin1) vac ROUT=50 RIN=50
> .AC DEC 100.00 30k 2000MEG
> Ws1 gnd nd_pin1 nd_pin2 gnd gnd gnd cpin1 cpin2 gnd gnd rlgcfile=hmbstrip42.rlgc n=4 l=14600mil
> .PRINT AC S11(DB) S21(DB)
> .END
> *************************************************************************
> The transmission line is from rlgcfile=hmbstrip42.rlgc which is extracted through :
> Vin1 nd_pin1 gnd pulse( 0v 3v 0.0n 0.3n 0.3n 2.15n 4.9n)
> Vin2 nd_pin2 gnd pulse(3v 0v 0.0n 0.3n 0.3n 2.15n 4.9n)
> *Vin1 nd_pin1 gnd pulse(0v 3.3v 0.0n 0.3n 0.3n 0.1n 4.8n)
> *Vin2 nd_pin1 gnd pulse(3.3v 0v 0.0n 0.3n 0.3n 0.1n 4.8n)
> *Vin3 nd_pin2 gnd pulse(0v 3.3v 0.0n 0.3n 0.3n 2.15n 4.9n)
> *Vin0 nd_pin4 gnd pulse(3v 0v 0.0n 0.3n 0.3n 2.15n 4.9n)
> *.options brief = 0
> *.options probe post csd
> .options scale=1u
> Ws1 gnd nd_pin1 nd_pin2 gnd gnd gnd cpin1 cpin2 gnd gnd
> + Fsmodel=mother1 n=4 l=14600mil
> .material copper1 metal conductivity=5.96e+7 $inner
> .material copper2 metal conductivity=3.43e+7 $surface
> .material die_1 dielectric er=4.5 losstangent=1.7e-2 conductivity=1.55e-7
> .shape rect_1 rectangle width=10mil,height=1.38mil
> .layerstack stack_1 layer=(copper1, 1.38mil) layer=(die_1, 20mil ) layer=(die_1, 20.87mil ) layer=(copper1, 1.38mil)
> .Fsoptions wopt1 accuracy=high computegd=yes computers=yes computego=yes computero=yes printdata=yes gridfactor=3
> .model mother1 w modeltype=FieldSolver,layerstack=stack_1,fsoptions=wopt1,
> + rlgcfile='hmbstrip42.rlgc'
> + conductor= (material =copper1, shape=rect_1,origin=(0mil, 21.38mil))
> + conductor= (material =copper1, shape=rect_1,origin=(22mil,21.38mil))
> + conductor= (material =copper1, shape=rect_1,origin=(39mil, 21.38mil))
> + conductor= (material =copper1, shape=rect_1,origin=(61mil,21.38mil))
> .TRAN 100p 20n
> .end
> ********************************************************************************
> I want to know how should i assign values to 'ROUT' and 'RIN' in the .NET option
> of the .AC analysis of the HSPICE.I have seen that very different results can be got
> with different values of 'ROUT' and 'RIN'.What's the theory of .NET analysis to 'S21'
> in HSPICE?
> I also noticed that even i use different stimulus signals(100M,500M,1G or 2G) applying to transmission lines.There is no anything changed in the parameter matrix Ro,Lo,Co,Go,Rs,Gd.Why?How can i deal with these matrixes in exact
> frequency ?Perhaps it concerns somehow to the results of the loss of transmission line.
> Regards
> Rachild