Harald Pretl
11/06/2022, 8:26 AMdevice_param_probe.sym
, I struggle to get it working. Any hints?
I just realized that the nfet/pfet_*_nf
are missing the id
and gm
expressions, could you please add them there as well? And they sometime work and sometime now, do you have an idea what could go wring? Is the save all
sufficient?Harald Pretl
11/06/2022, 10:09 AMwrite XYZ.raw
a remzerovec
is helpful to fix issues with non-zero vectors.
• The gm
values need an extra save @m...[gm]
statement.
@Stefan Schippers Any chance that you could put these save [gm]
statements automatically into the simulation controls? For many transistors, this is quite difficult. Or is there a way like the save all
but for device parameters?Stefan Schippers
11/07/2022, 9:06 AM.options savecurrents
and `save all`:
.options savecurrents
...
...
.control
...
save all
tran 1n 200n
remzerovec
write dile.raw
.endc
these two save options will dump all currents (including device internal currents) to the raw file.
for
other parameters, like gm, vth and others, these must be specifically
saved with a save instruction for every transistor, and as far as i know
wildards are not accepted:
save @m.x1.xm5.msky130_fd_pr__nfet_01v8[gm]
save @m.x1.xm5.msky130_fd_pr__nfet_01v8[gds]
save @m.x1.xm5.msky130_fd_pr__nfet_01v8[gmbs]
save @m.x1.xm5.msky130_fd_pr__nfet_01v8[vth]
The
syntax for saving device parameters is really ngspice specific. Xyce
will use a totally different (and cleaneer) syntax, I am not even sure
if every internal parameter is available.
For the remzerovec
i also struggled a lot with this. It happens I believe when body
currents are zero (low injection) and then no vector is saved. I hope
the ngspice devs will fix this autmatically in the future...
Will add the gm/id printouts in the _nf fets.
For the view_only_probes dimming the circuit is a good idea, will work on that, will take a bit of time. Thanks (edited)Stefan Schippers
11/07/2022, 9:10 AM.options savecurrents
and looking into the header of the raw file you find the syntax of all fet currents:
i(@m.x2.xm2.msky130_fd_pr__nfet_01v8_lvt[id])
Getting other parameters, for example gm
is easy:
@m.x2.xm2.msky130_fd_pr__nfet_01v8_lvt[gm]
so remove the i(
...)
, change [id]
with [gm]
, and give the resulting expression to a save
statement.
For parameters that are voltages (like vth) replace i(...) with v(...)Harald Pretl
11/07/2022, 10:04 AMStefan Schippers
11/07/2022, 12:35 PMHarald Pretl
11/07/2022, 12:46 PM