vdmos: in case temp and dtemp is given - use dtemp and neglect temp
prevent uninitialized warning
correct dT derivatives and add dVth_dT
Revert "Remove instance parameter temp. To specify offset to ambient temperature use dtemp instead."
Revert "correct and simplify temp derivatives"
correct and simplify temp derivatives
Inconsistent behavior in VDMOS thermal model
A fix is provided in pre-master-46. Please use dtemp instance parameter to apply an offset to ambient temperature.
Remove instance parameter temp. To specify offset to ambient temperature use dtemp instead.
Thanks for this report and test cases. I just started to investigate the problem. I think at first we have a confusion about the role of instance parameter temp and voltage on node tj. Latter shows more or less the overtemperature of the device to ambient temperature. So to make a compare usage of dtemp instead of temp instance parameter is preferable. But anyway a difference persist because of a wrong double temperature update for beta (and other variables) in case of selfheating. Removing this...
Removing IPC is a bit pity. Sockets are still a fast and comfortable interface. Used it earlier for a different simulator - optimizer application. AFAIK, code is only in few xspice files. But if important code like dctran will be more readable I aggree to remove the ipc stuff as well. Giles Atkinson gatk555@users.sourceforge.net schrieb am Sa., 18. Okt. 2025, 02:30: That always looked like dead code to me, but I was not entirely sure. Removing it seems an excellent idea. Remove CLUSTER and IPC Sent...
Thank you Justin, I couldn't it better say.
I can confirm the problem. But I can't debug it in next 3 weeks. Perhaps Holger can help in the meantime.
correct init state vector for qth integration
@stekulov : In case there is still an interest, could you checkout ngspice development branch diode-soft-recovery compile it and check it with your test cases. My tests show at most identical results as coming from qspice and ltspice. Your opinion is welcome.
xom and xoi overlap thickness default in Angstrom
count poly and metal capacitances for charge calculation
count level=3 model poly and metal capacitance in charge calculation normal operation
count level=3 model poly and metal capacitance in charge calculation and correct xoi and xom units to Angstrom
AFAIK skywater PDK is using .option scale=1.0u Is it setted in the failing schematic/netlist?
diode xoi and xom parameter have unit Angstrom
correct xoi and xom defaults to Angstrom and clarify comments
count level=3 model poly and metal capacitance in charge calculation
add diffusion capacity to ac relevant capacitor
complete KLU bindings
first trial KLU bindings
add device informations
first trial for ac implementation
reverse recovery: safe guard against VP=0
simplify branch condition
formatting
add modification notice
Merge commit 'fef64ab241973fb5b937777c904649a31b52d6c3' into pre-master-46
separate dc current for diffcharge
trial with qd node
bjt parsing problem
Checked w/ and w/o subckt. All cases are correct. Thanks.
But evaluation is done as we see in the error print. The rule could be: If only a scalar appears then it is the area parameter. But we can close, the initial problem is solved. Attached your modified test case with subckt.
Thanks for the fixes. I made few cleanings and removed an left over bracket to compile with MSVC. Perhaps we should bsim4 team or cmc inform about some weaknesses in this version. What do you think about their new multiplier concept? Is it needed for HB?
Fixes in BSIM4 4.8.3.
remove obsolete bracket
remove old commented strncmp version check code
Merge commit '683e208d87f431eb175a368d63dc10f2311a7bf7' into pre-master-46
Thank you Holger for quick fix of the original problem and the test case! But the problem seem dependent if the bjt is in a subckt or not. This follows still in error if it is used inside subckt: Q1 A C S mod1_pnp '((Nx*Ny)*(l*w))/(scaling*scaling)'
bjt parsing problem
separate sidewall diode have no breakdown
Please ask model specific questions on the https://github.com/cogenda/VA-BSIM48/issues . If you want use this model with ngspice you should at least comment out the XYCE definition in the va code. And: ngspice can't produce i(3) - you want see v(3)? Using this modified model https://github.com/dwarning/VA-Models/blob/main/code/bsim4/vacode/bsim4.va I can run your spice netlist and get this on the ngspice console in win11: OSDI(debug) nmn1: RECALCULATION for no K1 or K2 Using SPARSE 1.3 as Direct...
After deeper investigation I saw that your 1. patch is still available in version 4.8.3 too. Can you please generate your 2. patch against latest branch pre-master-46. The I would apply it.
bsim4: unify error printout
bsim4: reimplement mobility and binning extension
reply commit e5c162f1: dc sweep fails after transient sim
prevent warning if NOBYPASS is not defined
adapt instance parameter extension to new bsim4 multiplier concept
@mschweikardt @h_vogt At first I have to apologize: In my update from version 4.8.2 to 4.8.3 I overlooked your patch for the additional instance parameter. In the lower versions they are still available because they will not updated anymore. I can reinstall the 1. patch for the new bsim4.8.3. It is in Holger's decision on which branch. To the second patch: As said I am not so happy with this entire approach of blowing up the instances. But if it is the last we can do it. Holger your opinion?
unsetup should remove sw prime node
simplify dioload
rebase old dio_rev_rec branch
Would be better we had incorporated dw_diode_rsw_ikp branch. Hopeful you can bring the two commits in one.
complete diodefs for KLU selfheating and fix DIObindCSCComplexToReal
Oh, yes. Will come soon. Sorry!
KLU bindings are missing
Fix committed into pre-master-45.
add KLU bindings for diode selfheating effect, bug #802
Fra, find attached the fixed bindings. A complete version you can find in my new branch dw_diode_rsw_ikp.
separate series resistance and knee current parameter for sidewall diode used in PDK libraries
Hi Francesco, yes, your commit was made 2014 based on an older release, even it was merged later. My selfheating commit was on 11.4.2021. I must correct me: Using latest version 44 and KLU activated there is no convergence. Sparse OK. If I insert all the bindings and transforms as mentioned above then both solver are working. I checked other models with selfheating bsimsoi, vdmos and vbic. They are complete. Only diode. Attached is a simple testcase. @h_vogt: I have the missing code ready. If you...
KLU bindings are missing
Is there a need to declare the variables local if they are global declared? You want reference to the local version of this variables?
I applied Fra.patch to premaster-45 and build with msys2 ucrt64 and also with MS VS. Both have bison version 3.8.2. Executables are build. The depreciated warnings disappears.
Please read the manual regarding load and source command! And as you see in the console output you have no graphic interface or you use the ngspice console application. So your plot commands are not usable.
@ra3xdh There are a lot of warnings of same type by compiling with MS Visual Studio the new transmission line models - see below. If we not clean it now before new release then it will stay for ever. 3>C:\msys64\home\warning\ngspice\visualc\xspice\icm\tlines\cpmlin\cpmlin-cfunc.c(187,18): warning C4459: declaration of 'ae' hides global declaration 3> C:\msys64\home\warning\ngspice\visualc\xspice\icm\tlines\cpmlin\cpmlin-cfunc.c(34,15): 3> see declaration of 'ae' 3>C:\msys64\home\warning\ngspice\visualc\xspice\icm\tlines\cpmlin\cpmlin-cfunc.c(187,22):...
@dfreebird - which circuits you have in mind with all these effects by using bsim4 in a e.g. 45 nm process?
prevent unused warning
I think Holger has answered your question sufficient, especially you didn't show us your model file.
diode: add model parameter aliases
Can't reproduce it under Ubuntu 24.04. Perhaps the cygwin tools are newer. Recommendations in internet: configure.ac, l.1100: AC_PROG_YACC -> AC_CHECK_PROG(YACC, bison, bison) In few Makefile.am substitute AM_YFLAGS = -d -> AM_YFLAGS = -d -Wno-yacc But don't know if only the warnings switched off and the C code has still the shown problems.
git ignore temporary file
Merge branch 'pre-master-45' of ssh://git.code.sf.net/p/ngspice/ngspice into pre-master-45
diode needs both current components (bottom and sidewall) for Vcrit and breakdown voltage calculation
introduce aliases for certain diode breakdown model parameter
Good point, perhaps we have a similar problem in other devices too. E.g. the serial resistance in the diode is also set to a certain value and later we relay in diotemp.c to DIOresistGiven. Here we will not fabricate a crash but the temperature dependency for the resistor is not handled for the pathological case of non given resistor and given temp coeff's. I will check other devices like vdmos and vbic too.
fix a wrong Release/Debug selection for console build
@h_vogt : Compile looks OK - but tline copy action is missing in bat file. And - what about vngspice-fftw?
There is a PR https://github.com/IHP-GmbH/IHP-Open-PDK/pull/610 @p-fath could you please check it. Thanks.
@ra3xdh - yes MSVC is very specific. Your implementation works me for under linux and mingw too. @h_vogt: Should I open an separate branch for visualc?
I tried to add it to visual studio but without luck so far. How is it planned in the win world?
typo in juncap title
adapt VDMOS default model parameter values
bsim4 update to version 4.8.3
bsim4 update to version 4.8.3
It works for me, thanks.
After checking I see no other then "1", "+1", "-1" and "0".
@h_vogt can it be that the model parameter "type=1" is removed in rem_mfg_from_models() inpcom.c?
Can confirm the problem with same openvaf version (in this case for windows). My guess is the compatibility routines in the frontend. But must check it further. BTW - I prefer to clean the va code and check it with VAMPyRE
Implement showmod for OSDI
OK, let us know. I will close this request.
Two questions: 1. bsim4 lacks also this mask for ic conditions, should it be added? which other models too? 2. few devices masking these parameter with IOPAU, means they were not listed in default show command. Should we not make it unique?
I just committed a fix in pre-master-45. Please check it with your system. Thanks for pointing to this feature.
allow showmod command for verilog-a models - feature request #100
Thanks for the testcase. Indeed, the access for reading model parameters is actual not implemented in the OSDI interface. It is not only a missing pointer - the entire function chain is not complete implemented. Will not be a quick solution.