Jon Ho
01/29/2023, 4:59 AMLuis Henrique Rodovalho
01/29/2023, 10:23 AMJon Ho
01/29/2023, 6:09 PMLuis Henrique Rodovalho
01/29/2023, 6:12 PMJon Ho
01/29/2023, 6:29 PMLuis Henrique Rodovalho
01/29/2023, 7:52 PM* Self-biased current source testbench
* Include SkyWater sky130 device models
.lib "/usr/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice" tt
.param mc_mm_switch=0
.subckt pch D G S B xm=10 xl=4.0 xwp=3.0
X0 D G S B sky130_fd_pr__pfet_g5v0d10v5 ad=4e+11p pd=2.8e+06u as=4e+11p ps=2.8e+06u w={xwp} l={xl} m={xm}
.ends
.subckt nch D G S B xm=10 xl=4.0 xwn=1.0
X0 D G S B sky130_fd_pr__nfet_g5v0d10v5 ad=4e+11p pd=2.8e+06u as=4e+11p ps=2.8e+06u w={xwn} l={xl} m={xm}
.ends
* circuit netlist
.subckt iref0 io vdd vss xm=1 xk=4 xr=1meg xl=4.0 xwp=3.0 xwn=1.0
cs s vdd 1p
x0a gp s gn vss nch xm={xm} xl={xl} xwn={xwn}
x0b s gn vss vss nch xm={xm} xl={xl} xwn={xwn}
x1a gp gp vdd vdd pch xm={xm} xl={xl} xwp={xwp}
x1b gp gn a vss nch xm={xk*xm} xl={xl} xwn={xwn}
ra a vss {xr/xm}
x2a gn gp vdd vdd pch xm={xm} xl={xl} xwp={xwp}
x2b gn gn vss vss nch xm={xm} xl={xl} xwn={xwn}
x3a io gp vdd vdd pch xm={xm} xl={xl} xwp={xwp}
.ends
* circuit testbench
.param pVDD = 5.0
VDD vdd 0 dc {pVDD}
VSS vss 0 0
xdut io vdd vss iref0 xm=1 xk=4 xr=100k xl=4.0 xwp=3.0 xwn=1.0
vo io vss 0
.param k = 1000
.dc VDD {pVDD/k} {pVDD} {pVDD/k}
.option gmin=1e-15
.control
run
let io = i(vo)
let psr = db(abs(deriv(io)/io))
plot io
plot psr
.endc
.end
.subckt iref0 io vdd vss xm=1 xk=4 xr=1meg xl=4.0 xwp=3.0 xwn=1.0
cs s vdd 1p
x0a gp s gn vss nch xm={xm} xl={xl} xwn={xwn}
x0b s gn vss vss nch xm={xm} xl={xl} xwn={xwn}
x1a gp gp vdd vdd pch xm={xm} xl={xl} xwp={xwp}
x1b gp gn a vss nch xm={xk*xm} xl={xl} xwn={xwn}
ra a vss {xr/xm}
x2a gn gp vdd vdd pch xm={xm} xl={xl} xwp={xwp}
x2b gn gn vss vss nch xm={xm} xl={xl} xwn={xwn}
x3a io gp vdd vdd pch xm={xm} xl={xl} xwp={xwp}
.ends
This is a parametric circuit, where you can choose all the transistor dimensions with the parameters xl, xwn, xwp. There is a resistor parameter too: xr.
This is based on this circuit here, from https://ieeexplore.ieee.org/document/1693217xdut io vdd vss iref0 xm=1 xk=4 xr=100k xl=4.0 xwp=3.0 xwn=1.0
the simulation results are these:Jon Ho
01/30/2023, 12:33 PM