hello, does anyone know if when using the .option ...
# xschem
j
hello, does anyone know if when using the .option scale=1u command, and being able to use W and L as in sky130, I should have also changed these values that say 0.18u?
t
The scale option is an unfortunate feature of the sky130 process, stuck into the model files and assumed in all the model equations. The gf180mcu process is much more standard and has no such scale option. So a 0.5um dimension in sky130 has to be written "0.5" while a 0.5um dimension in gf180mcu has to be written "0.5u" or "0.5E-6".
j
The problem with using "1u" or "1e-5" is that I can't do sweeps for metrics maybe because of how small the simulator assumes it, that's why I used .option scale=1u, it works but I'm worried about those internal values of the transistor that They say 0.18u, since I don't know if I should also change it
t
"I can't do sweeps for metrics maybe because of how small the simulator assumes it,"---That doesn't sound right. What kind of error is the simulator giving you? I try not to use the scale option because it's not very clear to me how it is applied throughout the circuit. But it should be true that if you have
.option scale=1u
then your transistor dimensions should be in units of microns, not meters, so a 1um wide transistor should be
W=1
. However, choice of scale (if done correctly) only determines what units dimensional values are written in, and should have no impact whatsoever on the simulation.
j
Yes, but the problem is in the parameters that I show in the image that says 0.18u, I don't know if using option .scale this also affects what is there, because then 0.18u would already be somewhat smaller
t
Yes, all basic parameters passed to the FET device, including source/drain perimeter and area, need to account for the scalefactor. So all of those equations would need to drop the "u".
j
This my error when I don’t use .scale for a sweep parametric
IMG_2114.jpg
and I think it's because the simulator doesn't read well values as small as 0.000001
This has happened to me in other circuits that I have wanted to vary values like this, I solve this using .scale and they are changes of 1,2,3 and similar things
t
I think your problem here is that you are using a
W
value that is just ever so slightly larger than the largest
wmax
of any
nfet_03v3
model bin. Your
W
value is equal to
1.01E-4
while the largest
wmax
is
1.0E-4
. Either round down your width, or use
nf > 1
.
j
but note that I am not reaching the Maximum, I am reaching about 90u not 104u
t
Right, it can't reach 104u because that's outside of its model bins. I assume 90u was the last width value that it was able to find a model bin for.
j
but then why when I use .scale if it works and reaches 90u?
even with 10 it doesn't work..
in fact it stays stuck there
t
Okay, then, I guess I don't really understand what's going on here.
j
Now see if I do it like this, with scale = 1u, it works
IMG_2118.jpg
IMG_2119.jpg
maybe it is because the steps are very small, it causes a bug to be generated and it never finishes simulating
nmos_sweep.sch
@Stefan Schippers