mirror of
https://git.code.sf.net/p/ngspice/ngspice
synced 2026-08-22 13:57:32 +02:00
Add a monitoring output the the seegen instance
This commit is contained in:
@@ -7,7 +7,7 @@ XMN9 Vbias Vbias 0 0 NCH W=5u L=1.4u
|
||||
V5 in+ 0 DC 1.65
|
||||
R1 out in- 100k
|
||||
R2 in in- 20k
|
||||
V4 in 0 DC 1.65 SIN( 1.65 100m 1k 0 0 0 ) AC 1
|
||||
V4 in 0 DC 1.65 SIN( 1.65 100m 20k 0 0 0 ) AC 1
|
||||
XMN3 out Vbias 0 0 NCH W=17.4u L=1.4u
|
||||
C2 out 0 2p
|
||||
XMP2 out VGP2 Vcc Vcc PCH W=14.5u L=1.4u
|
||||
@@ -23,7 +23,7 @@ XMP8 VGP2 VGP4P8 Vcc Vcc PCH W=2.8u L=1.4u
|
||||
set xbrushwidth=2
|
||||
|
||||
tran 20n 2m
|
||||
plot v(VGP4P8)
|
||||
plot v(VGP4P8) v(xu1.mon)*5000+3
|
||||
plot in out
|
||||
|
||||
ac dec 10 1 1Meg
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
.include modelcard.pmos
|
||||
|
||||
.subckt NCH D G S B W=1 L=1
|
||||
MN1 D G S B N1 W={W} L={L} AS={3*L*W} AD={3*L*W} PS={6*L+W} AS={6*L+W}
|
||||
MN1 D G S B N1 W={W} L={L} AS={3*L*W} AD={3*L*W} PS={6*L+W} PD={6*L+W}
|
||||
.ends
|
||||
|
||||
|
||||
.subckt PCH D G S B W=1 L=1
|
||||
MP1 D G S B P1 W={W} L={L} AS={3*L*W} AD={3*L*W} PS={6*L+W} AS={6*L+W}
|
||||
MP1 D G S B P1 W={W} L={L} AS={3*L*W} AD={3*L*W} PS={6*L+W} PD={6*L+W}
|
||||
.ends
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
.param Inull = 'tochar/(tfall-trise)'
|
||||
* Eponential current source without control input
|
||||
* only NMOS nodes with reference GND (substrate).
|
||||
aseegen1 NULL [%i(n1) %i(n2) %i(n3) %i(n4)] seemod1
|
||||
.model seemod1 seegen (tdelay = 0.62m tperiod=0.1m inull='Inull' perlim=FALSE)
|
||||
aseegen1 NULL mon [%i(n1) %i(n2) %i(n3) %i(n4)] seemod1
|
||||
.model seemod1 seegen (tdelay = 0.62m tperiod=0.01m inull='Inull' perlim=FALSE)
|
||||
.ends
|
||||
@@ -21,7 +21,7 @@ Vbln bln 0 0
|
||||
*V1 in gnd pulse(0 'vdd' 0p 200p 100p 5n 10n)
|
||||
|
||||
* Eponential current source without control input
|
||||
aseegen1 NULL [%id(n1 m1) %id(n2 m2) %id(n1 m1) %id(n2 m2)] seemod1
|
||||
aseegen1 NULL mon [%id(n1 m1) %id(n2 m2) %id(n1 m1) %id(n2 m2)] seemod1
|
||||
.model seemod1 seegen (tdelay = 11n tperiod=25n inull='Inull')
|
||||
|
||||
Xnot1 n1 vdd vss n2 not1
|
||||
|
||||
@@ -19,7 +19,7 @@ Vbln bln 0 0
|
||||
Vctrl ctrl 0 pulse (0 1 10n 1n 1n 1 1)
|
||||
|
||||
* Exponential current source with control input
|
||||
aseegen1 ctrl [%id(n1 m1) %id(n2 m2) %id(n1 m1) %id(n2 m2)] seemod1
|
||||
aseegen1 ctrl mon [%id(n1 m1) %id(n2 m2) %id(n1 m1) %id(n2 m2)] seemod1
|
||||
.model seemod1 seegen (tdelay = 8n tperiod=25n)
|
||||
|
||||
Xnot1 n1 vdd vss n2 not1
|
||||
|
||||
@@ -19,10 +19,10 @@ Vbl1 bl1 0 'vdd'
|
||||
Vbl2 bl2 0 0
|
||||
|
||||
**** SEE generator without control input, double exponential current sources
|
||||
aseegen1 NULL [%id(xcell.n1 m1) %id(xcell.n2 m2) %id(xcell.n1 m1) %id(xcell.n2 m2)] seemod1
|
||||
aseegen1 NULL mon [%id(xcell.n1 m1) %id(xcell.n2 m2) %id(xcell.n1 m1) %id(xcell.n2 m2)] seemod1
|
||||
.model seemod1 seegen (tdelay = 11n tperiod=25n let='let' cdepth='cdepth' tfall='tfall' trise='trise')
|
||||
* alternative syntax, if no current measurement required and reference nodes are GND
|
||||
*aseegen1 NULL [%i(xcell.n1) %i(xcell.n2) %i(xcell.n1) %i(xcell.n2)] seemod1
|
||||
*aseegen1 NULL mon [%i(xcell.n1) %i(xcell.n2) %i(xcell.n1) %i(xcell.n2)] seemod1
|
||||
|
||||
**** the SRAM cell
|
||||
Xcell bl1 bl2 wl vdd vss srcell
|
||||
|
||||
@@ -23,10 +23,10 @@ Vbl1 bl1 0 'vdd'
|
||||
Vbl2 bl2 0 0
|
||||
|
||||
**** SEE generator without control input, double exponential current sources
|
||||
aseegen1 NULL [%id(xcell.n1 m1) %id(xcell.n2 m2) %id(xcell.n1 m1) %id(xcell.n2 m2)] seemod1
|
||||
aseegen1 NULL mon [%id(xcell.n1 m1) %id(xcell.n2 m2) %id(xcell.n1 m1) %id(xcell.n2 m2)] seemod1
|
||||
.model seemod1 seegen (tdelay = 11n tperiod=25n tfall='tfall' trise='trise' let='let' cdepth='d')
|
||||
* alternative syntax, if no current measurement required and reference nodes are GND
|
||||
*aseegen1 NULL [%i(xcell.n1) %i(xcell.n2) %i(xcell.n1) %i(xcell.n2)] seemod1
|
||||
*aseegen1 NULL mon [%i(xcell.n1) %i(xcell.n2) %i(xcell.n1) %i(xcell.n2)] seemod1
|
||||
|
||||
**** the SRAM cell
|
||||
Xcell bl1 bl2 wl vdd vss srcell
|
||||
|
||||
@@ -11,10 +11,10 @@ R4 n4 0 1e4
|
||||
|
||||
|
||||
**** SEE generator without control input, double exponential current sources
|
||||
aseegen1 NULL [%id(n1 0) %id(n2 0) %id(n3 0) %id(n4 0)] seemod1
|
||||
aseegen1 NULL mon [%id(n1 0) %id(n2 0) %id(n3 0) %id(n4 0)] seemod1
|
||||
.model seemod1 seegen (tdelay = 11n tperiod=25n let='let' cdepth='cdepth' trise='trise' tfall='tfall')
|
||||
* alternative syntax, if no current measurement required and reference nodes are GND
|
||||
*aseegen1 NULL [%i(n1) %i(n2) %i(n3) %i(n4)] seemod1
|
||||
*aseegen1 NULL mon [%i(n1) %i(n2) %i(n3) %i(n4)] seemod1
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Test of seegen code model
|
||||
|
||||
aseegen1 NULL [%id(n1 p1) %id(n2 p2) %id(n3 p3)] seemod1
|
||||
aseegen1 NULL mon [%id(n1 p1) %id(n2 p2) %id(n3 p3)] seemod1
|
||||
.model seemod1 seegen (tdelay = 5n tperiod=4.5n)
|
||||
|
||||
Rsee1 n1 0 1
|
||||
|
||||
Reference in New Issue
Block a user