I'm curious what resistor models people have used ...
# chipalooza
t
I'm curious what resistor models people have used that have passed LVS? I've tried the res_generic_po, but that had some issues, and I just tried the res_generic_nd__hv, but there is no corresponding high voltage model for xschem that I can find, I can only seem to find the high voltage model in the layout. Is it safe to use the normal n-diffusion resistor on 5V designs? (I would guess not.)
b
I used the P- poly resistor from the PDK throughout:
sky130_fd_pr__res_xhigh_po_0p35
. I needed the higher resistance per square and was not too concerned about worse matching at the narrow width. The model tolerates 0 to 5V across the resistor, preferably with current densities under 100 uA/um (max is 500 uA/um).
1
t
The
res_generic_nd__hv
can be used if you just take the
res_generic_nd
resistor and add
__hv
to the device name in xschem. That's what I like about xschem; a quick fix to a missing device is one string edit away.
However, if you use a diffusion resistor, you need to be aware that unlike poly resistors, diffusion resistors leak, and you have to be very careful not to forward-bias a diffusion resistor to the well or substrate underneath, which is just a p-n junction.
I'd like to know what issues you had with
res_generic_po
, which should have worked and is generally better to use than a diffusion resistor. (Diffusion resistors are most commonly used as ESD devices.)
t
I was able to use the poly resistors with fixed width like Brady suggested, and I was able to find the xschem models and the layout models that matched. No problems with LVS. With the
res_generic_po
, I was able to find an xschem model and a layout model, but when I ran LVS it would not associate the ports, it listed all four ports (2 from schem, 2 from layout), with 'no matching' between them. I did end up having a separate LVS wiring error in addition to the resistor stuff, so I'm not sure if that was causing it. I didn't save the LVS logs though so I can't post the exact error without swapping resistors again and recreating the case, which I would not like to do.
t
There was probably an issue with the device model being changed from just a resistor model definition ("R" type component) in the discrete models but a subcircuit ("X" type component) in the continuous (combined) models. I may have missed that one when attempting to keep the continuous models backwards-compatible with the discrete models.
Which would then make the solution just a matter of editing the component in xschem and changing the prefix from "R" to "X" (assuming I understand the use case correctly).