100 REM COMPS.BAS Copyright 1989 by Russell Kincaid 110 REM Kincaid Engineering, Savage Road, Milford, NH 03055 120 REM REVISED 1 NOV 1988 130 CLS 140 PRINT"***************************************************************" 150 PRINT" THIS PROGRAM GENERATES A SIMPLE SPICE MODEL FOR A COMPARATOR" 160 PRINT" BASED ON DATA SHEET INPUT." 170 PRINT:PRINT" Written by: Russ Kincaid" 180 PRINT:PRINT"This is a shareware program, see README.DOC" 190 PRINT"***************************************************************" 200 PRINT:PRINT 210 REM WRITTEN BY RUSS KINCAID 5/8/1986 220 REM VERSION 1.0 REVISED 9/16/87 230 INPUT "WHAT WILL YOU CALL THIS MODEL ";N$ 240 OPEN N$+".MDL" FOR OUTPUT AS #1 250 INPUT"IS THE OUTPUT TRANSISTOR EMITTER BROUGHT OUT ";EO$ 260 INPUT"SINGLE SUPPLY ";A$ : IF A$="Y" THEN 350 270 PRINT#1,"** SIMPLE COMPARATOR MODEL **" 280 IF EO$="Y" THEN 330 290 PRINT 300 PRINT"THIS CIRCUIT HAS THE OUTPUT TRANSISTOR EMITTER GROUNDED." : PRINT 310 PRINT#1,".SUBCKT ";N$;" 1 2 4 6 7" 320 PRINT#1,"* -IN,+IN,+V,-V,OUTPUT":GOTO 360 330 PRINT#1,".SUBCKT ";N$;" 1 2 4 6 7 8" 340 PRINT#1,"* -IN,+IN,+V,-V,OUT,EMITTER":GOTO 360 350 PRINT#1,".SUBCKT ";N$;" 1 2 4 8 7" :PRINT#1,"* -IN,+IN,+V,GND,OUT" 360 INPUT"INPUT IMPEDANCE = ";RIN$ 370 INPUT"INPUT BIAS CURRENT =";IIN 380 INPUT"INPUT OFFSET CURRENT = ";IOF:I1$=STR$(IIN+IOF/2):I2$=STR$(IIN-IOF/2) 390 INPUT"INPUT OFFSET VOLTAGE = ";VOFF 400 PRINT#1,"RIN 9 2 ";RIN$ 410 PRINT#1,"VOFF 1 9 ";VOFF 420 PRINT#1,"I1 1 0 "+I1$ 430 PRINT#1,"I2 2 0 "+I2$ 440 PRINT#1,"RA 3 0 1" 450 PRINT#1,"D1 0 3 D1" 460 INPUT"POS. SUPPLY CURRENT = ";IP 470 INPUT"POS. SUPPLY VOLTAGE = ";VP 480 RP = INT(VP/IP) 490 IF A$="Y" THEN IN=0:GOTO 540 500 INPUT"NEG. SUPPLY CURRENT = ";IN 510 INPUT"NEG. SUPPLY VOLTAGE = ";VN 520 RN=INT(VN/IN) 530 PRINT#1,"RN 6 0 ";STR$(RN) 540 PRINT#1,"RP 4 0 ";STR$(RP) 550 INPUT"LOAD RESISTANCE FOR MAX GAIN = ";RL 560 INPUT"MAX GAIN = ";AV 570 INPUT"MAX SLEW RATE (V/US) = ";VO 580 INPUT"OUTPUT I SINK LIMIT = ";IL 590 INPUT"DO YOU WANT TO MODEL TURN-ON TIME DELAY ";B$:IF B$="N" THEN 620 600 INPUT"SHORTEST TURN-ON TIME DELAY (SEC) = ";TD 610 REM T=-RCLOG((Emax-Et)/Emax) 620 IS2=IL/5.3E+08 630 GA = AV*.5/IL/RL : GA$=STR$(GA) 640 RB=RL*1000 650 IF B$="N" OR B$="n" THEN 690 660 EM=.6*IL/50*RB 670 DE=1.2 680 C2=-TD/(RB*LOG((EM-DE)/EM)) : C2$=STR$(C2*1E+12)+"PF" 690 INPUT"OUTPUT VSAT = ";VS 700 INPUT"CURRENT SINK FOR VSAT =";CS 710 CJC=IL/100/VO : CJC$=STR$(CJC*1000000!)+"PF" 720 PRINT#1,"GA 3 0 9 2 ";GA$ 730 IF EO$="Y" THEN 810 740 IF IN=0 THEN 810 750 PRINT#1,"RB 5 0 ";STR$(RB) 760 IF B$="N" THEN 780 770 PRINT#1,"C2 5 0 ";C2$ 780 PRINT#1,"Q1 7 5 0 Q1" 790 PRINT#1,"D2 0 5 DG" 800 PRINT#1,"GI 5 0 3 0 ";STR$(IL/50) : GOTO 910 810 PRINT#1,"RB 5 8 ";STR$(RB) 820 IF EO$="N" THEN 850 830 PRINT#1,"D2 5 4 DG" 840 PRINT#1,"D3 0 5 DG" 850 IF B$="N" THEN 870 860 PRINT#1,"C2 5 8 ";C2$ 870 PRINT#1,"Q1 7 5 8 Q1" 880 IF EO$="Y" THEN 900 890 PRINT#1,"D2 0 5 DG" 900 PRINT#1,"GI 5 8 3 0 ";STR$(IL/50) 910 PRINT#1,".MODEL DG D" 920 PRINT#1,".MODEL D1 D IS=2E-9 BV=.5 IBV=2E-7" 930 PRINT#1,".MODEL Q1 NPN IS=";STR$(IS2);" BF=100 CJC=";CJC$;" RC=";STR$(VS/CS) 940 PRINT#1,".ENDS ";N$ 950 CLOSE#1 960 PRINT:PRINT"USE THE TYPE COMMAND TO SEE THE FILE ";N$;".MDL":PRINT 970 END