How does one go about finding the Avth (threshold ...
# analog-design
j
How does one go about finding the Avth (threshold mismatch) of the devices in this PDK? I am currently trying to calculate threshold voltage mismatch (Av / WL) for a simple flash ADC design that uses strongARM comparators.
t
By "this PDK" I assume you mean sky130? You can simulate with the mismatch corners (e.g., corner
tt_mm
). Or, if you just want the number for the one parameter, look in the model files. For example, in
$PDK_ROOT/sky130A/libs.ref/sky130_fd_pr/spice/sky130_fd_pr__nfet_01v8__tt.pm3.spice
(substitute appropriate device and process corner), find the line
vth0 =
for the appropriate FET model bin given the W and L values. For the example,
nfet_01v8
model bin
0
, the line is:
Copy code
+ vth0 = {0.5190093+MC_MM_SWITCH*AGAUSS(0,1.0,1)*(sky130_fd_pr__nfet_01v8__vth0_slope/sqrt(l*w*mult))}
although I am having difficulty figuring out where
sky130_fd_pr__nfet_01v8__vth0_slope
is being defined and included; it is defined in
invariant.spice
(
sky130_fd_pr__nfet_01v8__vth0_slope = 0.003356
) but that seems to be only included in the monte carlo simulation setup. I'm sure it's there somewhere, or else ngspice would halt with an error. The continuous models are done differently and I don't understand how the method differs; the mismatch is captured in a subcircuit parameter
swx_vth
which is then used in computing model parameter
delvto
, while parameter
vth0
itself is constant.
delvto
is not used in the discrete models.