summaryrefslogtreecommitdiff
path: root/OSCAD/modelEditor
diff options
context:
space:
mode:
Diffstat (limited to 'OSCAD/modelEditor')
-rw-r--r--OSCAD/modelEditor/1n4007.lib4
-rwxr-xr-xOSCAD/modelEditor/CORE.lib2
-rwxr-xr-xOSCAD/modelEditor/D.hlp16
-rwxr-xr-xOSCAD/modelEditor/D.lib3
-rwxr-xr-xOSCAD/modelEditor/NIGBT.lib10
-rwxr-xr-xOSCAD/modelEditor/NJF.lib4
-rw-r--r--OSCAD/modelEditor/NMOS-0.5um.lib6
-rw-r--r--OSCAD/modelEditor/NMOS-180nm.lib13
-rwxr-xr-xOSCAD/modelEditor/NMOS-5um.lib5
-rwxr-xr-xOSCAD/modelEditor/NMOS.lib13
-rwxr-xr-xOSCAD/modelEditor/NMOS12.lib5
-rwxr-xr-xOSCAD/modelEditor/NPN.hlp17
-rwxr-xr-xOSCAD/modelEditor/NPN.lib4
-rwxr-xr-xOSCAD/modelEditor/PIGBT.lib10
-rwxr-xr-xOSCAD/modelEditor/PJF.lib5
-rwxr-xr-xOSCAD/modelEditor/PMOS .lib4
-rw-r--r--OSCAD/modelEditor/PMOS-0.5um.lib6
-rw-r--r--OSCAD/modelEditor/PMOS-180nm.lib11
-rwxr-xr-xOSCAD/modelEditor/PMOS-5um.lib5
-rwxr-xr-xOSCAD/modelEditor/PMOS.lib11
-rwxr-xr-xOSCAD/modelEditor/PMOS11.lib4
-rwxr-xr-xOSCAD/modelEditor/PNP.lib4
-rwxr-xr-xOSCAD/modelEditor/exportModel.py77
-rwxr-xr-xOSCAD/modelEditor/helpEditor.py43
-rwxr-xr-xOSCAD/modelEditor/importModel.py86
-rwxr-xr-xOSCAD/modelEditor/modelEditor.py166
-rwxr-xr-xOSCAD/modelEditor/newModel.py187
-rwxr-xr-xOSCAD/modelEditor/openModel.py116
-rwxr-xr-xOSCAD/modelEditor/selectModel.py155
-rwxr-xr-xOSCAD/modelEditor/setPath.py2
-rwxr-xr-xOSCAD/modelEditor/template.py114
31 files changed, 0 insertions, 1108 deletions
diff --git a/OSCAD/modelEditor/1n4007.lib b/OSCAD/modelEditor/1n4007.lib
deleted file mode 100644
index 1e66174..0000000
--- a/OSCAD/modelEditor/1n4007.lib
+++ /dev/null
@@ -1,4 +0,0 @@
-.model 1n4007 D( Vj=.75 Nbvl=14.976 Cjo=175p Rs=.25 Isr=1.859n
-+ Eg=1.11 M=.5516 Nbv=1.6989 N=1 Tbv1=-21.277u
-+ Bv=8.1 Fc=.5 Ikf=0 Nr=2 Ibv=20.245m
-+ Is=880.5E-18 Xti=3 Ibvl=1.9556m ) \ No newline at end of file
diff --git a/OSCAD/modelEditor/CORE.lib b/OSCAD/modelEditor/CORE.lib
deleted file mode 100755
index c48c4b5..0000000
--- a/OSCAD/modelEditor/CORE.lib
+++ /dev/null
@@ -1,2 +0,0 @@
-.model K3019PL_3C8 Core(MS=415.2K A=44.82 C=.4112 K=25.74
-+ Area=1.38 Path=4.52)
diff --git a/OSCAD/modelEditor/D.hlp b/OSCAD/modelEditor/D.hlp
deleted file mode 100755
index fd0b2f8..0000000
--- a/OSCAD/modelEditor/D.hlp
+++ /dev/null
@@ -1,16 +0,0 @@
- name parameter units default example
-1 IS saturation current A 1.0e-14 1.0e-14
-2 RS ohmic resistanc Ohm 0 10
-3 N emission coefficient - 1 1.0
-4 TT transit-time sec 0 0.1ns
-5 CJO zero-bias junction capacitance F 0 2pF
-6 VJ junction potential V 1 0.6
-7 M grading coefficient - 0.5 0.5
-8 EG band-gap energy eV 1.11 1.11 Si
-9 XTI saturation-current temp.exp - 3.0 3.0 pn/ 2.0 Schottky
-10 KF flicker noise coefficient - 0
-11 AF flicker noise exponent - 1
-12 FC coefficient for forward-bias depletion capacitance formula - 0.5
-13 BV reverse breakdown voltage V infinite 40.0
-14 IBV current at breakdown voltage V 1.0e-3
-15 TNOM parameter measurement temperature deg C 27 50
diff --git a/OSCAD/modelEditor/D.lib b/OSCAD/modelEditor/D.lib
deleted file mode 100755
index 890c37f..0000000
--- a/OSCAD/modelEditor/D.lib
+++ /dev/null
@@ -1,3 +0,0 @@
-.model D1N750 D( Is=880.5E-18 Rs=.25 Ikf=0 N=1 Xti=3 Eg=1.11 Cjo=175p M=.5516
-+ Vj=.75 Fc=.5 Isr=1.859n Nr=2 Bv=8.1 Ibv=20.245m Nbv=1.6989 Ibvl=1.9556m
-+ Nbvl=14.976 Tbv1=-21.277u)
diff --git a/OSCAD/modelEditor/NIGBT.lib b/OSCAD/modelEditor/NIGBT.lib
deleted file mode 100755
index 8c09dcb..0000000
--- a/OSCAD/modelEditor/NIGBT.lib
+++ /dev/null
@@ -1,10 +0,0 @@
-.MODEL IXGH40N60 NIGBT (
-+ TAU=287.56E-9
-+ KP=50.034
-+ AREA=37.500E-6
-+ AGD=18.750E-6
-+ VT=4.1822
-+ KF=.36047
-+ CGS=31.942E-9
-+ COXD=53.188E-9
-+ VTD=2.6570)
diff --git a/OSCAD/modelEditor/NJF.lib b/OSCAD/modelEditor/NJF.lib
deleted file mode 100755
index dbb2cba..0000000
--- a/OSCAD/modelEditor/NJF.lib
+++ /dev/null
@@ -1,4 +0,0 @@
-.model J2N3819 NJF(Beta=1.304m Betatce=-.5 Rd=1 Rs=1 Lambda=2.25m Vto=-3
-+ Vtotc=-2.5m Is=33.57f Isr=322.4f N=1 Nr=2 Xti=3 Alpha=311.7u
-+ Vk=243.6 Cgd=1.6p M=.3622 Pb=1 Fc=.5 Cgs=2.414p Kf=9.882E-18
-+ Af=1)
diff --git a/OSCAD/modelEditor/NMOS-0.5um.lib b/OSCAD/modelEditor/NMOS-0.5um.lib
deleted file mode 100644
index 2e6f463..0000000
--- a/OSCAD/modelEditor/NMOS-0.5um.lib
+++ /dev/null
@@ -1,6 +0,0 @@
-.model mos_n NMOS( TPG=1 TOX=9.5n CJ=550u ETA=0.02125 VMAX=1.8E05
-+ GAMMA=0.62 CGSO=0.3n LD=50n MJSW=0.35 PB=1.1
-+ CGBO=0.45n XJ=0.2U CGDO=0.3n KAPPA=0.1 LEVEL=3
-+ VTO=0.6 NFS=7.20E11 THETA=0.23 CJSW=0.3n PHI=0.7
-+ RSH=2.0 MJ=0.6 UO=420 KP=156u DELTA=0.88
-+ NSUB=1.40E17 ) \ No newline at end of file
diff --git a/OSCAD/modelEditor/NMOS-180nm.lib b/OSCAD/modelEditor/NMOS-180nm.lib
deleted file mode 100644
index 51e9b11..0000000
--- a/OSCAD/modelEditor/NMOS-180nm.lib
+++ /dev/null
@@ -1,13 +0,0 @@
-.model CMOSN NMOS (LEVEL=8 VERSION=3.2 TNOM=27 TOX=4.1E-9 XJ=1E-7 NCH=2.3549E17 VTH0=0.3823463 K1=0.5810697
-+ K2=4.774618E-3 K3=0.0431669 K3B=1.1498346 W0=1E-7 NLX=1.910552E-7 DVT0W=0 DVT1W=0 DVT2W=0
-+ DVT0=1.2894824 DVT1=0.3622063 DVT2=0.0713729 U0=280.633249 UA=-1.208537E-9 UB=2.158625E-18
-+ UC=5.342807E-11 VSAT=9.366802E4 A0=1.7593146 AGS=0.3939741 B0=-6.413949E-9 B1=-1E-7 KETA=-5.180424E-4
-+ A1=0 A2=1 RDSW=105.5517558 PRWG=0.5 PRWB=-0.1998871 WR=1 WINT=7.904732E-10 LINT=1.571424E-8 XL=0
-+ XW=-1E-8 DWG=1.297221E-9 DWB=1.479041E-9 VOFF=-0.0955434 NFACTOR=2.4358891 CIT=0 CDSC=2.4E-4 CDSCD=0
-+ CDSCB=0 ETA0=3.104851E-3 ETAB=-2.512384E-5 DSUB=0.0167075 PCLM=0.8073191 PDIBLC1=0.1666161 PDIBLC2=3.112892E-3
-+ PDIBLCB=-0.1 DROUT=0.7875618 PSCBE1=8E10 PSCBE2=9.213635E-10 PVAG=3.85243E-3 DELTA=0.01 RSH=6.7 MOBMOD=1
-+ PRT=0 UTE=-1.5 KT1=-0.11 KT1L=0 KT2=0.022 UA1=4.31E-9 UB1=-7.61E-18 UC1=-5.6E-11 AT=3.3E4 WL=0 WLN=1
-+ WW=0 WWN=1 WWL=0 LL=0 LLN=1 LW=0 LWN=1 LWL=0 CAPMOD=2 XPART=0.5 CGDO=7.08E-10 CGSO=7.08E-10 CGBO=1E-12
-+ CJ=9.68858E-4 PB=0.8 MJ=0.3864502 CJSW=2.512138E-10 PBSW=0.809286 MJSW=0.1060414 CJSWG=3.3E-10 PBSWG=0.809286
-+ MJSWG=0.1060414 CF=0 PVTH0=-1.192722E-3 PRDSW=-5 PK2=6.450505E-5 WKETA=-4.27294E-4 LKETA=-0.0104078
-+ PU0=6.3268729 PUA=2.226552E-11 PUB=0 PVSAT=969.1480157 PETA0=1E-4 PKETA=-1.049509E-3)
diff --git a/OSCAD/modelEditor/NMOS-5um.lib b/OSCAD/modelEditor/NMOS-5um.lib
deleted file mode 100755
index a237e1f..0000000
--- a/OSCAD/modelEditor/NMOS-5um.lib
+++ /dev/null
@@ -1,5 +0,0 @@
-* 5um technology
-
-.model mos_n NMOS( Cgso=0.4n Tox=85n Vto=1 phi=0.7
-+ Level=1
-+ Mj=.5 UO=750 Cgdo=0.4n Gamma=1.4 LAMBDA=0.01 LD=0.7u JS=1u CJ=0.4m CJSW=0.8n MJSW=0.5 PB=0.7 CGBO=0.2n )
diff --git a/OSCAD/modelEditor/NMOS.lib b/OSCAD/modelEditor/NMOS.lib
deleted file mode 100755
index 51e9b11..0000000
--- a/OSCAD/modelEditor/NMOS.lib
+++ /dev/null
@@ -1,13 +0,0 @@
-.model CMOSN NMOS (LEVEL=8 VERSION=3.2 TNOM=27 TOX=4.1E-9 XJ=1E-7 NCH=2.3549E17 VTH0=0.3823463 K1=0.5810697
-+ K2=4.774618E-3 K3=0.0431669 K3B=1.1498346 W0=1E-7 NLX=1.910552E-7 DVT0W=0 DVT1W=0 DVT2W=0
-+ DVT0=1.2894824 DVT1=0.3622063 DVT2=0.0713729 U0=280.633249 UA=-1.208537E-9 UB=2.158625E-18
-+ UC=5.342807E-11 VSAT=9.366802E4 A0=1.7593146 AGS=0.3939741 B0=-6.413949E-9 B1=-1E-7 KETA=-5.180424E-4
-+ A1=0 A2=1 RDSW=105.5517558 PRWG=0.5 PRWB=-0.1998871 WR=1 WINT=7.904732E-10 LINT=1.571424E-8 XL=0
-+ XW=-1E-8 DWG=1.297221E-9 DWB=1.479041E-9 VOFF=-0.0955434 NFACTOR=2.4358891 CIT=0 CDSC=2.4E-4 CDSCD=0
-+ CDSCB=0 ETA0=3.104851E-3 ETAB=-2.512384E-5 DSUB=0.0167075 PCLM=0.8073191 PDIBLC1=0.1666161 PDIBLC2=3.112892E-3
-+ PDIBLCB=-0.1 DROUT=0.7875618 PSCBE1=8E10 PSCBE2=9.213635E-10 PVAG=3.85243E-3 DELTA=0.01 RSH=6.7 MOBMOD=1
-+ PRT=0 UTE=-1.5 KT1=-0.11 KT1L=0 KT2=0.022 UA1=4.31E-9 UB1=-7.61E-18 UC1=-5.6E-11 AT=3.3E4 WL=0 WLN=1
-+ WW=0 WWN=1 WWL=0 LL=0 LLN=1 LW=0 LWN=1 LWL=0 CAPMOD=2 XPART=0.5 CGDO=7.08E-10 CGSO=7.08E-10 CGBO=1E-12
-+ CJ=9.68858E-4 PB=0.8 MJ=0.3864502 CJSW=2.512138E-10 PBSW=0.809286 MJSW=0.1060414 CJSWG=3.3E-10 PBSWG=0.809286
-+ MJSWG=0.1060414 CF=0 PVTH0=-1.192722E-3 PRDSW=-5 PK2=6.450505E-5 WKETA=-4.27294E-4 LKETA=-0.0104078
-+ PU0=6.3268729 PUA=2.226552E-11 PUB=0 PVSAT=969.1480157 PETA0=1E-4 PKETA=-1.049509E-3)
diff --git a/OSCAD/modelEditor/NMOS12.lib b/OSCAD/modelEditor/NMOS12.lib
deleted file mode 100755
index 721c592..0000000
--- a/OSCAD/modelEditor/NMOS12.lib
+++ /dev/null
@@ -1,5 +0,0 @@
-.model IRF150 NMOS(Level=3 Gamma=0 Delta=0 Eta=0 Theta=0 Kappa=0 Vmax=0 Xj=0
-+ Tox=100n Uo=600 Phi=.6 Rs=1.624m Kp=20.53u W=.3 L=2u Vto=2.831
-+ Rd=1.031m Rds=444.4K Cbd=3.229n Pb=.8 Mj=.5 Fc=.5 Cgso=9.027n
-+ Cgdo=1.679n Rg=13.89 Is=194E-18 N=1 Tt=288n)
-
diff --git a/OSCAD/modelEditor/NPN.hlp b/OSCAD/modelEditor/NPN.hlp
deleted file mode 100755
index e492ea1..0000000
--- a/OSCAD/modelEditor/NPN.hlp
+++ /dev/null
@@ -1,17 +0,0 @@
-1) BF Forward active current gain
-2) VJE Base-emitter built-in potential
-3) BR Reverse active current gain
-4) VJC Base-collector built-in potential
-5) IS Transport saturation current
-6) VAF Forward mode Early voltage
-7) CJE Base-emitter zero-bias Junction capacitance
-8) VAR Reverse mode Early voltage
-9) NF Forward mode ideality factor
-10) CJC Base-collector zero-bias Junction capacitance
-11) NR Reverse mode ideality factor
-12) RB zero bias base resistance
-13) MJE base-emitter capacitance exponent
-14) RE emitter resistance
-15) MJC base-collector capacitance exponent
-16) RC collector resistance
-17) EG energy gap for temperature effect on IS
diff --git a/OSCAD/modelEditor/NPN.lib b/OSCAD/modelEditor/NPN.lib
deleted file mode 100755
index 6509fe7..0000000
--- a/OSCAD/modelEditor/NPN.lib
+++ /dev/null
@@ -1,4 +0,0 @@
-.model Q2N2222 NPN( Is=14.34f Xti=3 Eg=1.11 Vaf=74.03 Bf=400 Ne=1.307
-+ Ise=14.34f Ikf=.2847 Xtb=1.5 Br=6.092 Nc=2 Isc=0 Ikr=0 Rc=1 Cjc=7.306p
-+ Mjc=.3416 Vjc=.75 Fc=.5 Cje=22.01p Mje=.377 Vje=.75 Tr=46.91n Tf=411.1p
-+ Itf=.6 Vtf=1.7 Xtf=3 Rb=10)
diff --git a/OSCAD/modelEditor/PIGBT.lib b/OSCAD/modelEditor/PIGBT.lib
deleted file mode 100755
index d4f9e81..0000000
--- a/OSCAD/modelEditor/PIGBT.lib
+++ /dev/null
@@ -1,10 +0,0 @@
-.MODEL IXGH40N60 PIGBT (
-+ TAU=287.56E-9
-+ KP=50.034
-+ AREA=37.500E-6
-+ AGD=18.750E-6
-+ VT=4.1822
-+ KF=.36047
-+ CGS=31.942E-9
-+ COXD=53.188E-9
-+ VTD=2.6570)
diff --git a/OSCAD/modelEditor/PJF.lib b/OSCAD/modelEditor/PJF.lib
deleted file mode 100755
index 5589571..0000000
--- a/OSCAD/modelEditor/PJF.lib
+++ /dev/null
@@ -1,5 +0,0 @@
-.model J2N3820 PJF(Beta=1.304m Betatce=-.5 Rd=1 Rs=1 Lambda=2.25m Vto=-3
-+ Vtotc=-2.5m Is=33.57f Isr=322.4f N=1 Nr=2 Xti=3 Alpha=311.7u
-+ Vk=243.6 Cgd=1.6p M=.3622 Pb=1 Fc=.5 Cgs=2.414p Kf=9.882E-18
-+ Af=1)
-
diff --git a/OSCAD/modelEditor/PMOS .lib b/OSCAD/modelEditor/PMOS .lib
deleted file mode 100755
index 6c9bb83..0000000
--- a/OSCAD/modelEditor/PMOS .lib
+++ /dev/null
@@ -1,4 +0,0 @@
-.model IRF9140 PMOS(Level=3 Gamma=0 Delta=0 Eta=0 Theta=0 Kappa=0 Vmax=0 Xj=0
-+ Tox=100n Uo=300 Phi=.6 Rs=70.6m Kp=10.15u W=1.9 L=2u Vto=-3.67
-+ Rd=60.66m Rds=444.4K Cbd=2.141n Pb=.8 Mj=.5 Fc=.5 Cgso=877.2p
-+ Cgdo=369.3p Rg=.811 Is=52.23E-18 N=2 Tt=140n)
diff --git a/OSCAD/modelEditor/PMOS-0.5um.lib b/OSCAD/modelEditor/PMOS-0.5um.lib
deleted file mode 100644
index 848e8b0..0000000
--- a/OSCAD/modelEditor/PMOS-0.5um.lib
+++ /dev/null
@@ -1,6 +0,0 @@
-.model mos_p PMOS( TPG=-1 TOX=9.5n CJ=950u ETA=0.025 VMAX=0.3u
-+ GAMMA=0.52 CGSO=0.35n LD=70n MJSW=0.25 PB=1
-+ CGBO=0.45n XJ=0.2U CGDO=0.35n KAPPA=8.0 LEVEL=3
-+ VTO=-0.6 NFS=6.50E11 THETA=0.2 CJSW=0.2n PHI=0.7
-+ RSH=2.5 MJ=0.5 UO=130 KP=48u DELTA=0.25
-+ NSUB=1.0E17 ) \ No newline at end of file
diff --git a/OSCAD/modelEditor/PMOS-180nm.lib b/OSCAD/modelEditor/PMOS-180nm.lib
deleted file mode 100644
index 032b5b9..0000000
--- a/OSCAD/modelEditor/PMOS-180nm.lib
+++ /dev/null
@@ -1,11 +0,0 @@
-.model CMOSP PMOS (LEVEL=8 VERSION=3.2 TNOM=27 TOX=4.1E-9 XJ=1E-7 NCH=4.1589E17 VTH0=-0.3938813 K1=0.5479015
-+ K2=0.0360586 K3=0.0993095 K3B=5.7086622 W0=1E-6 NLX=1.313191E-7 DVT0W=0 DVT1W=0 DVT2W=0 DVT0=0.4911363
-+ DVT1=0.2227356 DVT2=0.1 U0=115.6852975 UA=1.505832E-9 UB=1E-21 UC=-1E-10 VSAT=1.329694E5 A0=1.7590478
-+ AGS=0.3641621 B0=3.427126E-7 B1=1.062928E-6 KETA=0.0134667 A1=0.6859506 A2=0.3506788 RDSW=168.5705677
-+ PRWG=0.5 PRWB=-0.4987371 WR=1 WINT=0 LINT=3.028832E-8 XL=0 XW=-1E-8 DWG=-2.349633E-8 DWB=-7.152486E-9
-+ VOFF=-0.0994037 NFACTOR=1.9424315 CIT=0 CDSC=2.4E-4 CDSCD=0 CDSCB=0 ETA0=0.0608072 ETAB=-0.0426148
-+ DSUB=0.7343015 PCLM=3.2579974 PDIBLC1=7.229527E-6 PDIBLC2=0.025389 PDIBLCB=-1E-3 DROUT=0 PSCBE1=1.454878E10
-+ PSCBE2=4.202027E-9 PVAG=15 DELTA=0.01 RSH=7.8 MOBMOD=1 PRT=0 UTE=-1.5 KT1=-0.11 KT1L=0 KT2=0.022 UA1=4.31E-9
-+ UB1=-7.61E-18 UC1=-5.6E-11 AT=3.3E4 WL=0 WLN=1 WW=0 WWN=1 WWL=0 LL=0 LLN=1 LW=0 LWN=1 LWL=0 CAPMOD=2 XPART=0.5
-+ CGDO=6.32E-10 CGSO=6.32E-10 CGBO=1E-12 CJ=1.172138E-3 PB=0.8421173 MJ=0.4109788 CJSW=2.242609E-10 PBSW=0.8 + MJSW=0.3752089 CJSWG=4.22E-10 PBSWG=0.8 MJSWG=0.3752089 CF=0 PVTH0=1.888482E-3 PRDSW=11.5315407 PK2=1.559399E-3
-+ WKETA=0.0319301 LKETA=2.955547E-3 PU0=-1.1105313 PUA=-4.62102E-11 PUB=1E-21 PVSAT=50 PETA0=1E-4 PKETA=-4.346368E-3)
diff --git a/OSCAD/modelEditor/PMOS-5um.lib b/OSCAD/modelEditor/PMOS-5um.lib
deleted file mode 100755
index 9c3ed97..0000000
--- a/OSCAD/modelEditor/PMOS-5um.lib
+++ /dev/null
@@ -1,5 +0,0 @@
-*5um technology
-
-.model mos_p PMOS( Cgso=0.4n Tox=85n Vto=-1 phi=0.65
-+ Level=1
-+ Mj=.5 UO=250 Cgdo=0.4n Gamma=0.65 LAMBDA=0.03 LD=0.6u JS=1u CJ=0.18m CJSW=0.6n MJSW=0.5 PB=0.7 CGBO=0.2n )
diff --git a/OSCAD/modelEditor/PMOS.lib b/OSCAD/modelEditor/PMOS.lib
deleted file mode 100755
index 032b5b9..0000000
--- a/OSCAD/modelEditor/PMOS.lib
+++ /dev/null
@@ -1,11 +0,0 @@
-.model CMOSP PMOS (LEVEL=8 VERSION=3.2 TNOM=27 TOX=4.1E-9 XJ=1E-7 NCH=4.1589E17 VTH0=-0.3938813 K1=0.5479015
-+ K2=0.0360586 K3=0.0993095 K3B=5.7086622 W0=1E-6 NLX=1.313191E-7 DVT0W=0 DVT1W=0 DVT2W=0 DVT0=0.4911363
-+ DVT1=0.2227356 DVT2=0.1 U0=115.6852975 UA=1.505832E-9 UB=1E-21 UC=-1E-10 VSAT=1.329694E5 A0=1.7590478
-+ AGS=0.3641621 B0=3.427126E-7 B1=1.062928E-6 KETA=0.0134667 A1=0.6859506 A2=0.3506788 RDSW=168.5705677
-+ PRWG=0.5 PRWB=-0.4987371 WR=1 WINT=0 LINT=3.028832E-8 XL=0 XW=-1E-8 DWG=-2.349633E-8 DWB=-7.152486E-9
-+ VOFF=-0.0994037 NFACTOR=1.9424315 CIT=0 CDSC=2.4E-4 CDSCD=0 CDSCB=0 ETA0=0.0608072 ETAB=-0.0426148
-+ DSUB=0.7343015 PCLM=3.2579974 PDIBLC1=7.229527E-6 PDIBLC2=0.025389 PDIBLCB=-1E-3 DROUT=0 PSCBE1=1.454878E10
-+ PSCBE2=4.202027E-9 PVAG=15 DELTA=0.01 RSH=7.8 MOBMOD=1 PRT=0 UTE=-1.5 KT1=-0.11 KT1L=0 KT2=0.022 UA1=4.31E-9
-+ UB1=-7.61E-18 UC1=-5.6E-11 AT=3.3E4 WL=0 WLN=1 WW=0 WWN=1 WWL=0 LL=0 LLN=1 LW=0 LWN=1 LWL=0 CAPMOD=2 XPART=0.5
-+ CGDO=6.32E-10 CGSO=6.32E-10 CGBO=1E-12 CJ=1.172138E-3 PB=0.8421173 MJ=0.4109788 CJSW=2.242609E-10 PBSW=0.8 + MJSW=0.3752089 CJSWG=4.22E-10 PBSWG=0.8 MJSWG=0.3752089 CF=0 PVTH0=1.888482E-3 PRDSW=11.5315407 PK2=1.559399E-3
-+ WKETA=0.0319301 LKETA=2.955547E-3 PU0=-1.1105313 PUA=-4.62102E-11 PUB=1E-21 PVSAT=50 PETA0=1E-4 PKETA=-4.346368E-3)
diff --git a/OSCAD/modelEditor/PMOS11.lib b/OSCAD/modelEditor/PMOS11.lib
deleted file mode 100755
index 6c9bb83..0000000
--- a/OSCAD/modelEditor/PMOS11.lib
+++ /dev/null
@@ -1,4 +0,0 @@
-.model IRF9140 PMOS(Level=3 Gamma=0 Delta=0 Eta=0 Theta=0 Kappa=0 Vmax=0 Xj=0
-+ Tox=100n Uo=300 Phi=.6 Rs=70.6m Kp=10.15u W=1.9 L=2u Vto=-3.67
-+ Rd=60.66m Rds=444.4K Cbd=2.141n Pb=.8 Mj=.5 Fc=.5 Cgso=877.2p
-+ Cgdo=369.3p Rg=.811 Is=52.23E-18 N=2 Tt=140n)
diff --git a/OSCAD/modelEditor/PNP.lib b/OSCAD/modelEditor/PNP.lib
deleted file mode 100755
index 7edda0e..0000000
--- a/OSCAD/modelEditor/PNP.lib
+++ /dev/null
@@ -1,4 +0,0 @@
-.model Q2N2907A PNP(Is=650.6E-18 Xti=3 Eg=1.11 Vaf=115.7 Bf=231.7 Ne=1.829
-+ Ise=54.81f Ikf=1.079 Xtb=1.5 Br=3.563 Nc=2 Isc=0 Ikr=0 Rc=.715
-+ Cjc=14.76p Mjc=.5383 Vjc=.75 Fc=.5 Cje=19.82p Mje=.3357 Vje=.75
-+ Tr=111.3n Tf=603.7p Itf=.65 Vtf=5 Xtf=1.7 Rb=10)
diff --git a/OSCAD/modelEditor/exportModel.py b/OSCAD/modelEditor/exportModel.py
deleted file mode 100755
index 1249197..0000000
--- a/OSCAD/modelEditor/exportModel.py
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/python
-# exportModel.py is a python script to export a component model to the library. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com).
-# Copyright (C) 2012 Yogesh Dilip Save, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from setPath import OSCAD_HOME
-from Tkinter import *
-from Tkinter import *
-import template
-import tkMessageBox
-import os.path
-import os
-import Pmw
-from string import maketrans
-
-class ExportModel():
- """Class for exporting the model to the model library"""
- def __init__(self,parent):
- self.parent=parent
- self.modelName=""
- # Collect model information available in the project directory
- fileList=os.listdir(".")
- modelList=[]
-
- for fileName in fileList:
- if "lib" in fileName:
- modelList.append(fileName)
-
- # Create the dialog.
- self.dialog = Pmw.SelectionDialog(parent,
- title = 'Model Selector',
- buttons = ('OK', 'Cancel'),
- defaultbutton = 'OK',
- scrolledlist_labelpos = 'n',
- label_text = 'Please select the model',
- scrolledlist_items=modelList,
- command = self.apply,
- )
- self.dialog.pack(fill = 'both', expand=1, padx=5, pady=5)
- self.dialog.activate()
-
- # ProtGocol when window is deleted.
- self.dialog.protocol("WM_DELETE_WINDOW",self.cancel)
-
- def apply(self,result):
- sels = self.dialog.getcurselection()
- if result=="OK":
- if len(sels) == 0:
- print 'You clicked on', result, '(no selection)'
- return
- else:
- self.modelName=sels[0]
- self.status=1
- else:
- self.status=0
- self.dialog.withdraw()
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.dialog.deactivate()
-
-# Action taken when cancel pressed
- def cancel(self, event=None, status=0):
- # Catch the status
- self.status=status
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.destroy()
-
-if __name__=='__main__':
- root=Tk()
- model= ExportModel(root,"xxx")
- mainloop()
-
diff --git a/OSCAD/modelEditor/helpEditor.py b/OSCAD/modelEditor/helpEditor.py
deleted file mode 100755
index b855cca..0000000
--- a/OSCAD/modelEditor/helpEditor.py
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/usr/bin/python
-# helpEditor.py is a python script to display help for the model editor. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com) and Shalini Shrivastava.
-# Copyright (C) 2012 Yogesh Dilip Save and Shalini Shrivastava, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from Tkinter import *
-import template
-import tkMessageBox
-import os.path
-from string import maketrans
-from newModel import readSpecs
-
-class HelpInfo(template.MyTemplate):
- """ Class for displaying help information """
- def body(self, master):
- # Help heading
- master.configure(width=768, height=576)
- Label(master, text="Ngspice Model Editor Help", font=("Helvetica", 16), padx=20, pady=20).grid(row=0)
-
-# Add standard button box (OK)
- def buttonbox(self):
- # Construct a new frame
- box = Frame(self)
- # Create buttons
- w = Button(box, text="OK", width=10, command=self.ok, default=ACTIVE)
- w.pack(padx=5, pady=5)
-
- # Bind Return and escape keys
- self.bind("<Return>", self.ok)
- self.bind("<Escape>", self.ok)
- # Create the frame "box"
- box.pack()
-
- def statusBar(self):
- pass
-
-if __name__=='__main__':
- root=Tk()
- model= HelpInfo(root)
- mainloop()
-
diff --git a/OSCAD/modelEditor/importModel.py b/OSCAD/modelEditor/importModel.py
deleted file mode 100755
index 43f9c2e..0000000
--- a/OSCAD/modelEditor/importModel.py
+++ /dev/null
@@ -1,86 +0,0 @@
-#!/usr/bin/python
-# importModel.py is a python script to import a component model from library. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com).
-# Copyright (C) 2012 Yogesh Dilip Save, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from setPath import OSCAD_HOME
-from Tkinter import *
-from Tkinter import *
-import template
-import tkMessageBox
-import os.path
-import os
-import Pmw
-from string import maketrans
-
-class ImportModel():
- """Class for importing a model from the library"""
- def __init__(self,parent):
- self.parent=parent
- self.modelName=""
- # Collect model information available in the model library
- try:
- self.OSCAD_HOME=OSCAD_HOME
- except NameError:
- try:
- self.OSCAD_HOME=os.environ["OSCAD_HOME"]
- except KeyError:
- tkMessageBox.showerror("Error OSCAD_HOME is not set","Please set OSCAD_HOME variable in .bashrc\n\nStep to set OSCAD_HOME variable:\n 1) Open ~/.bashrc using text editor (vi ~/.bash).\n 2) Add the line \"Export OSCAD_HOME=<path_of_oscad>\" to it.\n 3) source ~/.bashrc")
- exit(0)
-
- fileList=os.listdir(self.OSCAD_HOME+"/modelLibrary")
- modelList=[]
-
- for fileName in fileList:
- if "lib" in fileName:
- modelList.append(fileName)
-
- # Create the dialog.
- self.dialog = Pmw.SelectionDialog(parent,
- title = 'Model Selector',
- buttons = ('OK', 'Cancel'),
- defaultbutton = 'OK',
- scrolledlist_labelpos = 'n',
- label_text = 'Please select the model',
- scrolledlist_items=modelList,
- command = self.apply,
- )
- self.dialog.pack(fill = 'both', expand=1, padx=5, pady=5)
- self.dialog.activate()
-
- # Protocol when window is deleted.
- self.dialog.protocol("WM_DELETE_WINDOW",self.cancel)
-
- def apply(self,result):
- sels = self.dialog.getcurselection()
- if result=="OK":
- if len(sels) == 0:
- print 'You clicked on', result, '(no selection)'
- return
- else:
- self.modelName=sels[0]
- self.status=1
- else:
- self.status=0
- self.dialog.withdraw()
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.dialog.deactivate()
-
-# Action taken when cancel pressed
- def cancel(self, event=None, status=0):
- # Catch the status
- self.status=status
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.destroy()
-
-if __name__=='__main__':
- root=Tk()
- model= ImportModel(root,"xxx")
- mainloop()
-
diff --git a/OSCAD/modelEditor/modelEditor.py b/OSCAD/modelEditor/modelEditor.py
deleted file mode 100755
index ce2d88b..0000000
--- a/OSCAD/modelEditor/modelEditor.py
+++ /dev/null
@@ -1,166 +0,0 @@
-#!/usr/bin/python
-# modelEditor.py is a python script to display fornt end of the model editor. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com) and Shalini Shrivastava.
-# Copyright (C) 2012 Yogesh Dilip Save and Shalini Shrivastava, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from setPath import OSCAD_HOME
-from Tkinter import *
-import tkMessageBox
-import newModel
-import openModel
-import selectModel
-import importModel
-import exportModel
-import os
-import sys
-
-# Create a new model
-def newEditor(e=None):
-# Read model information (name and type)
- model= newModel.ModelInfo(root)
-# Create model file
- if model.status:
- modelParam = newModel.ModelParam(root,model.modelName,model.modelType)
-
-# Open an existing model
-def openEditor(e=None):
- model= openModel.ExistingModelInfo(root)
-# Open model file
- if model.status:
- modelParam = openModel.ExistingModelParam(root,model.modelName)
-
-# Import an existing model from library
-def importEditor(e=None):
- model=importModel.ImportModel(root)
- temp_model_name=model.modelName
- if temp_model_name.startswith('NMOS',0,4):
- if os.system("cp "+OSCAD_HOME+"/modelLibrary/"+model.modelName+" mos_n.lib"):
- tkMessageBox.showerror("Import Failed","Unable to import model file "+model.modelName)
- else:
- tkMessageBox.showinfo("Successfully imported","Model file "+model.modelName+" is successfully imported to the project.")
- elif temp_model_name.startswith('PMOS',0,4):
- if os.system("cp "+OSCAD_HOME+"/modelLibrary/"+model.modelName+" mos_p.lib"):
- tkMessageBox.showerror("Import Failed","Unable to import model file "+model.modelName)
- else:
- tkMessageBox.showinfo("Successfully imported","Model file "+model.modelName+" is successfully imported to the project.")
- elif temp_model_name.startswith('D',0,1):
- if os.system("cp "+OSCAD_HOME+"/modelLibrary/"+model.modelName+" 1n4007.lib"):
- tkMessageBox.showerror("Import Failed","Unable to import model file "+model.modelName)
- else:
- tkMessageBox.showinfo("Successfully imported","Model file "+model.modelName+" is successfully imported to the project.")
- else:
- if os.system("cp "+OSCAD_HOME+"/modelLibrary/"+model.modelName+" ."):
- tkMessageBox.showerror("Import Failed","Unable to import model file "+model.modelName)
- else:
- tkMessageBox.showinfo("Successfully imported","Model file "+model.modelName+" is successfully imported to the project.")
-
-
-# Export an existing model to library
-def exportEditor(e=None):
- model=exportModel.ExportModel(root)
- if os.system("cp "+model.modelName+" "+OSCAD_HOME+"/modelLibrary/"):
- tkMessageBox.showerror("Export Failed","Unable to export model file "+model.modelName)
- else:
- tkMessageBox.showinfo("Successfully exported","Model file "+model.modelName+" is successfully exported to the model library")
-
-# Exit an model editor
-def exitEditor(e=None):
- if tkMessageBox.askokcancel("QUIT","Do you really wish to quit?"):
- root.destroy()
-
-# Display help content
-def helpEditor(e=None):
- pass
-
-# Display help content
-def aboutEditor():
- tkMessageBox.showinfo("About Editor","Created by Yogesh Dilip Save and Shalini Shrivastava")
-
-##Function to open select model from the list to modify it
-def openSelectModel(e=None):
- filename=sys.argv[1]
- #Getting lenght of Model List and clicked result
- lenght_modlist,result=callModel(root,filename)
- response=result
- if result=="OK":
- for item in range(lenght_modlist-1):
- if response=="OK":
- temp_lenght,temp_result=callModel(root,filename)
- response=temp_result
- else:
- break
-
- else:
- pass
-
-def callModel(root,filename):
- model=selectModel.ModelNameList(root, filename)
- if model.status:
- # Open the circuit file
- modelFile=model.modelName+".lib"
- # Check model file already exists
- if os.path.exists(modelFile):
- if tkMessageBox.askokcancel("Model already exists","Do you want to edit?"):
- modelParam = openModel.ExistingModelParam(root,model.modelName)
- else:
- modelParam = newModel.ModelParam(root,model.modelName,model.modelType)
- return len(model.modelList),model.click_result
-
-
-root = Tk()
-root.title("Ngspice Model Editor")
-root.geometry("600x400+300+125")
-
-# Create and configure a menu
-menu = Menu(root)
-root.config(menu=menu)
-
-# Create File menu
-filemenu= Menu(menu)
-menu.add_cascade(label="File", menu=filemenu)
-filemenu.add_command(label="New F2", command=newEditor)
-#filemenu.add_command(label="Open F3", command=openEditor)
-filemenu.add_command(label="Edit F7",command=openSelectModel)
-filemenu.add_separator()
-filemenu.add_command(label="Import F4", command=importEditor)
-filemenu.add_command(label="Export F5", command=exportEditor)
-filemenu.add_separator()
-filemenu.add_command(label="Exit F6", command=exitEditor)
-
-# Create help menu
-helpmenu=Menu(menu)
-menu.add_cascade(label="Help", menu=helpmenu)
-helpmenu.add_command(label="Help F1",command=helpEditor)
-helpmenu.add_command(label="About...",command=aboutEditor)
-
-# Select device from devices in circuit file
-
-"""model=selectModel.ModelNameList(root, filename)
-print "Model",model.modelList
-
-
-if model.status:
- # Open the circuit file
- modelFile=model.modelName+".lib"
- # Check model file already exists
- if os.path.exists(modelFile):
- if tkMessageBox.askokcancel("Model already exists","Do you want to edit?"):
- modelParam = openModel.ExistingModelParam(root,model.modelName)
- else:
- modelParam = newModel.ModelParam(root,model.modelName,model.modelType)
-"""
-# Protocol for deletion of main window
-root.protocol("WM_DELETE_WINDOW",exitEditor)
-
-# Create shortcut keys
-root.bind("<F2>", newEditor)
-#root.bind("<F3>", openEditor)
-root.bind("<F4>", importEditor)
-root.bind("<F5>", exportEditor)
-root.bind("<F6>", exitEditor)
-root.bind("<F1>", helpEditor)
-root.bind("<F7>", openSelectModel)
-
-mainloop()
diff --git a/OSCAD/modelEditor/newModel.py b/OSCAD/modelEditor/newModel.py
deleted file mode 100755
index 93d7578..0000000
--- a/OSCAD/modelEditor/newModel.py
+++ /dev/null
@@ -1,187 +0,0 @@
-#!/usr/bin/python
-# newModel.py is a python script to create a new model. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com) and Shalini Shrivastava.
-# Copyright (C) 2012 Yogesh Dilip Save and Shalini Shrivastava, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from setPath import OSCAD_HOME
-from Tkinter import *
-import template
-import tkMessageBox
-import os.path
-from string import maketrans
-
-class ModelInfo(template.MyTemplate):
- """ Class for accept model information from user """
- def body(self, master):
- # Define component type and set it to Diode
- self.component = StringVar()
- self.component.set("D")
-
- # Ask for compoent name
- Label(master, text="Enter Component name:").grid(row=0)
- self.e1 = Entry(master)
- self.e1.grid(row=0, column=1,pady=10,columnspan=2)
-
- # Ask for component type
- Label(master, text="Enter type of Component:").grid(row=1)
- Label(master,text="Diode").grid(row=2,column=1,columnspan=2,sticky=W)
- Radiobutton(master, text="Diode", variable=self.component, value="D").grid(row=3,column=1,columnspan=2,sticky=W)
- Label(master, text="Bipolar Junction Transistor (BJT)").grid(row=4,column=1,columnspan=2,sticky=W)
- Radiobutton(master, text="NPN", variable=self.component, value="NPN").grid(row=5,column=1,sticky=W)
- Radiobutton(master, text="PNP", variable=self.component, value="PNP").grid(row=5,column=2,sticky=W)
- Label(master, text="Metal Oxide Semiconductor (MOS)").grid(row=6,column=1,columnspan=2,sticky=W)
- Radiobutton(master, text="NMOS(Level-1 5um)", variable=self.component, value="NMOS-5um").grid(row=7,column=1,sticky=W)
- Radiobutton(master, text="PMOS(Level-1 5um)", variable=self.component, value="PMOS-5um").grid(row=7,column=2,sticky=W)
- Radiobutton(master, text="NMOS(Level-3 0.5um)", variable=self.component, value="NMOS-0.5um").grid(row=8,column=1,sticky=W)
- Radiobutton(master, text="PMOS(Level-3 0.5um)", variable=self.component, value="PMOS-0.5um").grid(row=8,column=2,sticky=W)
- Radiobutton(master, text="NMOS(Level-8 180nm)", variable=self.component, value="NMOS-180nm").grid(row=9,column=1,sticky=W)
- Radiobutton(master, text="PMOS(Level-8 180nm)", variable=self.component, value="PMOS-180nm").grid(row=9,column=2,sticky=W)
- Label(master, text="Junction Field Effect Transistor (JFET)").grid(row=10,column=1,columnspan=2,sticky=W)
- Radiobutton(master, text="N-JFET", variable=self.component, value="NJF").grid(row=11,column=1,sticky=W)
- Radiobutton(master, text="P-JFET", variable=self.component, value="PJF").grid(row=11,column=2,sticky=W)
- Label(master, text="IGBT").grid(row=12,column=1,columnspan=2,sticky=W)
- Radiobutton(master, text="N-IGBT", variable=self.component, value="NIGBT").grid(row=13,column=1,sticky=W)
- Radiobutton(master, text="P-IGBT", variable=self.component, value="PIGBT").grid(row=13,column=2,sticky=W)
- Label(master, text="Magnetic Core").grid(row=14,column=1,columnspan=2,sticky=W)
- Radiobutton(master, text="Magnetic Core", variable=self.component, value="CORE").grid(row=15,column=1,columnspan=2,sticky=W)
-
-# Collect model information
- def apply(self):
- self.modelType=self.component.get()
-
-# Validate the model information
- def validate(self):
- # Remove trailing and leading spaces from modelName
- self.modelName=self.e1.get().strip()
- if len(self.modelName):
- return 1
- else:
- tkMessageBox.showwarning("Bad input","Component Name is not specified, please try again")
- return 0
-
-class ModelParam(template.MyTemplate):
- """Class for specifying parameter of the model"""
- def __init__(self,parent,name,type):
- # Collect model information
- self.modelName=name
- self.modelType=type
-
- # Call base class MyTemplate
- template.MyTemplate.__init__(self,parent)
-
- def body(self, master):
- try:
- self.OSCAD_HOME=OSCAD_HOME
- except NameError:
- try:
- self.OSCAD_HOME=os.environ["OSCAD_HOME"]
- except KeyError:
- tkMessageBox.showerror("Error OSCAD_HOME is not set","Please set OSCAD_HOME variable in .bashrc\n\nStep to set OSCAD_HOME variable:\n 1) Open ~/.bashrc using text editor (vi ~/.bash).\n 2) Add the line \"Export OSCAD_HOME=<path_of_oscad>\" to it.\n 3) source ~/.bashrc")
- exit(0)
-
- HOME=self.OSCAD_HOME+"/modelEditor/"
- # Open template of the library file corresponding model
- fileName=HOME+self.modelType+".lib"
- # Find model information and parameters
- self.info, self.params=readSpecs(fileName)
-
- # Construct parameter editor window
- i,j=0,0
- for each in self.params.keys():
- # Display parameter name
- Label(master, text=each, padx=5, pady=5).grid(row=j, column=2*i, sticky=W)
-
- # Create entry for parameter value
- vars(self)[each] = Entry(master)
- vars(self)[each].insert(0,self.params[each])
- vars(self)[each].grid(row=j, column=2*i+1)
-
- # Display help information in the status bar
- vars(self)[each].bind('<Enter>', self.enterSpec)
- vars(self)[each].bind('<Leave>', self.leaveSpec)
-
- # Column and row adjustment for proper display
- i+=1
- if i%5==0:
- i,j=0,j+1
-
- def enterSpec(self,event):
- self.statusbar.configure(text="Find help in the " +self.modelType+".hlp file")
-
- def leaveSpec(self,event):
- self.statusbar.configure(text='')
-
- def apply(self):
- # Copy model infomation
- self.info[1]=self.modelName
- self.info[2]=self.modelType
- # Write model parameters to file
- if self.writeModelFile():
- tkMessageBox.showinfo("Info","Model file " +self.modelName+" is created")
-
- def writeModelFile(self):
- """ a method for writing model file"""
- # Create model file for writing
- try:
- f = open(self.info[1]+".lib","w")
- except :
- tkMessageBox.showwarning("Error","Model file can not be wriiten. please check the file system permission")
- return 0
- f.write(".model " + self.info[1] + " " + self.info[2] + "( ")
- i=0
- for param in self.params.keys():
- paramName = getattr(self,param)
- paramValueGet = getattr(paramName,'get')
- f.write(param + "=" + paramValueGet()+" ")
- i+=1
- # Column and row adjustment for proper display
- if i%5==0:
- i=0
- f.write("\n+ ")
- f.write(")")
- f.close()
- return 1
-
-def readSpecs(fileName):
- """Read parameters and model information"""
-# Variable to store parameter and model information
- params={}
- info=[]
-
-# Open parameter file
- if os.path.exists(fileName):
- try:
- f = open(fileName)
- except :
- tkMessageBox.showwarning("Bad input","Model file does not exit, please try again")
- return info, params
- else:
- tkMessageBox.showwarning("Bad input","Model file does not exit, please try again")
- return info, params
- data=f.read()
- f.close()
-
-# Seperate model and parameter information
- data=data.split('(')
- infoData=data[0]
- paramsData=data[1]
-
-# Collect model information in the list
- info=infoData.split()
-
-# Collect model parameter in the dictionary
- paramsData=paramsData.translate(maketrans('\n+)',' '))
- paramsData=paramsData.split()
- for each in paramsData:
- paramdata=each.split('=')
- params[paramdata[0]]=paramdata[1]
- return info, params
-
-if __name__=='__main__':
- root=Tk()
- model= ModelInfo(root)
- modelParam = ModelParam(root,model.modelName,model.modelType)
- mainloop()
-
diff --git a/OSCAD/modelEditor/openModel.py b/OSCAD/modelEditor/openModel.py
deleted file mode 100755
index 6ba5947..0000000
--- a/OSCAD/modelEditor/openModel.py
+++ /dev/null
@@ -1,116 +0,0 @@
-#!/usr/bin/python
-# openModel.py is a python script to open an existing model. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com) and Shalini Shrivastava.
-# Copyright (C) 2012 Yogesh Dilip Save and Shalini Shrivastava, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from Tkinter import *
-import template
-import tkMessageBox
-import os.path
-from string import maketrans
-from newModel import readSpecs
-
-class ExistingModelInfo(template.MyTemplate):
- """ Class for accept model information from user """
- def body(self, master):
- # Ask for compoent name
- Label(master, text="Enter Component name:").grid(row=0)
- self.e1 = Entry(master)
- self.e1.grid(row=0, column=1,pady=10,columnspan=2)
-
-# Collect model information
- def apply(self):
- pass
-
-# Validate the model information
- def validate(self):
- # Remove trailing and leading spaces from modelName
- self.modelName=self.e1.get().strip()
- if len(self.modelName):
- return 1
- else:
- tkMessageBox.showwarning("Bad input","Component Name is not specified, please try again")
- return 0
-
-class ExistingModelParam(template.MyTemplate):
- """Class for specifying parameter of the model"""
- def __init__(self,parent,name):
- # Collect model information
- self.modelName=name
-
- # Call base class MyTemplate
- template.MyTemplate.__init__(self,parent)
-
-
- def body(self, master):
- # Open template of the library file corresponding model
- fileName=self.modelName+".lib"
- # Find model information and parameters
- self.info, self.params=readSpecs(fileName)
-
- # Return if model information is not available
- if len(self.info) == 0:
- self.cancel()
-
- # Construct parameter editor window
- i,j=0,0
- for each in self.params.keys():
- # Display parameter name
- Label(master, text=each, padx=5, pady=5).grid(row=j, column=2*i, sticky=W)
-
- # Create entry for parameter value
- vars(self)[each] = Entry(master)
- vars(self)[each].insert(0,self.params[each])
- vars(self)[each].grid(row=j, column=2*i+1)
-
- # Display help information in the status bar
- vars(self)[each].bind('<Enter>', self.enterSpec)
- vars(self)[each].bind('<Leave>', self.leaveSpec)
-
- # Column and row adjustment for proper display
- i+=1
- if i%5==0:
- i,j=0,j+1
-
- def enterSpec(self,event):
- self.statusbar.configure(text="Find help in the " +self.info[2]+".hlp file")
-
- def leaveSpec(self,event):
- self.statusbar.configure(text='')
-
- def apply(self):
- # Write model parameters to file
- if self.writeModelFile():
- tkMessageBox.showinfo("Info","Model file " +self.modelName+" is modified")
-
- def writeModelFile(self):
- """ a method for writing model file"""
- # Create model file for writing
- try:
- f = open(self.info[1]+".lib","w")
- except :
- tkMessageBox.showwarning("Error","Model file can not be wriiten. please check the file system permission")
- return 0
- f.write(".model " + self.info[1] + " " + self.info[2] + "( ")
- i=0
- for param in self.params.keys():
- paramName = getattr(self,param)
- paramValueGet = getattr(paramName,'get')
- f.write(param + "=" + paramValueGet()+" ")
- i+=1
- # Column and row adjustment for proper display
- if i%5==0:
- i=0
- f.write("\n+ ")
- f.write(")")
- f.close()
- return 1
-
-if __name__=='__main__':
- root=Tk()
- model= ExistingModelInfo(root)
- modelParam = ExistingModelParam(root,model.modelName)
- mainloop()
-
diff --git a/OSCAD/modelEditor/selectModel.py b/OSCAD/modelEditor/selectModel.py
deleted file mode 100755
index 1ca1e86..0000000
--- a/OSCAD/modelEditor/selectModel.py
+++ /dev/null
@@ -1,155 +0,0 @@
-#!/usr/bin/python
-# selectModel.py is a python script to select a component to create a model. It developed for OSCAD software. It is written by Yogesh Dilip Save (yogessave@gmail.com).
-# Copyright (C) 2012 Yogesh Dilip Save, FOSS Project, IIT Bombay.
-# This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-# This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-# You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-from setPath import OSCAD_HOME
-from Tkinter import *
-import template
-import tkMessageBox
-import os.path
-import os
-import Pmw
-from string import maketrans
-
-class ModelNameList():
- """Class for specifying parameter of the model"""
- def __init__(self,parent,filename):
- self.parent=parent
- self.modelName=""
- self.modelType=""
- self.modelList=[]
- self.click_result=""
-
- # Collect model information from the circuit file
- try:
- self.OSCAD_HOME=OSCAD_HOME
- except NameError:
- try:
- self.OSCAD_HOME=os.environ["OSCAD_HOME"]
- except KeyError:
- tkMessageBox.showerror("Error OSCAD_HOME is not set","Please set OSCAD_HOME variable in .bashrc\n\nStep to set OSCAD_HOME variable:\n 1) Open ~/.bashrc using text editor (vi ~/.bash).\n 2) Add the line \"Export OSCAD_HOME=<path_of_oscad>\" to it.\n 3) source ~/.bashrc")
- exit(0)
-
- HOME=self.OSCAD_HOME="/modelEditor/"
- # Open the circuit file
- self.fileName=filename
- # Open parameter file
- if os.path.exists(self.fileName):
- try:
- f = open(self.fileName)
- except :
- tkMessageBox.showwarning("Bad input","Circuit netlist does not exit, please try again")
- return
- else:
- tkMessageBox.showwarning("Bad input","Circuit netlist does not exit, please try again")
- return
-
- # Read the data from file
- data=f.read()
-
- # Close the file
- f.close()
- netlist=data.splitlines()
- # Find the various model library required
- self.modelInfo={}
-
- for eachline in netlist:
- eachline=eachline.strip()
- if len(eachline)>1:
- eachline=eachline.lower()
- words=eachline.split()
- if eachline[0]=='d':
- modelName=words[3]
- modelType=words[3]
- self.modelList.append(words[0]+":"+modelName)
- self.modelInfo[modelName]=modelType
- elif eachline[0]=='q':
- modelName=words[4]
- if words[4]=='npn':
- modelType="NPN"
- elif words[4]=='pnp':
- modelType="PNP"
- else:
- modelType=words[4]
-
- self.modelList.append(words[0]+":"+modelName)
- self.modelInfo[modelName]=modelType
-
- elif eachline[0]=='m':
- modelName=words[4]
- if words[4]=='nmos':
- modelType="NMOS"
- elif words[4]=='pmos':
- modelType="PMOS"
- else:
- modelType=words[4]
- self.modelList.append(words[0]+":"+modelName)
- self.modelInfo[modelName]=modelType
-
- elif eachline[0]=='j':
- modelName=words[4]
- if words[4]=='pjf':
- modelType='PJF'
- elif words[4]=='njf':
- modelType='NJF'
- else:
- modelType=words[4]
- self.modelList.append(words[0]+":"+modelName)
- self.modelInfo[modelName]=modelType
- else:
- continue
-
- # Create the dialog.
-
- self.dialog = Pmw.SelectionDialog(parent,
- title = 'Model Selector',
- buttons = ('OK', 'Cancel'),
- defaultbutton = 'OK',
- scrolledlist_labelpos = 'n',
- label_text = 'Please select the model',
- scrolledlist_items=self.modelList,
- command = self.apply,
- )
- self.dialog.pack(fill = 'both', expand=1, padx=5, pady=5)
- self.dialog.activate()
-
- # Protocol when window is deleted.
- self.dialog.protocol("WM_DELETE_WINDOW",self.cancel)
-
- def apply(self,result):
- sels = self.dialog.getcurselection()
- self.click_result=result
- if result=="OK":
- if len(sels) == 0:
- print 'You clicked on', result, '(no selection)'
- return
- else:
- self.modelName=sels[0].partition(':')[2]
- self.modelType=self.modelInfo[self.modelName]
- self.status=1
-
- else:
- self.status=0
- self.dialog.withdraw()
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.dialog.deactivate()
-
-# Action taken when cancel pressed
- def cancel(self, event=None, status=0):
- # Catch the status
- self.status=status
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.destroy()
-
-if __name__=='__main__':
- root=Tk()
- model= ModelNameList(root,"xxx")
- mainloop()
-
diff --git a/OSCAD/modelEditor/setPath.py b/OSCAD/modelEditor/setPath.py
deleted file mode 100755
index 839d518..0000000
--- a/OSCAD/modelEditor/setPath.py
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/python
-OSCAD_HOME="/home/ambi/OSCAD"
diff --git a/OSCAD/modelEditor/template.py b/OSCAD/modelEditor/template.py
deleted file mode 100755
index 5b2ee06..0000000
--- a/OSCAD/modelEditor/template.py
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/python
-from Tkinter import *
-import os
-
-
-class MyTemplate(Toplevel):
- """Template to construct new window"""
-# Define constructor
- def __init__(self, parent, title=None):
- # Set new window properties same as parent
- Toplevel.__init__(self, parent)
- # Create a new window on top of the parent such that don't appear in taskbar
- self.transient(parent)
-
- # Set the title
- if title:
- self.title(title)
- # Set Parent of active window
- self.parent =parent
-
- # Create a new frame
- body =Frame (self)
-
- # Call body method
- self.initial_focus = self.body(body)
- # Display body
- body.pack(padx=5, pady=5)
-
- # Create buttons
- self.buttonbox()
- # Create status bar
- self.statusBar()
- # Take control of all the events
- self.grab_set()
-
- # Take control of all the keyboard events
- if not self.initial_focus:
- self.initial_focus=self
-
- # Protocol when window is deleted.
- self.protocol("WM_DELETE_WINDOW",self.cancel)
-
- # Position the geometry respect to main window
- self.geometry("+%d+%d" % (parent.winfo_rootx()+50,parent.winfo_rooty()+50))
- self.initial_focus.focus_set()
-
-
- # Wait for widget to be destroyed
- self.wait_window(self)
-
-# Construction of body of the window
- def body(self, master):
- # Create dialog body. This method should be overridden
- pass
-
-# Add standard button box (OK, Cancel). Override if you don't want the standard buttons
- def buttonbox(self):
- # Construct a new frame
- box = Frame(self)
- # Create buttons
- w = Button(box, text="OK", width=10, command=self.ok, default=ACTIVE)
- w.pack(side=LEFT, padx=5, pady=5)
- w = Button(box, text="Cancel", width=10, command=self.cancel)
- w.pack(side=LEFT, padx=5, pady=5)
-
- # Bind Return and escape keys
- self.bind("<Return>", self.ok)
- self.bind("<Escape>", self.cancel)
- # Create the frame "box"
- box.pack()
-
-# Add standard status bar. Override if you don't want the status bar
- def statusBar(self):
- self.statusbar = Label(self, text="", bd=1, relief=SUNKEN, anchor=W)
- self.statusbar.pack(side=BOTTOM, fill=X)
-
-# Template for action taken when OK is pressed
- def ok(self, event=None):
- # If data is not valid then put the focus back
- if not self.validate():
- self.initial_focus.focus_set()
- return
- # Remove the window from the screen (without destroying it)
- self.withdraw()
- # Call all pending idle tasks, without processing any other events.
- self.update_idletasks()
- # Perform required task (collection of result, inputs etc.)
- self.apply()
- # Take action when all task has finished
- self.cancel(status=1)
-
-# Template for action taken when cancel pressed
- def cancel(self, event=None, status=0):
- # Catch the status
- self.status=status
- # Put focus back to the parent window
- self.parent.focus_set()
- # Destroy child window
- self.destroy()
-
-# Template for validation of data
- def validate(self):
- return 1
-
-# Template for required action (Saving Data, results)
- def apply(self):
- pass
-
-# Test case
-if __name__=='__main__':
- root=Tk()
- d =MyTemplate(root)
- mainloop()
-