Dear friends,
Could you try to support BSIMCMG compact model into ngspice?
Many researcher need this function for study advanced devices for common multi-gate FETs, like you did for BSIM3 and BSIM4.
The device model is here (BSIMCMG106.1):
http://www-device.eecs.berkeley.edu/bsim/?page=BSIMCMG_LR
Very Thanks,
Simon
Hi Robert,
You are right. I was wrong.
Last edit: Yvon 2017-08-07
Hello Yvon,
You are welcome, I'm glad that you agree, in some way, concerning the invariance
of ddx with respect to multiplication with a constant value, -1 here.
Actually I do not know enough about verilog-va, but I hope its sufficient for this thing.
admsXml needs the "ddx" at the outer most level of the expression, thats all.
There are some modified examples from the original berkely source code in the
(out of place, but alas, it is a hacking branch) toplevel directory "bsimcmg_benchmark_test" which should give some idea about useability.
Again I do not know enough about such things, so If you see some output there
which you instantly feel out of order, then please report.
Sure, will do later.
My opinion to the
$port_connected
issue:According to the manual, the 5th terminal
t
is used by the self-heating model. Although this Rth/Cth model is deeply integrated in the larger model, the only direct appearance of thet
terminal / value are 11 output variables, in the form ofTemp(t)
.This terminal is not set or "loaded" since I didn't find any asynchronous assignment.
And the
$port_connected
only shows up to generate two warning messages!1. If
t
terminal is connected andSHMOD=1
then useTemp(t)
normally.2. If
t
terminal is connected butSHMOD=0
then warn, and nothing happens since this temperature is not used anyway. Other parts of the code do rely on the temperature but not including results from self-heating.3. If
t
terminal is not connected butSHMOD=1
then warn, and clampTemp(t)
at zero degree Celcius.4. If
t
terminal is not connected andSHMOD=0
then everything is fine, similar to the second case.Back to the self-heating model, if I'm getting it right then the
rth
andcth
are supposed to interact with thermal simulation, which calculates temperature and heat flow seperately from electrical simulation. At this moment I don't think ngspice is implementing thermal / energy balance simulation, so this terminal is meaningless. Frankly you could set some temperature and use the self-heating model, but there is no way one could make use of any possible output from this node.My suggestion:
1. Completely remove the warning message block. This should eliminate the use of
$port_connected
.2. Force user to connect the 5th node. If
SHMOD=0
then it could be anything, preferrably to be0
. IfSHMOD=1
then it should be used as a temperature input. However I'm not sure in what format the temperature data should be.Hope this could help.
Regards,
Last edit: Yvon 2017-07-26
Hello Yvon,
the reason why I've disabled the $port_connected, is, and was, that the adms tool simply errors out and fails to work in this particuliar case. Thus I should search whether I can fix the adms .xml files.
The 't' node is driven internally, see
and then,
I'm not familiar with this, but seems to be a "Thermal Power" flow (units Watt)
into a thermal capacity (units Kelvin/Joule) to model dynamic temperature rise and
its consequences to all other variables. The node seems to be made external on demand to either monitor it (temperature), or to even add some more thermal capacity.
currently I don't know why adms chokes here.
Regards,
I think it assumes the simulator handles heat /energy balance simulation with
Temp()
andPwr()
implemented. Is there any way to know whether ngspice or adms deals with this?According to the technical manual, the self-heating model describes a FinFET as a thermal resistor and a thermal capacitor, parallel connected, as well as a heat source connected in the same way. The power for the heat source comes from the transistor itself, and hence the name "self-heating".
Thinking in this way, the
t
terminal should be considered as an output from the model, telling the temperature of the device locally with the consideration of the self-generated heat power.If ngspice or any other simulation software supports thermal simulation, it would be equivalent to setting an external heat source with the correctly-defined Rth and Cth and simulating the temperature separately, dependent on the electrical device.
I think the "input" of temperature to the model is still by setting ambient temperature, which could also be affected by the heating of the FETs but calculated in some other way.
What is the status of this feature? The last post is over a year old and I could not find any related updates in the Git repository, but maybe I overlooked something.
Status hasn't change, but you are free to contribute anyway.
Ok. thanks!
From this thread it looks like "adms-experiment-1" is a branch with the changes for BSIMCMG.
Great.
Could someone know where to download admsxml-experiment?
從我的 iPhone 傳送
Wasn't sure where to post this, but I am having issues with the adms-experiment-1 and adms-experiment -2 branches. I am using the PTM from ASU for the 14/16 nm finfet, and get errors saying it does not support MOS device level 72. Has anyone gotten this issue? Are there newer versions of this?
We can close, because latest public BSIM-CMG version 111.0.0 is available over ngspice osdi interface and https://github.com/dwarning/VA-Models