Hi everyone, we have few questions on resistors. 1. We've drawn a layout in magic including poly res...
e
Hi everyone, we have few questions on resistors. 1. We've drawn a layout in magic including poly resistors, and now we are trying to simulate (using the output from Xschem). The
sky130_fd_pr_res_generic_po
(ie Normal N+ polysilicon resistor) is present as a device in the Xschem PDK, however, someone has put an asterisk in front of the model line in the .lib to disable it, which means we are getting errors trying to simulate it in NGspice. Even when we remove the asterisk, we are still getting some errors. It appears that this resistor is an approved SkyWater device, so is there any reason why its been commented out of the .lib file in this way? 2. @Tim Edwards while searching for an answer to the above question, I came across your comment that the
res_xhigh_po
is not an "approved" SkyWater device, however I hadn't realised this, and I've drawn a few into our layout. Should I be replacing these with "approved" devices prior to Tapeout?
m
The
res_generic_po
is used in the tie high/low cells (
conb_1
). It’s more of a symbolic layer used to separate nodes for LVS rather than an actual simulatable device, I think. The
res_xhigh_po
devices have models for discrete widths. For example,
res_xhigh_po_0p69
. In xschem, you only specify the length. The generic width version,
res_xhigh_po
is what Tim is saying is not supported, I believe.
t
@Ellen Wood: What PDK are you using? The officially recognized PDK is the one at https://github.com/efabless/sky130-pdk-libs-sky130_fd_pr and the error with the commented-out device model has been fixed, as have several hundred other errors that exist in the Google version of the repository. Prior to folding all of those corrections into the Efabless version of the repository, the
open_pdks
install process would make these corrections before installing the device models.
@Ellen Wood: I'm not sure where I made that statement or when. It may be in reference to the fact that there are actually only five widths of resistors that are characterized (0.35um, 0.69um, 1.41um, and two others I don't remember off the top of my head) because they correspond to dimensions that exactly fit one to five contacts at the minimum DRC rules. These widths have specific model names associated with them, like
sky130_fd_pr__res_xhigh_po_1p69
. Each of these device models just calls a base model
sky130_fd_pr__res_xhigh_po
but SkyWater does not officially recognize the base model as being valid for any device width, just the five characterized widths. The same is true of
res_high_po
except that there is no base model, just five individual models for the five approved widths. That said, though, unless you have very tight constraints on the value of the resistor, then I wouldn't worry about it even if the width doesn't match one of the five characterized widths; the model should be reasonably correct. I have used the
res_xhigh_po
device (with an approved width) for the power-on-reset circuit on the caravel chip, and it works as expected.
e
Thanks both - point 1. John asked me to post here, as hes doing all the spice, and he probably has the wrong PDK version, as I'm certain mine is up to date.
So we will check that again and see
https://open-source-silicon.slack.com/archives/C016YSAP6TZ/p1683599797796039?thread_ts=1683578247.487499&cid=C016YSAP6TZ Here is your comment I'd found from a few months ago! Thanks for the information - John is sifting through all the resistor models now so I'll share this with him 🙂