Chris
11/02/2022, 3:07 AMMitch Bailey
11/02/2022, 4:19 AMHarald Pretl
11/02/2022, 7:18 AMSKY130
PDK that there are poly resistors with pre-defined width. In all other PDKs I encountered the poly resistor W
and L
could be freely chosen, and the performance was reasonably well modelled.
I am not saying that having resistors (and corresponding layout templates and simulation models) with a discrete W
stepping is necessarily a bad thing, as it allows precise modeling, and the capturing of layout effects; It is just a bit unusual.Chris
11/02/2022, 7:35 PMChris
11/02/2022, 7:39 PMStefan Schippers
11/03/2022, 10:12 AMHarald Pretl
11/03/2022, 11:25 AMStefan Schippers
11/03/2022, 11:28 AM.subckt sky130_fd_pr__res_high_po r0 r1 b
+ w=1 l=1
.param mult = 1.0
+ rsheet = 317.3885
+ rbody_dw = -0.001
...
At bigger geometries resistance value gets closer to the rsheet value. see for example the simulated resistance of a W=1/L=10 resistor.Stefan Schippers
11/03/2022, 11:34 AMStefan Schippers
11/03/2022, 12:37 PMres_high_po*
. Use res_xhigh_po*
.Stefan Schippers
11/03/2022, 1:58 PMres_xhigh_*
are all wrappers using a common res_xhigh_po__base
subckt:
.subckt sky130_fd_pr__res_xhigh_po_1p41 r0 r1 b
.param w = 1.41 l = 5 mult = 1.0
Xsky130_fd_pr__res_xhigh_po_1p41 r0 r1 b sky130_fd_pr__res_xhigh_po__base w = {w} l = {l} mult = {mult}
.ends sky130_fd_pr__res_xhigh_po_1p41
if the res_xhigh_po__base
subckt fits well 0.35, 0.69, 1.41, 2.85, 5.73 widths i think it should fit all intermediate values. The discrete widths are probably the ones that have been characterized on silicon.
The xschem res_xhigh_po_xxxx
resistor symbols do not set the width when generating a netlist, since the W is fixed and defined in the subckt wrapper. For arbitrary W/L combinations res_xhigh_po
should be used.
That said, the generic res_xhigh_po
(that allows any W/L combinations) does not use the res_xhigh_po__base
subckt:
.subckt sky130_fd_pr__res_xhigh_po r0 r1 sub
+ w=1 l=1
.param mult = 1.0
+ rsheet = 2000.0
...
...
.ends sky130_fd_pr__res_xhigh_po
Tim Edwards
11/03/2022, 2:10 PMres_xhigh_po
device was added new to the s130 process and did not previously exist in s8 except as an experimental device right before SkyWater made the switch from s8 to s130. The state of the open PDK is a bit sketchy around some of the newly-introduced devices like the extra-high resistance poly resistor and the MiM caps.Harald Pretl
11/03/2022, 2:22 PMxschem
and the p-cells in magic
(but this causes issues with existing designs, but could be solved with a conversion script)
• Only support the generic poly res symbol going forward
• Make the generic poly res model use the base model that the fixed-W poly res have used
• Only have a generic poly res p-cell in magic
that supports W=0.35um … 6umChris
11/03/2022, 6:49 PMStefan Schippers
11/03/2022, 6:58 PMres_*
symbols in your pdk directory:
.../share/pdk/sky130A/libs.tech/xschem/sky130_fd_pr/
I suggest to do the update via open_pdks
. While editing the resistors i found a couple of issues, the local interconnect resistor was incorrectly called res_generic_li, while the correct name is res_generic_l1
, and also added res_generic_m5
that was missing.Chris
11/03/2022, 6:59 PMStefan Schippers
11/03/2022, 7:05 PMres_high_po_*
resistors, where total resistance is heavily influenced by many parameters and can not be easily calculated from L/W and sheet resistance only. If you see significant discrepancies or other issues please report. Thank you.Chris
11/03/2022, 7:07 PM