When I simulate the inverter testbench from lab 1 ...
# sky130-pv-workshop
t
When I simulate the inverter testbench from lab 1 in my personal machine I get the following fatal errors. How could I solve this?
k
@Tim Edwards
s
@Tiago Silva remove pclm and drout parameters from FETs,netlist and try
t
How can I do that? @SUMANTO KAR
s
@Tiago Silva try searching for the same in the SPICE file
t
What spice file are we talking about? The actual nfet spice file inside sky130A/libs.ref/sky130_fd_pr/spice?
s
@Tiago Silva it's working in your login. See:
t
I know, as I said, the problem is occurring in my personal machine.
s
@Tiago Silva please send the spice netlist here once
t
Which netlist?
The inverter netlist? The testbench netlist? The FETs netlist in the PDK? Or other?
s
inverter_tb.spice
t
Inverter_tb.spice:
** sch_path: /home/openpdk/Projects/inverter/xschem/inverter_tb.sch
**.subckt inverter_tb in out
*.opin in
*.opin out
V1 in GND PWL(0 0 20n 0 900n 1.8)
.save i(v1)
V2 net1 GND 1.8
.save i(v2)
x1 net1 in out GND inverter
**** begin user architecture code
.lib /usr/local/share/pdk/sky130A/libs.tech/ngspice/sky130.lib.spice tt
.control
tran 1n 1u
plot V(in) V(out)
.endc
**** end user architecture code
**.ends
* expanding   symbol:  inverter.sym # of pins=4
** sym_path: /home/openpdk/Projects/inverter/xschem/inverter.sym
** sch_path: /home/openpdk/Projects/inverter/xschem/inverter.sch
.subckt inverter vdd in out vss
*.ipin in
*.opin out
*.iopin vss
*.iopin vdd
XM2 out in vdd vdd sky130_fd_pr__pfet_01v8 L=0.18 W=3 nf=3 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
XM1 out in vss vss sky130_fd_pr__nfet_01v8 L=0.18 W=4.5 nf=3 ad='int((nf+1)/2) * W/nf * 0.29' as='int((nf+2)/2) * W/nf * 0.29'
+ pd='2*int((nf+1)/2) * (W/nf + 0.29)' ps='2*int((nf+2)/2) * (W/nf + 0.29)' nrd='0.29 / W' nrs='0.29 / W'
+ sa=0 sb=0 sd=0 mult=1 m=1
.ends
.GLOBAL GND
.end
@SUMANTO KAR
s
@Tiago Silva try removing all the parameters of pfet and nfet and rerun
t
In the xschem schematic?
s
Yes
t
If I remove all parameters I get a different error.
r
@Tim Edwards I'm also facing same error..can you please guide us.. Im searching for the solution from yesterday..
t
The output from ngspice looks like a really old version of nsgpice. You need at least
ngspice-36
.
@Tiago Silva, @Radheshyam Sharma ^^^ (not sure if both of you get automatically pinged from my post)
t
@Tim Edwards I updated to ngspice37, yet the error still persists. However, it now notes
No compatibility mode selected!
image.png
t
The "no compatibility mode selected" message just means that you didn't copy the
.spiceinit
file from the PDK's
spinit
file; it will cause the simulation to take a lot longer, and might cause issues if you used fingered devices. What values of
W
,
L
, and
nf
are in the nFET instances?
t
The values specified in the lab. If I remember correctly, it was L=0.18, W=3, nf=3 for the pFET, and L=0.18, W=4.5, nf=3 for the nFET. I'll try to copy the .spiceinit file again in case I messed up before.
I figured it out. For some reason Xschem is exporting the netlists to a different directory than the project directory, and I didn't have the .spiceinit file there.
👍 1
However, I am now faced with a new error:
s
@Tiago Silva your netlist doesn't have a net called "in". Try plotting vin