<https://github.com/google/skywater-pdk-libs-sky13...
# xschem
h
@Amro Tork
Looks like it's missing the s parameter of subckt
a
May be.
I'm not sure. I need to dig deeper.
Please share your netlist.
h
** sch_path: /home/hugodg/projects-sky130/temp-sensor/bandgap-ref/xschem/temp-tb-full.sch **.subckt temp-tb-full VDD vd GND 1.8 XMP1 net2 net2 vd vd sky130_fd_pr__pfet_01v8 L=2 W=10 nf=1 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 XMN1 net2 net1 net3 net3 sky130_fd_pr__nfet_01v8 L=2 W=10 nf=1 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 XR1 GND vr GND sky130_fd_pr__res_xhigh_po_0p35 L=15.5 mult=1 m=1 XMP2 net1 net2 vd vd sky130_fd_pr__pfet_01v8 L=2 W=10 nf=1 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 XMP3 net4 net2 vd vd sky130_fd_pr__pfet_01v8 L=2 W=15 nf=1 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 XMP4 vr net2 vd vd sky130_fd_pr__pfet_01v8 L=2 W=20 nf=1 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 XMN2 net1 net1 GND GND sky130_fd_pr__nfet_01v8 L=2 W=20 nf=1 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 XR2 vr net4 GND sky130_fd_pr__res_xhigh_po_0p35 L=21.9 mult=1 m=1 XR3 GND net3 GND sky130_fd_pr__res_xhigh_po_0p35 L=1.4 mult=1 m=1 XQ1 GND GND net4 sky130_fd_pr__pnp_05v5_W3p40L3p40 m=1 ** begin user architecture code .dc temp -50 100 1 .control run set color0=white set color1=black let idd=-i(vdd) let tc=deriv(vr) plot vr plot tc .endc .lib /home/hugodg/sky130_workspace/skywater-pdk/libraries/sky130_fd_pr/latest/models/sky130.lib.spice tt .lib /home/hugodg/sky130_workspace/skywater-pdk/libraries/sky130_fd_pr/latest/models/sky130_fd_pr__model__pnp.model.spice *.include /home/hugodg/sky130_workspace/skywater-pdk/libraries/sky130_fd_pr/latest/models/corners/tt.spice *.include /home/hugodg/sky130_workspace/skywater-pdk/libraries/sky130_fd_pr/latest/models/sky130_fd_pr__model__pnp.model.spice ** end user architecture code **.ends .GLOBAL GND .end
There is just one pnp transitor, the others devices are nmos, pmos and resistors.
from your library.
h
@Amro Tork
a
@Hugo Dias please use .include not .lib to add this file.
h
Same problem 😕
a
I did my best without having access.
But some else might try to help.
h
I guess missing the s parameter, but i don't know to fix it on xschem
Do you know how to write manually in device?
a
I'll add .option scale=1.0e-6
But you might need to look up that error in ngspice code base.
👍 1
h
Anyway, thanks for try to help
s
@Hugo Dias the pnp model as provided by open_pdks has the 4th substrate node removed:
.subckt  sky130_fd_pr__pnp_05v5_W3p40L3p40 Collector Base Emitter
My suggestion is to use the spice models as installed by open_pdks. @Tim Edwards has done a lot of work to fix these models from the original skywater-pdk.
t
@Hugo Dias: I agree completely with Stefan. There were major issues with the PNP layouts from SkyWater and I had to complete redo them and then rework all the model files to match. There are I think five separate patches in the open_pdks Makefile just to fix the PNP device and models.
r
i used npn/pnp from open-pdks and no such issue comes in simulation....