<@U01819B63HP>: I am trying to save the DCOP of an...
# xschem
d
@Stefan Schippers: I am trying to save the DCOP of an SVT 1v8 PMOS device using the below command: + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[vgs] + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[vds] + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[vth] + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[gds] + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[gm] + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[id] + @m.xdut.xm1.msky130_fd_pr__pfet_01v8[vdsat] However, when I load in my op file "dcop.raw" it doesnt seem to find them (see attached). This is strange as it works fine for an NMOS and worked fine for me last time I did this with a PMOS. Attached is the .sch file. Ive looked in detail but cant see this issue. If you could have a quick look that would be great. Thanks.
1
s
You are saving the mos parameters for an
nfet_01v8
and the dut is a
pfet_01v8
. I have done some minor corrections (and re-created the DUT.sym symbol since it was not included in above attached files)
d
Thanks @Stefan Schippers. I see what the problem is now. In my stim file you will see I had saved the DCOPs for a PMOS device (under those for an NMOS device which I was too lazy to remove!). The problem was I hadnt included "remzerovec" before my write dcop.raw statement. As a result, no updated dcop file was being written. An older one, relating to nmos devices, was present which did not make this very obvious to see. For the benefit of anyone reading this thread - why exactly is "remzerovec" so necessary to include before any write xxx.raw statement? Thanks,
s
@Diarmuid Collins the
remzerovec
(
*rem*ove *zero*
*vec*tors
) command removes vectors (ie variables from simulation) that contain no data. In some cases some parameters (for example MOS bulk current) are zero, in this case the related vector is not even populated with data. when doing a
write
command if there is such a vector with no data instead of silently skipping it the
write
command aborts with an error. The
remzerovec
does the cleanup so write does not complain. I consider this a ngspice bug. (or a bsim model bug, I don't know the culprit). This should be handled automatically. Since I have been hit so many times by this nasty error I now always put a
remzerovec
before a
write
, everywhere.
d
Thanks @Stefan Schippers for the explanation. All is clear now. Previously I thought the remzerovec was a "nice to have" instead of "need to have". Clearly it is a "must have"! Cheers