<@U01819B63HP> I tried simulating the 5v5 npn in x...
# xschem
l
@Stefan Schippers I tried simulating the 5v5 npn in xschem and it crashes with the following error:
Copy code
Netlist line no. 0:
Undefined parameter [dkisnpn1x2]
Netlist line no. 0:
 Expression err: 7.98e-018*dkisnpn1x2+mc_mm_switch*agauss(0,1.0,1)*(7.98e-018*dkisnpn1x2*0.0036/sqrt(mult))} subs=1 rb=885.61 re=15.0 irb=4.424e-005 rc=61.677 rbm=256.08 bf={37.54*dkbfnpn1x2+mc_mm_switch*agauss(0,1.0,1)*(37.75*dkbfnpn1x2*0.0465/sqrt(mult))} nf=1.0405 vaf=100 ikf=0.0011462 ise=5.77e-016 ne=1.7924 ns=1.0 br=1.0 ibc=0 iss=0 nr=0.96012 var=0 ikr=4.032e-008 nkf=0.5 isc=0.0 xtb=0 xti=1.0713 eg=1.188 gap1=0.0 gap2=0 ctc=0.0 cte=0 cts=0 tlev=0 tlevc=0.0 tvjc=0 tvje=0 tvjs=0.0 tis1=0 tise1=0 tisc1=0.0 tnf1=4.208e-005 tnr1=-0.000522 tne1=0 tnc1=0.0 tbf1=0.00776 tbr1=0 tiss1=0 tvaf1=0.0 tvar1=0 tikf1=-0.0074 tikr1=0 tns1=0.0 trb1=0 trc1=0 tre1=0 tirb1=0.0 trm1=0 tmjc1=0 tmje1=0 tmjs1=0.0 ttf1=0 titf1=0 ttr1=0 tis2=4.0e-12 tise2=0 tisc2=0 tnf2=-3.372e-007 tnr2=1.8e-6 tne2=0 tnc2=0 tbf2=6.48e-006 tbr2=0.0 tiss2=0 tvaf2=0 tvar2=0 tikf2=4.0e-5 tikr2=0 tns2=0 trb2=0 trc2=0.0 tre2=0 tirb2=0 trm2=0 tmjc2=0.0 tmje2=0 tmjs2=0 ttf2=0 titf2=0.0
Netlist line no. 0:
Cannot compute substitute
The circuit is based on the test_bipolar.sch - which seems to run fine with the PNP devices, but not with the NPNs. I just swapped the device and made the appropriate changes (swapped the direction of the emitter current source, etc)
t
Can you post a simple simulation netlist? I expect that the issue is within the "include" statements in sky130.lib.spice or one of the files downstream. The "1x2" in the parameter name implies that it goes with one of the fixed-layout NPN devices. The original PDK conversion to open source made a huge mess of the BJT devices, and it has been slow work writing patch scripts to fix it all in open_pdks.
l
There it is. Slack didn't warn me about this thread for some reason..
Copy code
** sch_path: /home/leonardo/proj_sky130/test_npn/schematic/test_npn.sch
**.subckt test_npn
XQ1 net2 net1 GND GND sky130_fd_pr__npn_05v5_w1p00l1p00
V1 net2 GND 3
.save i(v1)
I0 GND net1 1n
**** begin user architecture code



.op




.param mc_mm_switch=0
.param mc_pr_switch=0
.include /home/leonardo/pdk_files/open_pdks/sky130/sky130A/libs.tech/ngspice/corners/tt.spice
.include /home/leonardo/pdk_files/open_pdks/sky130/sky130A/libs.tech/ngspice/r+c/res_typical__cap_typical.spice
.include /home/leonardo/pdk_files/open_pdks/sky130/sky130A/libs.tech/ngspice/r+c/res_typical__cap_typical__lin.spice
.include /home/leonardo/pdk_files/open_pdks/sky130/sky130A/libs.tech/ngspice/corners/tt/specialized_cells.spice

**** end user architecture code
**.ends
.GLOBAL GND
.end
t
I can confirm the problem.
You can add:
Copy code
.param dkisnpn1x1=8.7913e-01
.param dkbfnpn1x1=9.8501e-01
.param dkisnpn1x2=9.0950e-01
.param dkbfnpn1x2=9.6759e-01
to your simulation netlist. It appears that the values should have appeared in
corners/<corner>/nonfet.spice
, which is where the corresponding PNP parameters are found. But they don't exist. I found them in the original SkyWater PDK. They got lost in the translation to the open PDK. Those are the values for typical corner. Let me know if you need values for another corner.
👍 1
l
I'll keep it in mind. Thank you again!
More issues have arisen...
Copy code
Warning: Model issue on line 0 :
  .model xq1:sky130_fd_pr__npn_05v5_w1p00l2p00__model npn level=1.0 tref=3 ...
unrecognized parameter (dcap) - ignored
unrecognized parameter (gap1) - ignored
unrecognized parameter (gap2) - ignored
Doing analysis at TEMP = 27.000000 and TNOM = 27.000000
And I can't display the transistor's nodes (aka, there's no option to plot model parameters, such as Vbe, Ic, etc)
s
yes the npn bipolars have some issues in sky130. To plot all device currents add
.option savecurrents
before running the analysis. Specific model parameters (like gm, vth, and so on) mus te saved explicitly, like for example:
Copy code
save @m.x1.xm5.msky130_fd_pr__nfet_01v8[gm]
save @m.x1.xm5.msky130_fd_pr__nfet_01v8[gds]
For details see chapter 31 of the ngspice user manual
👍 1