blob: 2790f9681793a3ba3b856623be9a90b45fb98672 [file] [log] [blame]
.subckt xcnwvc c0 c1 b w=5 l=0.5 vm=1
+ wc='w*1' lc='l*1'
** Corner Parameters
*.param cnwvc_tox=41.6503
*.param cnwvc_cdepmult=1
*.param cnwvc_cintmult=1
*.param cnwvc_vt1=0.3333
*.param cnwvc_vt2=0.2380952
*.param cnwvc_vtr=0.16
*.param cnwvc_dwc=0.0 $ in microns each side
*.param cnwvc_dlc=0.0 $ in microns each side
*.param cnwvc_dld=0.0 $ in microns each side
*Geometry Parameters
.param
+cnwvc_ldiff=0.15
+wd='wc+2*cnwvc_dwc'
+ld='lc+2*cnwvc_dlc'
+ldd='0.018+2*cnwvc_dld'
+dwr=-0.02
+dwp=-0.5
+dlr=0.02
+wl='(wd-2*dwr)/(ld-2*dlr)'
+wlwdiff='((0.5*(ld-2*dlr))+cnwvc_ldiff)/(2*(wd-2*dwr))'
*Mismatch Parameters
+xcnwvc_cmin_slope_l=1.1e-16
+xcnwvc_cmin_slope_w=1.5e-16
+xcnwvc_cmin_slope_wl=3.5e-16
+xcnwvc_cmax_slope_l=7.0e-16
+xcnwvc_cmax_slope_w=7.0e-16
+xcnwvc_cmax_slope_wl=1.5e-15
** Capacitance Model Parameters
.param cnwvc_slope1=0.21875
.param cnwvc_slope2=0.125
.param
+cm0='5.571e-16*cnwvc_cintmult'
+cm1='4.775e-16'
+cm2='2.019e-16'
+cm3='6.529e-16*cnwvc_cdepmult'
+cx0=6.261e-16
+cx1='5.75e-16'
+cx2='1.712e-16'
+cx3='8.854e-14*3.9/cnwvc_tox'
.param
+tref=30.0
+cmin='cm0+cm1*ld+cm2*wd+cm3*wd*(ld-ldd)+cx3*wd*ldd'
+cmax='cx0+cx1*ld+cx2*wd+cx3*wd*ld'
cg c0 p2 c='(0.5*(cmax+cmin)+0.5*(cmax-cmin)*(1/1.9)*(tanh((v(c0)-v(p2)-cnwvc_vt1)/cnwvc_slope1)+0.9*tanh((v(c0)-v(p2)-cnwvc_vt2)/cnwvc_slope2)))*vm'
*c3 and c4 are the tuning capacitors
c3 c0 b c=0.15e-15
c4 c1 b c=0.15e-15
** Resistance Model Parameters
.param con_sp=0.17
.param cnwvc_k=12 $contacts on both sides
.param cnwvc_n1=0.1 $fitting parameter for r
.param cnwvc_n2=0.28 $fitting parameter for r
.param apoly=1.15
.param apolyc=1
.param acon=1
.param anwell=1
.param bnwell=0.6
.param cnwell=2
.param n_pocon='max((lc-0.14)/(2*con_sp),1)' $numbers of poly contact
.param n_con='(wc-2*0.06+con_sp)/(2*con_sp)' $numbers of contacts
.param rg_tc1=3e-3
.param rg_tc2=0.0
.param rg_tcmult='1+(temper-tref)*rg_tc1+(temper-tref)*(temper-tref)*rg_tc2'
.param cnwvc_a='apoly*rp1*wl/cnwvc_k+apolyc*rcp1/n_pocon+acon*rcn/n_con+anwell*rnw*wlwdiff'
.param cnwvc_b1='bnwell*rnw*wlwdiff'
.param cnwvc_c='cnwell*rnw*((0.5*(ld-2*dlr))+cnwvc_ldiff)/(2*(wd-2*dwp))'
rg p2 c1 r='(cnwvc_a+cnwvc_b1*(0.5*tanh((v(c0)-v(p2)-cnwvc_vtr)/cnwvc_n1)+0.5)+20*cnwvc_c*(0.5*tanh((v(c0)-v(p2)-cnwvc_vtr)/cnwvc_n1)+0.5)*exp(-abs((v(c0)-v(p2)-cnwvc_vtr)/cnwvc_n2)))/vm*rg_tcmult'
.ends xcnwvc
***************************************************************************************
.subckt xcnwvc2 c0 c1 b w=5 l=0.5 vm=1
+ wc='w*1' lc='l*1'
** Corner Parameters
*.param cnwvc2_tox=41.7642
*.param cnwvc2_cdepmult=1
*.param cnwvc2_cintmult=1
*.param cnwvc2_vt1=0.2
*.param cnwvc2_vt2=0.33
*.param cnwvc2_vtr=0.14
*.param cnwvc2_dwc=0.0 $ in microns each side
*.param cnwvc2_dlc=0.0 $ in microns each side
*.param cnwvc2_dld=0.0 $ in microns each side
*
*Geometry Parameters
.param
+cnwvc_ldiff=0.15
+wd='wc+2*cnwvc2_dwc'
+ld='lc+2*cnwvc2_dlc'
+ldd='0.015+2*cnwvc2_dld'
+dwr=0.00
+dwp=0.0
+dlr=0.03
+wl='(wd-2*dwr)/(ld-2*dlr)'
+wlwdiff='((0.5*(ld-2*dlr))+cnwvc_ldiff)/(2*(wd-2*dwr))'
*Mismatch Parameters
+xcnwvc2_cmin_slope_l=2.4e-16
+xcnwvc2_cmin_slope_w=1.0e-16
+xcnwvc2_cmin_slope_wl=4.0e-16
+xcnwvc2_cmax_slope_l=3.0e-16
+xcnwvc2_cmax_slope_w=7.0e-16
+xcnwvc2_cmax_slope_wl=1.0e-15
** Capacitance Model Parameters
.param cnwvc_slope1=0.15
.param cnwvc_slope2=0.35
.param
+cm0='5.828e-16*cnwvc2_cintmult'
+cm1=4.596e-16
+cm2=1.614e-16
+cm3='1.541e-15*cnwvc2_cdepmult'
+cx0=6.778e-16
+cx1=6.461e-16
+cx2=1.517e-16
+cx3='8.854e-14*3.9/cnwvc2_tox'
.param
+tref=30.0
+cmin='cm0+cm1*ld+cm2*wd+cm3*wd*(ld-ldd)+cx3*wd*ldd'
+cmax='cx0+cx1*ld+cx2*wd+cx3*wd*ld'
+slope_0=1.808e-17
+slope_0_tc1=7.2181e-20
+slope_0_tc2=-1.9745e-21
+cmin_slope_0='slope_0+(temper-tref)*slope_0_tc1+(temper-tref)*(temper-tref)*slope_0_tc2'
+slope_w=-3.169e-17
+slope_w_tc1=-1.4465e-19
+slope_w_tc2=3.5187e-21
+cmin_slope_w='slope_w+(temper-tref)*slope_w_tc1+(temper-tref)*(temper-tref)*slope_w_tc2'
+slope_l=-7.435e-17
+slope_l_tc1=-4.4474e-19
+slope_l_tc2=7.3824e-21
+cmin_slope_l='slope_l+(temper-tref)*slope_l_tc1+(temper-tref)*(temper-tref)*slope_l_tc2'
+slope_wl=2.509e-16
+slope_wl_tc1=-1.0793e-18
+slope_wl_tc2=-2.2625e-20
+cmin_slope_wl='slope_wl+(temper-tref)*slope_wl_tc1+(temper-tref)*(temper-tref)*slope_wl_tc2'
+cmin_slope='cmin_slope_0+cmin_slope_w*wd+cmin_slope_l*ld+cmin_slope_wl*wd*ld'
cg c0 p2 c='(0.5*(cmax+cmin)+cmin_slope*min(v(c0)-v(p2)+0.8,0)+0.5*(cmax-cmin)*(1/1.9)*(tanh((v(c0)-v(p2)-cnwvc2_vt1)/cnwvc_slope1)+0.9*tanh((v(c0)-v(p2)-cnwvc2_vt2)/cnwvc_slope2)))*vm'
*c3 and c4 are the tuning capacitors
c3 c0 b c=0.15e-15
c4 c1 b c=0.15e-15
** Resistance Model Parameters
.param con_sp=0.17
.param cnwvc_k=12 $contacts on both sides
.param cnwvc_n1=0.2 $fitting parameter for r
.param cnwvc_n2=0.35 $fitting parameter for r
.param apoly=1.1
.param apolyc=1.1
.param acon=1
.param anwell=1
.param bnwell=0.5
.param cnwell=0.3
.param n_pocon='max((lc-0.14)/(2*con_sp),1)' $numbers of poly contact
.param n_con='(wc-2*0.06+con_sp)/(2*con_sp)' $numbers of contacts
.param rg_tc1=9.611e-4
.param rg_tc2=5.523e-6
.param rg_tcmult='1+(temper-tref)*rg_tc1+(temper-tref)*(temper-tref)*rg_tc2'
.param cnwvc_a='apoly*rp1*wl/cnwvc_k+apolyc*rcp1/n_pocon+acon*rcn/n_con+anwell*rnw*wlwdiff'
.param cnwvc_b1='bnwell*rnw*cnwvc_ldiff/(2*(wd-2*dwr))'
.param cnwvc_c='cnwell*rnw*cnwvc_ldiff/(2*(wd-2*dwp))'
rg p2 c1 r='(cnwvc_a+cnwvc_b1*(0.5*tanh((v(c0)-v(p2)-cnwvc2_vtr)/cnwvc_n1)+0.5)+20*cnwvc_c*(0.5*tanh((v(c0)-v(p2)-cnwvc2_vtr)/cnwvc_n1)+0.5)*exp(-abs((v(c0)-v(p2)-cnwvc2_vtr)/cnwvc_n2)))/vm*rg_tcmult'
.ends xcnwvc2
***************************************************************************************