53 lines
1.0 KiB
Plaintext
53 lines
1.0 KiB
Plaintext
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
|