Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sky130 gpio LVS: Resistor recognition layers on parent hierarchy ignored. #422

Open
d-m-bailey opened this issue Dec 16, 2023 · 0 comments

Comments

@d-m-bailey
Copy link
Contributor

d-m-bailey commented Dec 16, 2023

In the sky130_fd_io library, the top_gpiov2 layout contains a cell, the res250only_small, that has resistor definition layers on li1 67/15, poly 66/13, and met1 68/15, but no actual mask layers. magic only recognizes devices if all the relevant layers are on the same hierarchy level.

If the underling cell, res250_sub_small is flattened, the resistor devices are recognized. If it is not flattened, the resistors are ignored.

Currently, the corresponding spice netlist has these resistors commented out.

.SUBCKT sky130_fd_io__res250only_small PAD ROUT
*.PININFO PAD:B ROUT:B

* NOTE: Removed all but the primary resistor;  the other devices do not
* show up in the layout.
*
* RI175 net12 net16 sky130_fd_pr__res_generic_po W=2 L=10.07 m=1
* RI229 net16 ROUT sky130_fd_pr__res_generic_po W=2 L=0.17 m=1
* RI228 PAD net12 sky130_fd_pr__res_generic_po W=2 L=0.17 m=1
* RI237<1> net16 ROUT short 
* RI237<2> net16 ROUT short
* RI234<1> PAD net12 short
* RI234<2> PAD net12 short

RI175 PAD ROUT sky130_fd_pr__res_generic_po W=2 L=10.07 m=1
.ENDS sky130_fd_io__res250only_small

Flattening res250_sub_small, extracts a netlist equivalent to

.SUBCKT sky130_fd_io__res250only_small PAD ROUT
*.PININFO PAD:B ROUT:B

* NOTE: Removed all but the primary resistor;  the other devices do not
* show up in the layout.
*
R0 PAD PAD sky130_fd_pr__res_generic_l1 w=0.27 l=0.005
R9 PAD PAD sky130_fd_pr__res_generic_l1 w=0.23 l=0.005
R5 PAD PAD sky130_fd_pr__res_generic_m1 w=2.01 l=0.01
R3 PAD PAD sky130_fd_pr__res_generic_po w=0.34 l=0.085
R7 PAD PAD sky130_fd_pr__res_generic_po w=0.3 l=0.085
R1 ROUT ROUT sky130_fd_pr__res_generic_l1 w=0.23 l=0.005
R10 ROUT ROUT sky130_fd_pr__res_generic_l1 w=0.27 l=0.005
R6 ROUT ROUT sky130_fd_pr__res_generic_m1 w=2.01 l=0.01
R4 ROUT ROUT sky130_fd_pr__res_generic_po w=0.34 l=0.085
R8 ROUT ROUT sky130_fd_pr__res_generic_po w=0.3 l=0.085

R2 PAD ROUT sky130_fd_pr__res_generic_po w=2 l=10.07
.ENDS sky130_fd_io__res250only_small

Note the unexpected dimensions on the li1 and poly resistors.

To duplicate, flatglob res250_sub_small when reading the gds file before extraction.

Open pdks 78b7bc32ddb4b6f14f76883c2e2dc5b5de9d1cbc
magic 8.3.442

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant