90 lines
1.5 KiB
Plaintext
90 lines
1.5 KiB
Plaintext
|
|
i(XXX) test
|
||
|
|
* Restrictions of function i(device):
|
||
|
|
* O.K. when device and i(device) are at top level.
|
||
|
|
* O.K. when device and i(device) are in the same
|
||
|
|
* subcircuit at first subcircuit level.
|
||
|
|
* O.K. when device and i(device) are in the same
|
||
|
|
* subcircuit at some deeper subcircuit level.
|
||
|
|
|
||
|
|
* source at top level, function i(XXX) at top level
|
||
|
|
*o.k.
|
||
|
|
R1 1 0 1
|
||
|
|
V1 1 0 1
|
||
|
|
R2 2 0 '5 * i(R1)'
|
||
|
|
V2 2 0 1
|
||
|
|
|
||
|
|
* source at top level, function i(XXX) at subckt level
|
||
|
|
* geht nicht!
|
||
|
|
*.subckt contr1 n1 n2
|
||
|
|
*RS1 n1 n2 '6 * i(R1)'
|
||
|
|
*.ends
|
||
|
|
|
||
|
|
*XR1 3 0 contr1
|
||
|
|
*V3 3 0 1
|
||
|
|
|
||
|
|
* source at subckt level, function i(XXX) at same subckt
|
||
|
|
* o.k.
|
||
|
|
.subckt contr2 n1 n2
|
||
|
|
RS1 n1 n2 '6 * i(RS2)'
|
||
|
|
RS2 1 0 1
|
||
|
|
V1 1 0 1
|
||
|
|
.ends
|
||
|
|
|
||
|
|
XR2 4 0 contr2
|
||
|
|
V4 4 0 1
|
||
|
|
|
||
|
|
* source at subckt level, function i(XXX) at same subckt level
|
||
|
|
* but different subcircuit: should not do!
|
||
|
|
* does not do!
|
||
|
|
*.subckt contr3 n1 n2
|
||
|
|
*RS1 n1 n2 '6 * i(RS2)'
|
||
|
|
*.ends
|
||
|
|
|
||
|
|
*XR3 5 0 contr3
|
||
|
|
*V5 5 0 1
|
||
|
|
|
||
|
|
|
||
|
|
* source at subckt level, function i(XXX) at top level
|
||
|
|
* geht nicht!
|
||
|
|
|
||
|
|
*.subckt contr4 n1 n2
|
||
|
|
*RS41 n1 n2 7
|
||
|
|
*VS41 n1 n2 1
|
||
|
|
*.ends
|
||
|
|
|
||
|
|
*XR4 6 0 contr4
|
||
|
|
*R6 7 0 '10*i(r.xr4.rs41)'
|
||
|
|
*V6 7 0 1
|
||
|
|
|
||
|
|
|
||
|
|
* source at second subckt level, function i(XXX) at same subckt
|
||
|
|
* o.k.
|
||
|
|
.subckt contr5 n1 n2
|
||
|
|
XR2 n1 n2 contr2
|
||
|
|
.ends
|
||
|
|
|
||
|
|
XR8 8 0 contr5
|
||
|
|
V8 8 0 1
|
||
|
|
|
||
|
|
* MOS device, first node only
|
||
|
|
vd d 0 1
|
||
|
|
vg g 0 1
|
||
|
|
vb b 0 0
|
||
|
|
vs s 0 0
|
||
|
|
m1 d g s b n1 W=10u L=1u
|
||
|
|
RM 10 0 '1E6 * i(M1)'
|
||
|
|
VRM 10 0 1
|
||
|
|
|
||
|
|
* reuse i(M1)
|
||
|
|
BMM 11 0 V='1E6 * i(M1)'
|
||
|
|
RMM 11 0 1
|
||
|
|
|
||
|
|
.include modelcard.nmos
|
||
|
|
|
||
|
|
.control
|
||
|
|
op
|
||
|
|
print i(V1) i(V2) i(V4) i(V8) i(VRM) i(BMM)
|
||
|
|
.endc
|
||
|
|
|
||
|
|
.end
|