cmos_kilburn * MOS FET models * from http://ltwiki.org/files/LTspiceIV/lib/sub/SwitchAna.Lib .MODEL MN NMOS LEVEL=2 VTO=1.45 TOX=1000E-10 NSUB=4.7E16 +XJ=3U LD=2U UO=625 UCRIT=1E5 UEXP=0.45 UTRA=0.25 RD=15 RS=15 +NEFF=2.5 VMAX=1E6 CGBO=3E-10 CGDO=10E-10 CGSO=10E-10 CJSW=2F +NFS=4E12 GAMMA=2.2 LAMBDA=0.02 .MODEL MP PMOS LEVEL=2 VTO=-1.5 TOX=1000E-10 NSUB=7.6E15 +XJ=3U LD=1.5U UO=225 UCRIT=3E5 UEXP=.5 UTRA=0.25 RD=15 RS=15 +NEFF=2.5 VMAX=1E5 CGBO=3E-10 CGDO=10E-10 CGSO=10E-10 CJSW=1F +NFS=1E12 GAMMA=1.8 LAMBDA=0.02 .SUBCKT NOT 10 20 80 90 MP2 20 10 80 80 MP L=8U W=20U MN1 20 10 90 90 MN L=8U W=10U .ENDS .SUBCKT NAND 10 20 30 80 90 MP1 30 10 80 80 MP L=8U W=20U MP2 30 20 80 80 MP L=8U W=20U MN1 40 10 30 90 MN L=8U W=20U MN2 40 20 90 90 MN L=8U W=20U .ENDS .SUBCKT NOR 10 20 30 80 90 MP1 40 10 80 80 MP L=8U W=40U MP2 40 20 30 80 MP L=8U W=40U MN1 30 10 90 90 MN L=8U W=10U MN2 30 20 90 90 MN L=8U W=10U .ENDS .SUBCKT AND_NOR 10 20 30 40 80 90 * (10 and 20) nor 30 MP1 50 10 80 80 MP L=8U W=40U MP2 50 20 80 80 MP L=8U W=40U MP3 50 30 40 80 MP L=8U W=40U MN1 60 10 40 90 MN L=8U W=20U MN2 60 20 90 90 MN L=8U W=20U MN3 40 30 90 90 MN L=8U W=10U .ENDS .SUBCKT OR_NAND 10 20 30 40 80 90 * (10 or 20) nand 30 MP1 50 10 80 80 MP L=8U W=40U MP2 50 20 40 80 MP L=8U W=40U MP3 40 30 80 80 MP L=8U W=20U MN1 40 10 60 90 MN L=8U W=20U MN2 40 20 60 90 MN L=8U W=20U MN3 60 30 90 90 MN L=8U W=20U .ENDS .SUBCKT KILBURN 10 20 30 40 50 80 90 * 10=A 20=B 30=Cin * 40=Sum 50=Cout * 80=Vdd 90=Vss X_NAND 10 20 41 80 90 NAND X_NOR 10 20 42 80 90 NOR X_ORNAND 10 20 41 43 80 90 OR_NAND X_ANDNOR 10 20 42 44 80 90 AND_NOR XNOT 30 31 80 90 NOT MPS1 43 31 40 80 MP L=8U W=40U MNS1 43 30 40 90 MN L=8U W=20U MPS2 44 30 40 80 MP L=8U W=40U MNS2 44 31 40 90 MN L=8U W=20U * C propagation MPC1 50 43 30 80 MP L=8U W=40U MNC1 50 44 30 90 MN L=8U W=20U * set Cout to 1 when A==1 and B==1 MPC2 50 41 80 80 MP L=8U W=40U * set Cout to 0 when A==0 and B==0 MNC2 50 42 90 90 MN L=8U W=20U .ENDS .SUBCKT ADDER 10 11 20 21 40 41 51 80 90 XADDER0 10 20 0 40 50 80 90 KILBURN XADDER1 11 21 50 41 51 80 90 KILBURN *XADDER0 10 20 1 40 50 80 90 KILBURN *XADDER1 11 21 50 41 51 80 90 KILBURN .ENDS Vdd 1 0 15V V10 10 0 PULSE 0V 15V 500ns 1ns 1ns 499ns 1000ns V11 11 0 PULSE 0V 15V 1000ns 1ns 1ns 999ns 2000ns V20 20 0 PULSE 0V 15V 2000ns 1ns 1ns 1999ns 4000ns V21 21 0 PULSE 0V 15V 4000ns 1ns 1ns 3999ns 8000ns XADDER 10 11 20 21 40 41 51 1 0 ADDER .tran 1ns 8000ns .print tran V(10) V(11) V(20) V(21) V(40) V(41) V(51)