Hi <@U01819B63HP>, Do you know why some curves are cut and cannot be seen completely? It seems to b...
j
Hi @Stefan Schippers, Do you know why some curves are cut and cannot be seen completely? It seems to be a bug, since it is not enough to select the curve, since only one curve is divided into 3 or 4 datasets, so I cannot quickly know what value varied with the dataset, do you have any solution for this?
s
If curve is not monotonically in the x direction try to manual zoom the x axis. For more info , please send a complete testcase (the .sch schematic and *.sym / *.sch of subschematics if any).
j
The problem is that I would like to identify the exact dataset associated with my parameter variation, but a single curve breaks into 3, I have seen it in several sweeps, but it only happens in that graph, it does not happen in the ngspice viewer
curvas.sch
s
Thank you for providing the test case. Please update xschem, i have made a fix and now curves should not be broken anymore. In some cases selecting a curve with the 't' key is difficult if there are many sweeps. In this case do this: • Double click the graph • in the graph dialog box put a number in the dataset you want to see. The graph will display only that dataset. Please check your while loop. You are simulating two times with L=0.15 and not simulating L=3 (last dataset is L=2.95) Move the
alterparam L2 = $&l_act
line and the reset line before the
dc VSG1 0.7 -1.8 -0.01
line, the
run
instruction is not needed.
Copy code
let start_l = 0.15
let stop_l = 3
let delta_l = 0.05
let l_act = start_l
reset
while l_act le stop_l
   alterparam L2 = $&l_act
   reset
   dc VSG1 0.7 -1.8 -0.01 
   *plot @M.XM2.msky130_fd_pr__pfet_01v8[id] ylabel Id xlabel Vds
   let gmidp=(@M.XM2.msky130_fd_pr__pfet_01v8[gm])/(@M.XM2.msky130_fd_pr__pfet_01v8[id])
   let IdWp=(@M.XM2.msky130_fd_pr__pfet_01v8[id])/(@M.XM2.msky130_fd_pr__pfet_01v8[w])
   let idp=@M.XM2.msky130_fd_pr__pfet_01v8[id]
   let gmp=@M.XM2.msky130_fd_pr__pfet_01v8[gm]
   let gdsp=@M.XM2.msky130_fd_pr__pfet_01v8[gds]
   let gmgdsp=gmp/gdsp
   let cggp=@M.XM2.msky130_fd_pr__pfet_01v8[cgg]
   let vovp=@M.XM2.msky130_fd_pr__pfet_01v8[vgs]-@M.XM2.msky130_fd_pr__pfet_01v8[vth]
   let ftp=gmp/(cggp*2*pi)
   let fup=gmp/((2e-12)*2*pi)
   *plot @M.XM2.msky130_fd_pr__pfet_01v8[gm]/@M.XM2.msky130_fd_pr__pfet_01v8[id]
   remzerovec
   save all
   set filetype = binary
   write pmos.raw 
   let l_act = l_act + delta_l
   set appendwrite
end
j
Hi, thanks for that, I managed to identify another error, or I don't know how to solve it, if I graph for example in that same gm/gds test, the datasets start from 0, but if now in sweep I put it to be graphed with respect to gm/id, the dataseet no longer are from 0, otherwise unknown values
s
What is the problem? I looked at graph gm/gds for the pmos and it has gmidp as the sweep variable, everything works here. What are the steps to reproduce the problem?