Hesham Omran
02/22/2024, 11:49 AMBoris Murmann
02/22/2024, 4:44 PMLuke Harold Miles
02/22/2024, 5:54 PM@m.xm1.msky130_fd_pr__nfet_01v8[gm]
or are you calculating it yourself? Is gm the problem or ID or both?Boris Murmann
02/22/2024, 6:15 PMLuke Harold Miles
02/22/2024, 7:23 PMLuke Harold Miles
02/22/2024, 7:37 PMBoris Murmann
02/22/2024, 8:10 PMLuke Harold Miles
02/22/2024, 8:15 PMLuke Harold Miles
02/22/2024, 8:17 PMBrady Etz
02/22/2024, 9:00 PMTim Edwards
02/23/2024, 12:36 AMLuke Harold Miles
02/23/2024, 12:39 AMTim Edwards
02/23/2024, 12:49 AMBoris Murmann
02/23/2024, 12:54 AMTim Edwards
02/23/2024, 12:54 AM.model sky130_fd_pr__pfet_01v8_hvt__model.22 pmos
* DC IV MOS Parameters
+ lmin = 1.45e-07 lmax = 1.55e-07 wmin = 4.995e-06 wmax = 5.005e-6
Tim Edwards
02/23/2024, 1:04 AMBoris Murmann
02/23/2024, 3:30 AMBilal Gabula
02/23/2024, 5:16 AMTim Edwards
02/23/2024, 1:56 PMBoris Murmann
02/23/2024, 3:57 PMLuke Harold Miles
02/23/2024, 8:38 PMBoris Murmann
02/23/2024, 11:13 PMLuke Harold Miles
02/23/2024, 11:22 PMBoris Murmann
02/23/2024, 11:30 PMTim Edwards
02/24/2024, 1:14 AM.lib
command from /ngspice/
to /combined/
.Greg Warwar
02/24/2024, 4:42 PMLuke Harold Miles
02/25/2024, 7:12 PMLuke Harold Miles
02/25/2024, 8:43 PMTim Edwards
02/25/2024, 9:26 PMtanh()
which controls the balance between the two sets of equations. That transitioning is why the curves are smooth rather than discontinuous. But there should not be a kink in the middel---that is not a physical thing, that's just caused by the fact that the subthreshold equations coefficients are such that the gm/Id curve falls off at a lower voltage than it should.
See: https://cmosedu.com/cmos1/BSIM4_manual.pdf Section 3 on subthreshold modeling. Specifically, equation 3.2.1 describes drain current Id. The main parameters that are exclusive to the subthreshold model are voff
and n
, where n
is expanded in equation 3.2.3 and is a function of nfactor
and cit
. I do not think that any other parameters can be modified without also modifying behavior outside of subthreshold. These parameters are in the model files:
+ cit = 1.0e-5
*(mismatch parameter sky130_fd_pr__pfet_01v8_hvt__voff_slope_spectre)
+ voff = {-0.19592208+MC_MM_SWITCH*AGAUSS(0,1.0,1)*(sky130_fd_pr__pfet_01v8_hvt__voff_slope/sqrt(l*w*mult))}
*(mismatch parameter sky130_fd_pr__pfet_01v8_hvt__nfactor_slope_spectre)
+ nfactor = {2.4926776+MC_MM_SWITCH*AGAUSS(0,1.0,1)*(sky130_fd_pr__pfet_01v8_hvt__nfactor_slope/sqrt(l*w*mult))}
ignoring a few parameters that appear to be switches of some sort and aren't in the equations.
Further ignoring the mismatch parts of the equations, the parameters to play around with look are:
voff = -0.19592208
nfactor = 2.4926776
cit = 1.0e-5
cit
appears to be the same everywhere. . . except when it isn't, which is curious.
The paper cited above says that "nfactor is close to 1" but the values in the file range anywhere from about -10 to +10. . . I would not call that "close to 1".
Values for voff
are also all over the map. It would be interesting to get a surface plot of these values vs. W and L. I can't tell if there's any systematic variation to them at all.
At any rate, voff
would be the most likely candidate to move the whole threshold curve over to the right.Luke Harold Miles
02/25/2024, 9:28 PMBoris Murmann
02/25/2024, 9:33 PMHesham Omran
02/26/2024, 3:44 PMTim Edwards
02/26/2024, 3:57 PMBoris Murmann
02/26/2024, 4:52 PMTim Edwards
02/26/2024, 5:10 PMBoris Murmann
02/26/2024, 5:21 PMHesham Omran
02/29/2024, 8:53 PMLuke Harold Miles
03/04/2024, 4:39 PMTim Edwards
03/09/2024, 2:55 AMVincent F
03/19/2024, 7:45 PMTim Edwards
03/19/2024, 7:47 PMTim Edwards
03/19/2024, 7:54 PMBoris Murmann
03/19/2024, 10:00 PMvoff = -0.19592208
nfactor = 2.4926776
cit = 1.0e-5
I found that other BSIM4 models that behave properly are not too far off:
voff = -0.138
nfactor = 2.1
cit = 0
Do you happen to have a numerical dump of one set of SKY130 PMOS model parameters without the annoying multipliers/switches?Tim Edwards
03/20/2024, 12:00 AMBoris Murmann
03/20/2024, 12:26 AMBoris Murmann
03/20/2024, 6:52 PMTim Edwards
03/20/2024, 7:22 PMsky130_fd_pr__pfet_01v8
model, the only thing that changes is the equation for the delvto
parameter (which is not even in a bin). Is that really what you're looking for?Boris Murmann
03/20/2024, 7:29 PMChristoph Maier
04/29/2024, 10:29 PMBoris Murmann
06/03/2024, 5:59 PMvoff
is likely one of main parameters we can/should tweak (see more on this below)
โข Both cit
and nfactor
aren't as useful for fixing our specific issue (but they of course still need to be set carefully)
โข In addition to voff
, we need to find at least one more parameter that will help us straighten out the gm/ID curve (see more on this below)
I created a notebook that lets me tweak each BSIM4 parameter and compare the resulting gm/ID curve with that of the original model:
https://github.com/bmurmann/Ngspice-on-Colab/blob/main/notebooks/SKY130_PMOS_debug.ipynb
This can be cloned by anyone for further experimentation. It reads parameters from here (you can just make a copy of this as well):
https://docs.google.com/spreadsheets/d/1Hwd8noFhY4iLRD1ox5WdAPWIZPu_natdPsb85dYDgkc/edit#gid=0
Here is an example of what happens by changing voff
from -0.21 to -0.08 (BSIM4 default):Boris Murmann
06/03/2024, 6:00 PMvoff
is increased further (to 0.2):Boris Murmann
06/03/2024, 6:02 PMvoff
is a step in the right direction, but won't be sufficient. We'll need to look at all parameters in the I-V equation, not just the ones for weak inversion. I'll keep digging...Andrew Wright
06/04/2024, 3:48 AMAndrew Wright
06/04/2024, 3:56 AMBoris Murmann
06/04/2024, 5:04 AMChristoph Maier
06/04/2024, 10:36 AMDiarmuid Collins
06/04/2024, 8:56 PMBoris Murmann
06/04/2024, 9:53 PMTim Edwards
06/04/2024, 11:58 PMBoris Murmann
06/05/2024, 2:27 AMBoris Murmann
06/05/2024, 5:39 PMlnfactor
is set to a large value and is very sensitive. This is supposed to model a second order dependence, but is abused to set the primary behavior of the device. I think the only reason this works is because of the binning wrapped around these models; if you actually swept the length with a fixed model, things would probably fall apart.
โข For the standard Vt PMOS, nfactor
is set to a negative number, again corroborating that non-common-sense interactions at the boundary of the BSIM4 equations' validity must be at play here.
โข I am bit confused about the model version, which is set to 4.5, but it contains parameters that were introduced after 4.5. That said, changing the model to 4.8.2 does not really help, other than opening up a few new fitting parameters that could be useful (such as minv
).
In summary, I think that someone with experience in BSIM model fitting needs to look at this. It won't boil down to fixing a typo somewhere. It seems that several of the parameters must be tuned and cleaned up. It's beyond my bandwidth right now to do this. Below is just a snapshot of what tweaking voff
does (setting it to 0.02). Still not great, but better than the blue curve that we're working with right now.
https://github.com/bmurmann/Ngspice-on-Colab/blob/main/notebooks/SKY130_PMOS_debug.ipynbChristoph Maier
06/05/2024, 5:42 PMBoris Murmann
06/05/2024, 5:45 PMAndrew Wright
06/05/2024, 5:47 PMChristoph Maier
06/05/2024, 5:50 PMKeno Fischer
06/05/2024, 6:18 PMDiarmuid Collins
06/05/2024, 9:04 PMBoris Murmann
06/05/2024, 9:32 PMAndrew Wright
06/05/2024, 9:37 PMLarry Harris
06/06/2024, 2:23 AMDeni Alves
06/06/2024, 9:38 AMDiarmuid Collins
06/06/2024, 9:52 AMChristoph Maier
06/06/2024, 10:04 AMDeni Alves
06/12/2024, 8:30 AMTim Edwards
06/13/2024, 4:28 PMTim Edwards
06/13/2024, 4:28 PMDiarmuid Collins
06/13/2024, 9:21 PMDiarmuid Collins
06/13/2024, 9:24 PMDeni Alves
06/13/2024, 10:02 PMDeni Alves
06/14/2024, 8:05 AMDiarmuid Collins
06/22/2024, 6:36 AMBoris Murmann
06/22/2024, 7:35 AMDiarmuid Collins
06/28/2024, 4:30 PMDiarmuid Collins
06/28/2024, 4:32 PMChristoph Maier
06/29/2024, 9:33 AMDiarmuid Collins
06/29/2024, 8:11 PMChristoph Maier
06/29/2024, 8:23 PMDiarmuid Collins
06/29/2024, 9:16 PMDiarmuid Collins
07/02/2024, 8:12 PMDiarmuid Collins
07/03/2024, 5:34 PMDiarmuid Collins
07/26/2024, 4:38 PMBoris Murmann
07/26/2024, 4:47 PMDiarmuid Collins
07/27/2024, 6:37 AMZineddine Haboussi
12/21/2024, 9:33 AMLinen is a search-engine friendly community platform. We offer integrations with existing Slack/Discord communities and make those conversations Google-searchable.
Powered by