check model binning * (exec-spice "ngspice -b %s") ix1 0 1 dc=5uA mx1 1 1 0 0 nmos0v7 l=5u w=5u ix2 0 2 dc=5uA mx2 2 2 0 0 nmos_tst l=5u w=5u ix3 0 3 dc=6uA mx3 3 3 0 0 nmos0v9 l=5u w=6u ix4 0 4 dc=6uA mx4 4 4 0 0 nmos_tst l=5u w=6u * binned .model nmos_tst.1 nmos ( version=4.8 level=54 Vth0=0.7 lmin=1u lmax=10u wmin=4.5u wmax=5.5u ) .model nmos_tst.2 nmos ( version=4.8 level=54 Vth0=0.9 lmin=1u lmax=10u wmin=5.5u wmax=6.5u ) * and non binned to compare with .model nmos0v7 nmos ( version=4.8 level=54 Vth0=0.7 ) .model nmos0v9 nmos ( version=4.8 level=54 Vth0=0.9 ) .control define mismatch(a,b,err) abs(a-b)>err op let fail_count = 0 let total_count = 2 if mismatch(v(2)/v(1), 1.0, 1e-4) let fail_count = fail_count + 1 end if mismatch(v(4)/v(3), 1.0, 1e-4) let fail_count = fail_count + 1 end if fail_count > 0 echo "ERROR: $&fail_count of $&total_count tests failed" quit 1 else echo "INFO: $&fail_count of $&total_count tests failed" quit 0 end .endc .end