82 lines
1.2 KiB
Plaintext
82 lines
1.2 KiB
Plaintext
scope-2, subckt scopes
|
|
* (exec-spice "ngspice -b %s" t)
|
|
|
|
* ----
|
|
|
|
i1001_t n1001_t 0 -1mA
|
|
x1001_t n1001_t 0 sub1
|
|
|
|
v1001_g n1001_g 0 2.0V
|
|
|
|
* ----
|
|
|
|
i1002_t n1002_t 0 -1mA
|
|
x1002_t n1002_t 0 sub2
|
|
|
|
v1002_g n1002_g 0 1.0V
|
|
|
|
* ----
|
|
|
|
i1003_t n1003_t 0 -1mA
|
|
x1003_t n1003_t 0 sub
|
|
|
|
v1003_g n1003_g 0 3.0V
|
|
|
|
* ----
|
|
|
|
.subckt sub1 n1 n2
|
|
.subckt sub n1 n2
|
|
R1 n1 n2 4k
|
|
.ends
|
|
X1 n1 n2 sub
|
|
R1 n1 n2 4k
|
|
.ends
|
|
|
|
.subckt sub n1 n2
|
|
R1 n1 n2 3k
|
|
.ends
|
|
|
|
.subckt sub2 n1 n2
|
|
.subckt sub n1 n2
|
|
R1 n1 n2 2k
|
|
.ends
|
|
X1 n1 n2 sub
|
|
R1 n1 n2 2k
|
|
.ends
|
|
|
|
|
|
.control
|
|
|
|
define mismatch(a,b,err) abs(a-b)>err
|
|
|
|
op
|
|
|
|
let total_count = 0
|
|
let fail_count = 0
|
|
|
|
let tests = 1001 + vector(3)
|
|
|
|
foreach n $&tests
|
|
set n_test = "n{$n}_t"
|
|
set n_gold = "n{$n}_g"
|
|
if mismatch(v($n_test), v($n_gold), 1e-9)
|
|
let v_test = v($n_test)
|
|
let v_gold = v($n_gold)
|
|
echo "ERROR, test failure, v($n_test) = $&v_test but should be $&v_gold"
|
|
let fail_count = fail_count + 1
|
|
end
|
|
let total_count = total_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
|