dnanar
Junior Member level 1
Hi,
First, I apologize if I post that thread in the wrong section of the forum, but my question is 2/3 analog 1/3 digital.
I'm making a simple simulation in (H)SPICE of a 1 bit full adder. I'm a bit curious about the current drawn from the supply of my full adder: the current drawn when my input rises and my input gets down has a totally different shape (a,b is my input only b vary, c and s are my output, vdd is my supply):
Does anybody know why when my input b goes up, i(vdd) rises? I thought i(vdd) should only fall, as it does when my input b goes down... I would be grateful if someone has an answer and know how to make i(vdd) shape when b goes up similar to i's shape when b goes down.
As a side note, I also don't understand why on average i(vdd) is around -25u... I thought it should be null (closer to 0 I mean), but that don't really matter for my problem.
Thank you!
P.S: My HSPICE code, if it's a mistake on that side...
First, I apologize if I post that thread in the wrong section of the forum, but my question is 2/3 analog 1/3 digital.
I'm making a simple simulation in (H)SPICE of a 1 bit full adder. I'm a bit curious about the current drawn from the supply of my full adder: the current drawn when my input rises and my input gets down has a totally different shape (a,b is my input only b vary, c and s are my output, vdd is my supply):
Does anybody know why when my input b goes up, i(vdd) rises? I thought i(vdd) should only fall, as it does when my input b goes down... I would be grateful if someone has an answer and know how to make i(vdd) shape when b goes up similar to i's shape when b goes down.
As a side note, I also don't understand why on average i(vdd) is around -25u... I thought it should be null (closer to 0 I mean), but that don't really matter for my problem.
Thank you!
P.S: My HSPICE code, if it's a mistake on that side...
Code:
.option abstol=1e-17 reltol=1e-17 post
*simulation
.tran 0.1p 100n
.param vdd=1
.param Vdd10=0.1
*parameters
.param Tstart=80n
.param Tsimu=5n
.param Tsimu2=10n
.param Cval=10f
.param tstep=50p
Vdd dd 0 DC vdd
Vdd2 dd2 0 DC vdd
Va a 0 DC 0
Vb b 0 DC 0 pulse 0 vdd Tstart tstep tstep Tsimu Tsimu2
Vcin cin 0 DC 0
**** our circuitry to measure current from input supply ***
Xfa a b cin s c supply 0 fulladder
Xinv1 s 0 dd2 0 inverter *just to have some load after it
Xinv2 c 0 dd2 0 inverter
***************************************************************
.subckt fulladder vA vB vC S C vdd gnd
XP1 n0 vA vdd TP m=8 *size: http://www.cs.tufts.edu/comp/103/notes/Lecture13%28Adders%29.pdf
XP2 n0 vB vdd TP m=8
XP3 n1 vC n0 TP m=8
XN1 n1 vC n2 TN m=8
XN2 n2 vA gnd TN m=4
XN3 n2 vB gnd TN m=4
XP4 l1 vA vdd TP m=8
XP5 n1 vB l1 TP m=8
XN4 n1 vA l2 TN m=4
XN5 l2 vB gnd TN m=4
Xi1 n1 C vdd gnd inverter
XP6 n3 vA vdd TP m=4
XP7 n3 vB vdd TP m=4
XP8 n3 vC vdd TP m=4
XP9 sb n1 n3 TP m=4
XN6 sb n1 n4 TN m=2
XN7 n4 vA gnd TN m=2
XN8 n4 vB gnd TN m=2
XN9 n4 vC gnd TN m=2
XP10 l3 vA vdd TP m=6
XP11 l4 vB l3 TP m=6
XP12 sb vC l4 TP m=6
XN10 sb vA l5 TN m=3
XN11 l5 vB l6 TN m=3
XN12 l6 vC gnd TN m=3
Xi2 sb S vdd gnd inverter
.ends
.subckt inverter vin vout vdd gnd
XN vout vin gnd TN m=1
XP vout vin vdd TP m=2
.ends
.subckt TN v1 v2 v3 m=1
Mn v1 v2 v3 v3 N_50n W='m*50n' L=50n
.ends
.subckt TP v1 v2 v3 m=1
Mp v1 v2 v3 v3 P_50n W='m*50n' L=50n
.ends
*our mosfet model
.param vth0n=0.22
.param vth0p=-0.22
.model N_50n nmos level = 54
+binunit = 1 paramchk= 1 mobmod = 0
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 0
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
+permod = 1 acnqsmod= 0 trnqsmod= 0
+tnom = 27 toxe = 1.4e-009 toxp = 7e-010 toxm = 1.4e-009
+epsrox = 3.9 wint = 5e-009 lint = 1.2e-008
+ll = 0 wl = 0 lln = 1 wln = 1
+lw = 0 ww = 0 lwn = 1 wwn = 1
+lwl = 0 wwl = 0 xpart = 0 toxref = 1.4e-009
+vth0 = vth0n k1 = 0.35 k2 = 0.05 k3 = 0
+k3b = 0 w0 = 2.5e-006 dvt0 = 2.8 dvt1 = 0.52
+dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0
+dsub = 2 minv = 0.05 voffl = 0 dvtp0 = 1e-007
+dvtp1 = 0.05 lpe0 = 5.75e-008 lpeb = 2.3e-010 xj = 2e-008
+ngate = 5e+020 ndep = 2.8e+018 nsd = 1e+020 phin = 0
+cdsc = 0.0002 cdscb = 0 cdscd = 0 cit = 0
+voff = -0.15 nfactor = 1.2 eta0 = 0.15 etab = 0
+vfb = -0.55 u0 = 0.032 ua = 1.6e-010 ub = 1.1e-017
+uc = -3e-011 vsat = 1.1e+005 a0 = 2 ags = 1e-020
+a1 = 0 a2 = 1 b0 = -1e-020 b1 = 0
+keta = 0.04 dwg = 0 dwb = 0 pclm = 0.18
+pdiblc1 = 0.028 pdiblc2 = 0.022 pdiblcb = -0.005 drout = 0.45
+pvag = 1e-020 delta = 0.01 pscbe1 = 8.14e+008 pscbe2 = 1e-007
+fprout = 0.2 pdits = 0.2 pditsd = 0.23 pditsl = 2.3e+006
+rsh = 3 rdsw = 150 rsw = 150 rdw = 150
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 0
+prwb = 6.8e-011 wr = 1 alpha0 = 0.074 alpha1 = 0.005
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
+egidl = 0.8
+aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
+eigbinv = 1.1 nigbinv = 3 aigc = 0.017 bigc = 0.0028
+cigc = 0.002 aigsd = 0.017 bigsd = 0.0028 cigsd = 0.002
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
+xrcrg1 = 12 xrcrg2 = 5
+cgso = 6.238e-010 cgdo = 6.238e-010 cgbo = 2.56e-011 cgdl = 2.495e-10
+cgsl = 2.495e-10 ckappas = 0.02 ckappad = 0.02 acde = 1
+moin = 15 noff = 0.9 voffcv = 0.02
+kt1 = -0.21 kt1l = 0.0 kt2 = -0.042 ute = -1.5
+ua1 = 1e-009 ub1 = -3.5e-019 uc1 = 0 prt = 0
+at = 53000
+fnoimod = 1 tnoimod = 0
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 5e-010
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
+xtis = 3 xtid = 3
+dmcg = 0e-006 dmci = 0e-006 dmdg = 0e-006 dmcgt = 0e-007
+dwj = 0e-008 xgw = 0e-007 xgl = 0e-008
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
*
.model P_50n pmos level = 54
+binunit = 1 paramchk= 1 mobmod = 0
+capmod = 2 igcmod = 1 igbmod = 1 geomod = 0
+diomod = 1 rdsmod = 0 rbodymod= 1 rgatemod= 1
+permod = 1 acnqsmod= 0 trnqsmod= 0
+tnom = 27 toxe = 1.4e-009 toxp = 7e-010 toxm = 1.4e-009
+epsrox = 3.9 wint = 5e-009 lint = 1.2e-008
+ll = 0 wl = 0 lln = 1 wln = 1
+lw = 0 ww = 0 lwn = 1 wwn = 1
+lwl = 0 wwl = 0 xpart = 0 toxref = 1.4e-009
+vth0 = vth0p k1 = 0.39 k2 = 0.05 k3 = 0
+k3b = 0 w0 = 2.5e-006 dvt0 = 3.9 dvt1 = 0.635
+dvt2 = -0.032 dvt0w = 0 dvt1w = 0 dvt2w = 0
+dsub = 0.7 minv = 0.05 voffl = 0 dvtp0 = 0.5e-008
+dvtp1 = 0.05 lpe0 = 5.75e-008 lpeb = 2.3e-010 xj = 2e-008
+ngate = 5e+020 ndep = 2.8e+018 nsd = 1e+020 phin = 0
+cdsc = 0.000258 cdscb = 0 cdscd = 6.1e-008 cit = 0
+voff = -0.15 nfactor = 2 eta0 = 0.15 etab = 0
+vfb = 0.55 u0 = 0.0095 ua = 1.6e-009 ub = 8e-018
+uc = 4.6e-013 vsat = 90000 a0 = 1.2 ags = 1e-020
+a1 = 0 a2 = 1 b0 = -1e-020 b1 = 0
+keta = -0.047 dwg = 0 dwb = 0 pclm = 0.55
+pdiblc1 = 0.03 pdiblc2 = 0.0055 pdiblcb = 3.4e-008 drout = 0.56
+pvag = 1e-020 delta = 0.014 pscbe1 = 8.14e+008 pscbe2 = 9.58e-007
+fprout = 0.2 pdits = 0.2 pditsd = 0.23 pditsl = 2.3e+006
+rsh = 3 rdsw = 250 rsw = 160 rdw = 160
+rdswmin = 0 rdwmin = 0 rswmin = 0 prwg = 3.22e-008
+prwb = 6.8e-011 wr = 1 alpha0 = 0.074 alpha1 = 0.005
+beta0 = 30 agidl = 0.0002 bgidl = 2.1e+009 cgidl = 0.0002
+egidl = 0.8
+aigbacc = 0.012 bigbacc = 0.0028 cigbacc = 0.002
+nigbacc = 1 aigbinv = 0.014 bigbinv = 0.004 cigbinv = 0.004
+eigbinv = 1.1 nigbinv = 3 aigc = 0.69 bigc = 0.0012
+cigc = 0.0008 aigsd = 0.0087 bigsd = 0.0012 cigsd = 0.0008
+nigc = 1 poxedge = 1 pigcd = 1 ntox = 1
+xrcrg1 = 12 xrcrg2 = 5
+cgso = 7.43e-010 cgdo = 7.43e-010 cgbo = 2.56e-011 cgdl = 1e-014
+cgsl = 1e-014 ckappas = 0.5 ckappad = 0.5 acde = 1
+moin = 15 noff = 0.9 voffcv = 0.02
+kt1 = -0.19 kt1l = 0 kt2 = -0.052 ute = -1.5
+ua1 = -1e-009 ub1 = 2e-018 uc1 = 0 prt = 0
+at = 33000
+fnoimod = 1 tnoimod = 0
+jss = 0.0001 jsws = 1e-011 jswgs = 1e-010 njs = 1
+ijthsfwd= 0.01 ijthsrev= 0.001 bvs = 10 xjbvs = 1
+jsd = 0.0001 jswd = 1e-011 jswgd = 1e-010 njd = 1
+ijthdfwd= 0.01 ijthdrev= 0.001 bvd = 10 xjbvd = 1
+pbs = 1 cjs = 0.0005 mjs = 0.5 pbsws = 1
+cjsws = 5e-010 mjsws = 0.33 pbswgs = 1 cjswgs = 5e-010
+mjswgs = 0.33 pbd = 1 cjd = 0.0005 mjd = 0.5
+pbswd = 1 cjswd = 5e-010 mjswd = 0.33 pbswgd = 1
+cjswgd = 5e-010 mjswgd = 0.33 tpb = 0.005 tcj = 0.001
+tpbsw = 0.005 tcjsw = 0.001 tpbswg = 0.005 tcjswg = 0.001
+xtis = 3 xtid = 3
+dmcg = 0e-006 dmci = 0e-006 dmdg = 0e-006 dmcgt = 0e-007
+dwj = 0e-008 xgw = 0e-007 xgl = 0e-008
+rshg = 0.4 gbmin = 1e-010 rbpb = 5 rbpd = 15
+rbps = 15 rbdb = 15 rbsb = 15 ngcon = 1
*