.check # Compute margins of an MVTL gate # This is an example of an operating range analysis input file # checkFAIL = 0 compose checkPNTS values 95p 105p 195p 205p 295p 305p # above two lines are required in header, the rest are optional # # central value of first variable, number of evaluation steps above and # below, step delta: checkVAL1 = .38 checkSTP1 = 5 checkDEL1 = .02 # # same thing for second variable checkVAL2 = 3 checkSTP2 = 6 checkDEL2 = .5 # # end of header .control # # The following code is evaluated just after the time variable exceeds # each one of the checkPNTS # if time > checkPNTS[0] if time < checkPNTS[1] checkFAIL = 0 if abs(v(1)) > .5e-3 checkFAIL = 1 end echo tp1 end end if time > checkPNTS[1] if time < checkPNTS[2] checkFAIL = 0 echo tp2 end end if time > checkPNTS[2] if time < checkPNTS[3] checkFAIL = 0 if abs(v(1)) < 2.2e-3 checkFAIL = 1 end echo tp3 end echo a end echo b if time > checkPNTS[3] echo c if time < checkPNTS[4] echo d checkFAIL = 0 echo tp4 end end if time > checkPNTS[4] if time < checkPNTS[5] checkFAIL = 0 if abs(v(1)) > .5e-3 checkFAIL = 1 end echo tp5 end end .endc margin analysis on MVTL or gate .tran .5p .35n uic Igate 0 8 pulse(0 $value1%m 50p 25p 25p 25p 100p) Vinput 7 0 pulse(0 $value2%m 115p 25p 25p 25p) B1 3 13 20 jj1 area=1 B2 4 13 20 jj1 area=3 B3 3 6 20 jj1 area=1 L1 11 1 4.0PH L2 1 12 1.3PH LX1 2 5 9PH LX2 5 14 3PH LPG 13 0 1PH LPI 14 6 5PH LP1 3 11 0.5PH LP2 4 12 0.2PH K1 L1 LX1 0.5 K2 L2 LX2 0.5 RI 6 0 1 RD 3 4 2 RIN1 7 2 15 RP 8 1 60 rout1 1 0 15 .model jj1 jj(Icrit=0.12m,cap=.324p,delv=0.01m,vg=2.8m) .END