// // swjuncap_paramset.va // // The following paramsets handle the implementation of BSIM4-like // junction area/perimeters, except for the difference between // W and WEFF for SWJUNCAP=3; this mimics the behavior implemented // directly in PSP101.0. // // Uses the Verilog-A definition of PSP100.1, found at // http://pspmodel.ee.psu.edu/downloads/psp100.1.tar.gz // Spectre wants the module to be defined in this file; // HSpice wants the module to be included in the netlist `include "disciplines.h" `ifdef CDS_MMSIM6_0_KERNEL_OR_LATER `include "psp.va" `endif // SWJUNCAP = 0, no junctions paramset nmos_va nmos_base; // paramset parameters are "instance parameters" parameter real L = 10e-6 from [1e-9 : inf); parameter real W = 10e-6 from [1e-9 : inf); parameter integer SWJUNCAP = 0 from [0:1); .L = L; .W = W; endparamset // SWJUNCAP = 1, PSP standard paramset nmos_va nmos_base; // paramset parameters are "instance parameters" parameter real L = 10e-6 from [1e-9 : inf); parameter real W = 10e-6 from [1e-9 : inf); parameter integer SWJUNCAP = 1 from (0:1]; parameter real ABDRAIN = 1e-12 from [1e-12 : inf); parameter real ABSOURCE = 1e-12 from [1e-12 : inf); parameter real LSDRAIN = 1e-6 from [1e-6 : inf); parameter real LSSOURCE = 1e-6 from [1e-6 : inf); parameter real LGDRAIN = 1e-6 from [1e-6 : inf); parameter real LGSOURCE = 1e-6 from [1e-6 : inf); .L = L; .W = W; .SWJUNCAP = 1; .ABDRAIN = ABDRAIN; .ABSOURCE = ABSOURCE; .LSDRAIN = LSDRAIN; .LSSOURCE = LSSOURCE; .LGDRAIN = LGDRAIN; .LGSOURCE = LGSOURCE; endparamset // SWJUNCAP = 2, BSIM4 permod=0 paramset nmos_va nmos_base; // paramset parameters are "instance parameters" parameter real L = 10e-6 from [1e-9 : inf); parameter real W = 10e-6 from [1e-9 : inf); parameter integer PERMOD = 0 from [0:1); parameter real AD = 0.0 from [0.0 : inf); parameter real AS = 0.0 from [0.0 : inf); parameter real PD = 0.0 from [0.0 : inf); parameter real PS = 0.0 from [0.0 : inf); .L = L; .W = W; .SWJUNCAP = 1; .ABDRAIN = (AD > 1p) ? AD : 1p; .ABSOURCE = (AS > 1p) ? AS : 1p; .LSDRAIN = (PD > 1u) ? PD : 1u; .LSSOURCE = (PS > 1u) ? PS : 1u; .LGDRAIN = 0; .LGSOURCE = 0; endparamset // SWJUNCAP = 3, BSIM4 permod=1 // note: default value of PERMOD=0 is disallowed by range specification, // so PERMOD=1 *must* be specified for the instance to get this paramset paramset nmos_va nmos_base; // paramset parameters are "instance parameters" parameter real L = 10e-6 from [1e-9 : inf); parameter real W = 10e-6 from [1e-9 : inf); parameter integer PERMOD = 0 from (0:1]; parameter real AD = 0.0 from [0.0 : inf); parameter real AS = 0.0 from [0.0 : inf); parameter real PD = 0.0 from [0.0 : inf); parameter real PS = 0.0 from [0.0 : inf); localparam real LSDRAIN = (PD-W); localparam real LSSOURCE = (PS-W); .L = L; .W = W; .SWJUNCAP = 1; .ABDRAIN = (AD > 1p) ? AD : 1p; .ABSOURCE = (AS > 1p) ? AS : 1p; .LSDRAIN = (LSDRAIN > 1u) ? LSDRAIN : 1u; .LSSOURCE = (LSSOURCE > 1u) ? LSSOURCE : 1u; .LGDRAIN = W; .LGSOURCE = W; endparamset paramset nmos_base PSPVA; // paramset parameters are "instance parameters" parameter real L = 10e-6 from [1e-9 : inf); parameter real W = 10e-6 from [1e-9 : inf); parameter integer SWJUNCAP = 0 from [0:1]; parameter real ABDRAIN = 1e-12 from [0.0 : inf); parameter real ABSOURCE = 1e-12 from [0.0 : inf); parameter real LSDRAIN = 1e-6 from [0.0 : inf); parameter real LSSOURCE = 1e-6 from [0.0 : inf); parameter real LGDRAIN = 1e-6 from [0.0 : inf); parameter real LGSOURCE = 1e-6 from [0.0 : inf); .L = L; .W = W; .SWJUNCAP = SWJUNCAP; .ABDRAIN = ABDRAIN; .ABSOURCE = ABSOURCE; .LSDRAIN = LSDRAIN; .LSSOURCE = LSSOURCE; .LGDRAIN = LGDRAIN; .LGSOURCE = LGSOURCE; // remaining parameters are "model parameters" .LEVEL=100; .TYPE=1; .TR=25.00; .SWIGATE=1.000; .SWIMPACT=0.000; .SWGIDL=0.000; .LVAR0=-13.00n; .LVARL=0.000; .LVARW=0.000; .LAP=12.50n; .WVAR0=11.00n; .WVARL=0.000; .WVARW=0.000; .WOT=0.000; .VFB0=-1.100; .VFBL=0.000; .VFBW=0.000; .VFBLW=0.000; .STVFB0=584.9u; .STVFBL=20.43m; .STVFBW=-20.60m; .STVFBLW=3.000m; .TOX=1.500n; .NSUB0=3.00754E+23; .NSUB0W=-8.105m; .WSEG=138.8p; .NPCK=9.06539E+23; .NPCKW=-4.841m; .WSEGP=90.21n; .LPCK=55.04n; .LPCKW=-57.35m; .VNSUB=0.000; .NSLP=50.00m; .DNSUB=0.000; .NP0=1.60000E+26; .NPL=10.72e-18; .QMC=1.000; .CT0=4.441f; .CTL=37.42m; .CTW=0.000; .CTLEXP=598.8m; .TOXOV=1.5n; .LOV=13.30n; .NOV=7.50000E+25; .F0L1=17.27m; .F0L2=5.303u; .AF0=106.9m; .AFL=124.6u; .AFLEXP=1.707; .AFW=38.75m; .BFL=0.000; .CFL=317.0u; .CFLEXP=2.053; .CFW=46.14m; .CFB=293.0m; .U0=34.00m; .FBET1=-335.0m; .FBET1W=149.3m; .LP1=185.0n; .LP1W=-24.89m; .FBET2=51.00; .LP2=863.0p; .BETW1=60.75m; .BETW2=-17.51m; .WBET=541.2p; .STBET0=1.782; .STBETL=-18.73m; .STBETW=-18.50m; .STBETLW=-3.162m; .MUE0=610.0m; .MUEW=-11.84m; .STMUE=511.0m; .THEMU=2.789; .STTHEMU=-106.9m; .CS0=10.00m; .CSW=0.000; .STCS=-5.000; .XCOR0=130.0m; .XCORL=2.000m; .XCORW=-29.00m; .XCORLW=-3.641m; .STXCOR=1.180; .RSW1=31.57; .RSW2=56.00m; .STRS=-2.044; .RSB=0.000; .RSG=0.000; .THESAT0=1.000u; .THESATL=600.0m; .THESATLEXP=760.0m; .THESATW=-11.50m; .STTHESAT0=1.534; .STTHESATL=-22.17m; .STTHESATW=-20.36m; .STTHESATLW=-4.660m; .THESATB=166.5m; .THESATG=690.0m; .SO=990.0m; .AX0=20.00; .AXL=217.9m; .ALPL=7.332m; .ALPLEXP=608.4m; .ALPW=45.93m; .ALP1L1=24.89m; .ALP1L2=110.4m; .ALP1LEXP=406.1m; .ALP1W=8.455m; .ALP20=478.8m; .ALP2L=444.1e-18; .ALP2W=-160.00m; .VP=250.0m; .A10=1.000; .A1L=0.000; .A1W=0.000; .A2=10.00; .STA2=-523.7m; .A30=1.000; .A3L=0.000; .A3W=0.000; .A40=0.000; .A4W=0.000; .GC0=4.475; .IGINVLW=18.19; .IGOVW=11.00; .GC2=1.393; .GC3=-959.7m; .CHIB=3.100; .STIG=1.300; .AGIDLW=0.000; .BGIDL=28.96; .STBGIDL=-436.7u; .CGIDL=134.0m; .CGBOVL=0.000; .IFKW=35.00e-18; .IFC=1.000; .IFVBI=1.200; .CFRW=55.00e-18; .NFALW=8.00000E+22; .NFBLW=30.00M; .NFCLW=0.000; .DTA=0.000; .TRJ=21.00; .IMAX=1.000; .CJORBOT=890.6u; .CJORSTI=0.000; .CJORGAT=517.3p; .VBIRBOT=718.8m; .VBIRSTI=956.3m; .VBIRGAT=881.2m; .PBOT=344.7m; .PSTI=390.2m; .PGAT=602.5m; .PHIGBOT=1.137; .PHIGSTI=1.150; .PHIGGAT=618.6m; .IDSATRBOT=48.86n; .IDSATRSTI=0.000; .IDSATRGAT=0.000; .CSRHBOT=500.0; .CSRHSTI=0.000; .CSRHGAT=5.697K; .XJUNSTI=31.68n; .XJUNGAT=1.000n; .CTATBOT=500; .CTATSTI=0.000; .CTATGAT=5.697K; .MEFFTATBOT=200.0m; .MEFFTATSTI=250.0m; .MEFFTATGAT=200.0m; .CBBTBOT=0.000; .CBBTSTI=0.000; .CBBTGAT=0.000; .FBBTRBOT=1.000G; .FBBTRSTI=1.000G; .FBBTRGAT=1.745G; .STFBBTBOT=0.000; .STFBBTSTI=0.000; .STFBBTGAT=-22.44m; .VBRBOT=10.00; .VBRSTI=10.00; .VBRGAT=7.250; .PBRBOT=2.500; .PBRSTI=4.000; .PBRGAT=2.000; endparamset