Hi <@U016EM8L91B>, I have few questions more regar...
# analog-design
n
Hi @Tim Edwards, I have few questions more regarding the caravan pad frame. The 18 analog pins in caravan wrapper which have ESD protection, how are the ESD diodes connected to power supply or ground? Are they using VDDA? And what is the maximum current specification of QFN pins of package provided by efabless? One more issue, I have extracted the netlist of GPIO pad from
sky130_ef_io__gpiov2_pad.mag
. Then fed the netlist to a GPIO pad symbol and tried simulating it for analog connect for ESD. I have used PAD_A_ESD_0_H as input and pad pin as output. I am getting following errors during simulation : see attachment. Can you please help me with the issue. I have attached the extracted netlist and test bench as well.
m
I wonder if this has anything to do with the
generic_po
devices being modeled as subcircuits in the combined models but as discrete models in the binned versions? magic extracts
generic_po
devices as discrete models. magic tech file
version 1.0.470-0-g6d4d117
Copy code
device resistor sky130_fd_pr__res_generic_po rmp *poly
 device resistor sky130_fd_pr__res_generic_po mrp1 *poly
libs.tech/combined/continuous/models_resistors.spice
Copy code
.subckt  sky130_fd_pr__res_generic_po r0 r1 mult=1
+
.param  w = 1 l = 0 r = 0 tc1 = {tc1rsgpu} tc2 = {tc2rsgpu}
+ r_tot = {sw_rp1*l/(w-1e6*(sw_polycd*4-poly_dw))+r}

Rsky130_fd_pr__res_generic_po r0 r1 r = {r_tot*(1+sw_mm_sky130_fd_pr__res_generic_po*mismatch_factor*MC_MM_SWITCH*AGAUSS(0,1.0,1)/sqrt(w*l*mult))}
+ tc1 = {tc1} tc2 = {tc2}


.ends sky130_fd_pr__res_generic_po
libs.tech/ngspice/sky130_fd_pr__model__r+c.model.spice
Copy code
.model sky130_fd_pr__res_generic_po       r tc1r=tc1rsgpu   tc2r=tc2rsgpu   rsh=rp1   dw="-tol_poly/2-poly_dw/2" tnom=30
@naina singhal For a quick and dirty possible solution, you might try putting an
X
at the beginning of the
generic_po
R
lines. This should work and create a
.bak
backup of the file just in case.
Copy code
sed -i.bak '/sky130_fd_pr__res_generic_po/s/^R/XR/' pad_flat.spice
n
@Mitch Bailey Thank you so much for your answer. I replaced R with XR but still have some issue. If I use ngspice models instead of combined models, the ESD transistors are not recognized. Please find the updated netlist as well.
message has been deleted
m
Looks like you might have changed all your
R
resistors to
X
devices.
Copy code
XR0 m2_12329_34611# a_12068_29431# sky130_fd_pr__res_generic_m2 w=0.65 l=10m
My suggestion was just to change the
generic_po
resistors to
X
devices. I don’t think there are subcircuit models for the
generic_m*
resistors in the combined models, so you should probably leave those as
R
devices.
n
Ok. Sorry for my mistake. The resistor issue is fixed but
esd_nfet_g5v0d10v5
transistors are not recognized as well.
message has been deleted
m
@naina singhal I’m not absolutely certain, but I think the only difference between the esd nfets and the corresponding non-esd nfets is a non mask recognition layers. As a temporary solution, you might try replacing
sky130_fr_pr__esd_nfet
with
sky130_fr_pr__nfet
. I think this problem should be reported though. Can you log an issue on https://github.com/RTimothyEdwards/open_pdks?