Mitch Bailey
11/05/2021, 8:24 AMwidth v4/m4 1180 "via4 width < %d (via4.1 + 2 * via4.4)"
spacing v4 v4 420 touching_ok "via4 spacing < %d (via4.2 - 2 * via4.4)"
surround v4/m5 *m5,rm5 120 absence_illegal \
"Metal5 overlap of via4 < %d (met5.3 - via4.4)"
exact_overlap v4/m4
it appears that the spacing is set at 0.42um. Is my understanding correct?
Is v4 width inside m4 1.18um minimum? I believe the PDK has 0.8um for both width and spacing.
https://skywater-pdk.readthedocs.io/en/latest/rules/periphery.html#via4
So if that's the case, I'm wondering why the v4 errors are not being flagged in magic. Does it have something to do with the way magic handles via as an area, rather than individual cuts?
Or is it because v4 rules require the METAL5 environment variable definition? How do you ensure that magic is using the METAL5 version of the rules for caravel?Tim Edwards
11/05/2021, 2:26 PMsquares-grid 190 800 800
. So the effective distance is 0.42 + 0.19 + 0.19 = 0.8.
So the problem here is that when magic automatically creates layers like implants and contact cuts, it doesn't care what the actual GDS it read in is doing, because it will write out correct GDS according to its own rules. So if you want to use magic to run DRC on some unknown GDS created from another tool, then you really need to create a different tech file for magic that captures implant layers and contact cuts exactly so that it can run a proper DRC check on them. There is such a tech file I wrote for magic, which is sky130A-GDS.tech, although I only added DRC rules for the implant layers (HVI, HVTP, NSDM, etc.) and not for contact cuts. Since there is a klayout DRC deck that works well, however, it seemed like the better solution was just to complete development of the klayout DRC deck and use klayout for complete DRC checks.Mitch Bailey
11/05/2021, 4:27 PMTim Edwards
11/06/2021, 3:02 AMMitch Bailey
11/06/2021, 3:59 AMMohammad Khalique Khan
11/06/2021, 12:47 PMMitch Bailey
11/06/2021, 1:32 PMgds/user_project_wrapper.gds
with the modified file and try the precheck again.