-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MOSFET PSP model usage of NF parameter #164
Comments
@bmurmann what do you think? Maybe this also explains some other model things you identified? |
Potentially, but the issues I wrote about where also present for |
@hpretl I have followed the
Also I found this:
Assuming that |
Hi, yes the "m" or "ng" or "nf" issue is already well known for the PSP model in this PDK. Check also #25 for this. Basically, the PDK was extracted and scaled like this in the SG13G2 PDK and somehow they decided that this was the best way to do that. @hpretl you are definitely right, that this does not use the PSP model correctly but without a new extraction with new measurements it is not easy to change since this requires most likely to verify all characteristics again. Best regards |
We are speaking about psp Version 103.6.0.
The RG_i scaling by MULT_i is used here for OP variable calculation - not for contribution. For that we have around line 1826:
|
My not-very-sophisticated test is this (so maybe I am just interpreting things wrong): I take a single MOSFET test bench, and look at the model parameters after Here the netlist: |
Thanks for the test case. For ng=2: From code I see that RG_i goes into ggate. ggate will be then multiplied with MULT_i in CollapsableR and brings the correct current into branch. rg seems buggy maybe it is repaired in newer versions. |
When I do a simple testbench in ngspice simulating just a single LV-NMOS (I assume it is the same for PMOS and HV variants, but I have not checked it), I see that the model parameter
rg
is not reacting to the number of fingers I set. This is not ideal, as the PSP model can model extrinsic resistances.From the PSP model doc:
![image](https://private-user-images.githubusercontent.com/57392031/349620913-0892cd4d-c902-4f90-9d73-39258a94d715.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwOTUxMDcsIm5iZiI6MTcyNjA5NDgwNywicGF0aCI6Ii81NzM5MjAzMS8zNDk2MjA5MTMtMDg5MmNkNGQtYzkwMi00ZjkwLTlkNzMtMzkyNThhOTRkNzE1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTExVDIyNDY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ3M2I2ZjNmMTBhMWIxMzliMTNiNjU4ODVjYmFiODA5MGM2NDQxYjE4ZjMzMTliZmIyYjhiYjg3M2JkYTQyNGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.ze8YmyGRDQxGR7HQReaTPCftRACL0PWf5pwTRCPD8D8)
The calculation of
![image](https://private-user-images.githubusercontent.com/57392031/349620647-e7ec5bce-e1c4-46f6-86db-e6a040b2b00a.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwOTUxMDcsIm5iZiI6MTcyNjA5NDgwNywicGF0aCI6Ii81NzM5MjAzMS8zNDk2MjA2NDctZTdlYzViY2UtZTFjNC00NmY2LTg2ZGItZTZhMDQwYjJiMDBhLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTExVDIyNDY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE0MTIxOTBjNmI4NTVjMjM2MTZiMjEzNzQ2ZTJmOTA1NDYyMDAzZTVhNDg2ZTExZTc3OTVjMzViZGQzNzliZDMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.vghtSXlsyZ93yIYVf5LhnS2gtTblNWL49GduOPTD8-w)
rg
is:In the model file of IHP's PDK, the PSP model is instantiated like that:
![image](https://private-user-images.githubusercontent.com/57392031/349621282-bd2c8914-6fe1-4907-a9d7-4005c4a77c94.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjYwOTUxMDcsIm5iZiI6MTcyNjA5NDgwNywicGF0aCI6Ii81NzM5MjAzMS8zNDk2MjEyODItYmQyYzg5MTQtNmZlMS00OTA3LWE5ZDctNDAwNWM0YTc3Yzk0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MTElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTExVDIyNDY0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc0MGJiYzAzZjBlMmFmMTIxM2E3MDI0ZTM1NGExYjAxOGNkMDI0MTBiMGM1Njc2MzkwNmNjMzgzNDBkYTNmYjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.8wT2aj3sOBXrk7CsQQejFvTOl12SLof-hKz56-z-hfg)
This means that essentially the
nf
(number of fingers, here calledng
, which is not consistent) parameter is never passed on to the PSP model, instead only the width of a single finger is used in the model, and the multiplier parameterm
is then increased bynf
as passed on to the model asmult=ng*m
. In this way, the intrinsic model does not know about the truenf
andm
parameters. This is also confirmed by looking at the model parameters in ngspice, which always showsnf=1
.Maybe this can be changed in a future release? It looks like some capabilities of the PSP model are bypassed in this way.
The text was updated successfully, but these errors were encountered: