Charles White
08/21/2022, 10:39 PMLuis Henrique Rodovalho
08/23/2022, 8:05 PM* PMOS diode testbench
* Include SkyWater sky130 device models
.lib "/usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice" tt
.param mc_mm_switch=0
X0 D G S B sky130_fd_pr__pfet_01v8 ad=4e+11p pd=2.8e+06u as=4e+11p ps=2.8e+06u w=1.0 l=0.5 m={1}
VG G 0 -1
VS S 0 0
VD D G 0
VB B 0 0
.option gmin = 1e-15
.control
dc VG -2.0 -0.1 1m
let vgs = abs(v(g)-v(s))
let id = abs(i(vd))
let gm = abs(deriv(id)/deriv(vgs))
let gmid = gm/id
plot id vs vgs
plot id vs vgs ylog ylimit 1e-15 1e-3
plot gmid vs id xlog
.endc
.end
The transistors seems to be fine.Charles White
08/23/2022, 10:48 PM* NMOS diode testbench
* Include SkyWater sky130 device models
.lib "/usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice" tt
.param mc_mm_switch=0
X0 D G S B sky130_fd_pr__nfet_01v8 ad=4e+11p pd=2.8e+06u as=4e+11p ps=2.8e+06u w=1.0 l=0.5 m={1}
VG G 0 1
VS S 0 0
VD D G 0
VB B 0 0
.option gmin = 1e-15
.control
dc VG 0.1 2.0 1m
let vgs = abs(v(g)-v(s))
let id = abs(i(vd))
let gm = abs(deriv(id)/deriv(vgs))
let gmid = gm/id
plot id vs vgs
plot id vs vgs ylog ylimit 1e-15 1e-3
plot gmid vs id xlog
.endc
.end
Charles White
08/23/2022, 10:50 PMLuis Henrique Rodovalho
08/24/2022, 8:21 PMLuis Henrique Rodovalho
08/24/2022, 8:21 PM* PMOS diode testbench
* Include SkyWater sky130 device models
.lib "/usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice" tt
.param mc_mm_switch=0
X0 D G S B sky130_fd_pr__pfet_01v8 ad=4e+11p pd=2.8e+06u as=4e+11p ps=2.8e+06u w=1.0 l=0.5 m={1}
VG G 0 -1
VS S 0 0
VD D 0 -0.013
VB B 0 0
.option gmin = 1e-15
.control
dc VG -2.0 -0.1 1m
let vgs = abs(v(g)-v(s))
let id = abs(i(vd))
let gm = abs(deriv(id)/deriv(vgs))
let gmid = gm/id
plot id vs vgs
plot id vs vgs ylog ylimit 1e-15 1e-3
plot gmid vs id xlog
.endc
.end
Luis Henrique Rodovalho
08/24/2022, 8:27 PM* PMOS diode testbench
* Include SkyWater sky130 device models
.lib "/usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice" tt
.param mc_mm_switch=0
X0 D G S B sky130_fd_pr__pfet_01v8 ad=4e+11p pd=2.8e+06u as=4e+11p ps=2.8e+06u w=1.0 l=0.5 m={1}
VG G 0 -1
VS S 0 0
VD D 0 -0.013
VB B 0 0
.option gmin = 1e-15
.control
dc VG -2.0 -0.1 1m
let vgs = abs(v(g)-v(s))
let id = abs(i(vd))
let gm = abs(deriv(id)/deriv(vgs))
let gmid = gm/id
plot id vs vgs
plot id vs vgs ylog ylimit 1e-15 1e-3
plot gmid vs id xlog
dc VD -2.0 -0.1 1m
let vds = abs(v(d)-v(s))
let id = abs(i(vd))
plot id vs vds
.endc
.end
See, there is very low rds, due to the small transistor length. That is why the transistors must be characterized in the linear region.