* Models .model sw1v vswitch roff=1e12 ron=1m voff=450m von=550m .model sw2v vswitch roff=1e12 ron=1m voff=950m von=1050m .model sw4v vswitch roff=1e12 ron=1m voff=1950m von=2050m .model sw1v200m vswitch roff=1e12 ron=200m voff=450m von=550m .model idiode d is=1f n=0.001 .model diode1 d is=50f n=1 tt=1n .model diode2 d is=50f n=1 tt=5n .model fdiode1 d is=50f n=1 .model nmos0 nmos vto=1 kp=200u lambda=0.1 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model pmos0 pmos vto=-1 kp=40u lambda=0.1 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model fnmos0 nmos vto=1 kp=200u lambda=0.1 gamma=600m phi=600m .model fpmos0 pmos vto=-1 kp=40u lambda=0.1 gamma=600m phi=600m .model nmos1 nmos vto=400m kp=200u lambda=0.1 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model pmos1 pmos vto=-400m kp=40u lambda=0.1 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model fnmos1 nmos vto=400m kp=200u lambda=0.1 gamma=600m phi=600m .model fpmos1 pmos vto=-400m kp=40u lambda=0.1 gamma=600m phi=600m .model nmos2 nmos vto=500m kp=200u lambda=0.05 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model pmos2 pmos vto=-700m kp=40u lambda=0.05 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model nmos3 nmos vto=500m kp=200u lambda=0.01 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p .model pmos3 pmos vto=-700m kp=40u lambda=0.01 gamma=600m phi=600m tox=5n ld=30n cgso=200p cgdo=200p * Sub-circuits .subckt inv vi vo v1v v1v 0 dc=1 ei va 0 vi 0 1 * tP = R(Cdly + Cfb) time to 50% = 69.3%RC = 1 n rdly va vb 1 cdly vb 0 722p cfb vfb vb 722p sh1 vo v1v v1v vb dig_sw sl1 vo 0 vb 0 dig_sw sh2 vfb v1v v1v vo dig_sw sl2 vfb 0 vo 0 dig_sw .model dig_sw vswitch roff=1e12 ron=1m voff=499m von=501m .ends .subckt dly vi vo v1v v1v 0 dc=1 sih va v1v vi 0 dig_sw sil va 0 v1v vi dig_sw * Rise tX+ dr va vr idiode rr vr vb 1 * Fall tX- df vf va idiode * tP(F) = tP(R) * (rf/rr) = 200 ns rf vf vb 200m * tP(R) = R(Cdly + Cfb) time to 50% = 69.3%tRC = 450 ns cdly vb 0 325n cfb vfb vb 325n sh1 vo v1v vb 0 dig_sw sl1 vo 0 v1v vb dig_sw sh2 vfb v1v vo 0 dig_sw sl2 vfb 0 v1v vo dig_sw .model dig_sw vswitch roff=1e12 ron=1m voff=490m von=510m .model idiode d is=1f n=0.001 .ends .subckt srs s r q qn v1v v1v 0 dc=1 sh va v1v s 0 dig_sw sl va 0 r 0 wk_sw rdly va vb 1 * tP = R(Cdly + Cfb) time to 50% = 69.3%tRC = 1 ns cdly vb 0 722p cfb q vb 722p sqh q v1v vb 0 dig_sw sql q 0 v1v vb dig_sw snh qn v1v v1v vb dig_sw snl qn 0 vb 0 dig_sw .model wk_sw vswitch roff=1e15 ron=100m + voff=499m von=501m .model dig_sw vswitch roff=1e12 ron=1m voff=490m von=510m .model idiode d is=1f n=0.001 .ends .subckt srr s r q qn v1v v1v 0 dc=1 sh va v1v s 0 wk_sw sl va 0 r 0 dig_sw rdly va vb 1 * tP = R(Cdly + Cfb) time to 50% = 69.3%tRC = 1 ns cdly vb 0 722p cfb q vb 722p sqh q v1v vb 0 dig_sw sql q 0 v1v vb dig_sw snh qn v1v v1v vb dig_sw snl qn 0 vb 0 dig_sw .model wk_sw vswitch roff=1e15 ron=1000m + voff=499m von=501m .model dig_sw vswitch roff=1e12 ron=1m voff=499m von=501m .model idiode d is=1f n=0.001 .ends .subckt cp vp vn vo vdd vss v1v v1v 0 dc=1 g1 0 va vp vn 1 ra va 0 100k dp va v1v idiode dn 0 va idiode ebw vbwx 0 va 0 1 rbw vbwx vbw 1 * tP = R(Cbw + Cfb) time to 50% = 69.3%tRC = 100 ns cbw vbw 0 72.2n cfb vfb vbw 72.2n sh vo vdd vbw 0 dig_sw sl vo vss v1v vbw dig_sw sh2 vfb v1v vbw 0 dig_sw sl2 vfb 0 v1v vbw dig_sw .model idiode d is=1f n=0.001 .model dig_sw vswitch roff=1e12 ron=1m voff=499m von=501m .ends .subckt cp3vid vp1 vn1 vp2 vn2 vp3 vn3 vo vdd vss v1v v1v 0 dc=1 g1 0 va vp1 vn1 1 g2 0 va vp2 vn2 1 g3 0 va vp3 vn3 1 ra va 0 100k dp va v1v idiode dn 0 va idiode ebw vbwx 0 va 0 1 rbw vbwx vbw 1 * tP = R(Cbw + Cfb) time to 50% = 69.3%tRC = 100 ns cbw vbw 0 72.2n cfb vfb vbw 72.2n sh vo vdd vbw 0 dig_sw sl vo vss v1v vbw dig_sw sh2 vfb v1v vbw 0 dig_sw sl2 vfb 0 v1v vbw dig_sw .model idiode d is=1f n=0.001 .model dig_sw vswitch roff=1e12 ron=1m voff=499m von=501m .ends .subckt cphys200m vp vn vo vdd vss v1v v1v 0 dc=1 v1vn v1vn 0 dc=-1 g1 0 vid vp vn 1 ra vid 0 1 dp vid v1v idiode dn v1vn vid idiode sh1 va v1v vid 0 hys_sw sl1 va 0 0 vid hys_sw ca va 0 1n ebw vbwx 0 va 0 1 rbw vbwx vbw 1 * tP = R(Cbw + Cfb) time to 50% = 69.3%tRC = 100 ns cbw vbw 0 72.2n cfb vfb vbw 72.2n sh vo vdd vbw 0 dig_sw sl vo vss v1v vbw dig_sw sh2 vfb v1v vbw 0 dig_sw sl2 vfb 0 v1v vbw dig_sw * Hysteresis = +-100 mV .model hys_sw vswitch roff=1e12 ron=1m voff=99.9m von=100.1m .model dig_sw vswitch roff=1e12 ron=1m voff=490m von=510m .model idiode d is=1f n=0.001 .ends .subckt cphys50m vp vn vo vdd vss v1v v1v 0 dc=1 v1vn v1vn 0 dc=-1 g1 0 vid vp vn 1 ra vid 0 1 dp vid v1v idiode dn v1vn vid idiode sh1 va v1v vid 0 hys_sw sl1 va 0 0 vid hys_sw ca va 0 1n ebw vbwx 0 va 0 1 rbw vbwx vbw 1 * tP = R(Cbw + Cfb) time to 50% = 69.3%tRC = 100 ns cbw vbw 0 72.2n cfb vfb vbw 72.2n sh vo vdd vbw 0 dig_sw sl vo vss v1v vbw dig_sw sh2 vfb v1v vbw 0 dig_sw sl2 vfb 0 v1v vbw dig_sw * Hysteresis = +-25 mV .model hys_sw vswitch roff=1e12 ron=1m + voff=24.9m von=25.1m .model dig_sw vswitch roff=1e12 ron=1m voff=490m von=510m .model idiode d is=1f n=0.001 .ends .subckt cphys25m vp vn vo vdd vss v1v v1v 0 dc=1 v1vn v1vn 0 dc=-1 g1 0 vid vp vn 1 ra vid 0 1 dp vid v1v idiode dn v1vn vid idiode sh1 va v1v vid 0 hys_sw sl1 va 0 0 vid hys_sw ca va 0 1n ebw vbwx 0 va 0 1 rbw vbwx vbw 1 * tP = R(Cbw + Cfb) time to 50% = 69.3%tRC = 100 ns cbw vbw 0 72.2n cfb vfb vbw 72.2n sh vo vdd vbw 0 dig_sw sl vo vss v1v vbw dig_sw sh2 vfb v1v vbw 0 dig_sw sl2 vfb 0 v1v vbw dig_sw * Hysteresis = +-25 mV .model hys_sw vswitch roff=1e12 ron=1m voff=12.45m von=12.55m .model dig_sw vswitch roff=1e12 ron=1m voff=490m von=510m .model idiode d is=1f n=0.001 .ends .subckt cphys3vid50m vp1 vn1 vp2 vn2 vp3 vn3 vo vdd vss v1v v1v 0 dc=1 v1vn v1vn 0 dc=-1 g1 0 vid vp1 vn1 1 g2 0 vid vp2 vn2 1 g3 0 vid vp3 vn3 1 rid vid 0 1 dp vid v1v idiode dn v1vn vid idiode sh1 va v1v vid 0 hys_sw sl1 va 0 0 vid hys_sw ca va 0 1n ebw vbwx 0 va 0 1 rbw vbwx vbw 1 * tP = R(Cbw + Cfb) time to 50% = 69.3%tRC = 100 ns cbw vbw 0 72.2n cfb vfb vbw 72.2n sh vo vdd vbw 0 dig_sw sl vo vss v1v vbw dig_sw sh2 vfb v1v vbw 0 dig_sw sl2 vfb 0 v1v vbw dig_sw * Hysteresis = +-25 mV .model hys_sw vswitch roff=1e12 ron=1m + voff=24.9m von=25.1m .model dig_sw vswitch roff=1e12 ron=1m voff=450m von=550m .model idiode d is=1f n=0.001 .ends