I am facing the following issue while running this...
# sky130
p
I am facing the following issue while running this netlist. * /home/pratyush/vlsi/esim-workspace/inverter/inverter.cir .include spice_lib/sky130.lib xm1 out input gnd gnd sky130_fd_pr__nfet_01v8 w=0.375u l=0.25u xm2 net-m2-pad1 input out net-m2-pad1 sky130_fd_pr__pfet_01v8 w=0.375u l=0.25u v1 net-m2-pad1 gnd dc 2 * u2 out plot_v1 * u1 input plot_v1 v2 input gnd pulse(0 2 0 0.1u 0.1u 2.5u 5u) .tran 1e-09 10e-06 0e-06 * Control Statements .control run *print allv > plot_data_v.txt *print alli > plot_data_i.txt plot v(out) plot v(input) .endc .end
t
The SkyWater models expect all widths and lengths to be in microns and scale all the model equations correspondingly. So you must have, e.g.,
w=0.375 l=0.25
not
w=0.375u l=0.25u
.
p
I tried doing w=0.375 l=0.25 but again the same error was coming. Then I looked into the .spice file of pfet and nfet. There it was mentioned that lmin = 2.0e-05 lmax = 0.0001 wmin = 7.0e-06 wmax = 0.0001. After that I chose the lengths of my mosfets accordingly and it worked. Now I have a doubt that if the skywater is a 130nm PDK why the lmin= 2.0e-05 and not 13e-8.
t
@Pratyush Saxena: The models are binned, which means the transistors are modeled at various widths and lengths, each having its own length and width range. But if you are outside the range of all the bins, then ngspice will throw an error saying it cannot find a valid device model.
lmin=2.0e-05
is only the minimum length for one of the bins. The true minimum length is
lmin=1.45e-07
. Your problem is not with minimum length, but with minimum width, which is
wmin=4.15e-07
.