
|
[si-list]
||
[Date Prev]
[11-2002 Date Index]
[Date Next]
||
[Thread Prev]
[11-2002 Thread Index]
[Thread Next]
[SI-LIST] AC Analysis in Hspice
- From: "Loyer, Jeff" <jeff.loyer@xxxxxxxxx>
- To: "Signal Integrity Mailing List" <si-list@xxxxxxxxxxxxx>
- Date: Fri, 1 Nov 2002 13:29:44 -0800
> I came upon a problem and wondered if any of you have seen something =
similar (and hopefully know of a fix).
>=20
> I normally use the ".NET" statement in Hspice to easily extract my S* =
parameters from simulations. As an exercise to further my =
understanding, I decided to do the same thing manually. I was able to =
do this for S21, but I can't get it to work for S11. I've checked my =
theory with co-workers, and we can't find anything. I suspect there's =
some quirk with Hspice's AC analysis (or some option I'm not setting =
right).
>=20
> In the spice deck below, I set up 3 circuits. =20
> The first (nodes have "net" in them) uses Hspice's ".NET" statement to =
print the S* parameters.
> The second (nodes have "dir" in them) should give me the same results, =
by comparing the resultant voltage to the input voltage.
> The third (nodes have "ref" in them) is a reference circuit that I use =
to determine my input voltages for the second circuit.
>=20
> It doesn't work. A plot of S11 magnitude (from the ".PRINT AC S11(m)" =
statement) doesn't agree with a plot of the parameter "s11m" (supposed =
to be the same thing, derived manually).
>=20
> It does work for S21 magnitude and phase.
>=20
> The spice deck is:
>=20
> * Experiment to derive S parameters directly
>=20
> .AC Lin 800 30K 6G
> .PRINT AC S11(m)
> .NET V(N_nettrm) V_netsrc ROUT=3D50 RIN=3D50
> *.PRINT AC S21(db) S21(p) S11(db) s11(p)
>=20
> V_netsrc N_netvs 0 ac=3D1 dc=3D0
> T_net1 N_netvs 0 N_nettrm 0 td=3D100pS Z0=3D35
> R_nettrm N_nettrm 0 R=3D50Meg
>=20
> V_dirsrc N_dirvs 0 ac=3D1 dc=3D0
> R_dirin N_dirvs N_dirsrc r=3D50
> T_dir1 N_dirsrc 0 N_dirtrm 0 td=3D100pS Z0=3D35
> R_dirtrm N_dirtrm 0 R=3D50
>=20
> V_refsrc N_refvs 0 ac=3D1 dc=3D0
> R_refin N_refvs N_reftrm R=3D50
> R_reftrm N_reftrm 0 R=3D50
>=20
> .print s11m=3Dpar('(v(N_dirsrc)-v(N_reftrm))/v(N_reftrm)')
> *.print s21m=3Dpar('v(N_dirtrm)/v(N_reftrm)')
>=20
> *.print s11db=3Dpar('20*log10((v(N_dirsrc)/v(N_vrefsrc)))')
> *.print s11p=3Dpar('(vp(N_dirsrc)-vp(N_vrefsrc))')
> *.print s21db=3Dpar('20*log10((v(N_dirtrm)/v(N_reftrm)))')
> *.print s21p=3Dpar('(vp(N_dirtrm)-vp(N_vreftrm))')
>=20
> .END
>=20
> Jeff Loyer
>=20
------------------------------------------------------------------
To unsubscribe from si-list:
si-list-request@xxxxxxxxxxxxx with 'unsubscribe' in the Subject field
or to administer your membership from a web page, go to:
http://www.freelists.org/webpage/si-list
For help:
si-list-request@xxxxxxxxxxxxx with 'help' in the Subject field
List archives are viewable at:
http://www.freelists.org/archives/si-list
or at our remote archives:
http://groups.yahoo.com/group/si-list/messages
Old (prior to June 6, 2001) list archives are viewable at:
http://www.qsl.net/wb6tpu
|

|