feat(precheck): IHP KLayout DRC

This commit is contained in:
Uri Shaked
2025-04-16 17:56:01 +03:00
parent fe543406d6
commit 0baf1ece4b
4 changed files with 1054 additions and 0 deletions
+10
View File
@@ -81,6 +81,7 @@ def klayout_drc(gds: str, check: str, script=f"{PDK_NAME}_mr.drc", extra_vars=[]
f"{check}=true",
f"input={gds}",
f"report={report_file}",
f"report_file={report_file}",
]
klayout_args = ["klayout", "-b", "-r", f"tech-files/{script}"]
for v in script_vars + extra_vars:
@@ -102,6 +103,10 @@ def klayout_zero_area(gds: str):
return klayout_drc(gds, "zero_area", "zeroarea.rb.drc")
def klayout_sg13g2(gds: str):
return klayout_drc(gds, "sg13g2", "sg13g2_mr.lydrc", extra_vars=[f"in_gds={gds}"])
def klayout_checks(gds: str, expected_name: str, tech: str):
layout = pya.Layout()
layout.read(gds)
@@ -355,6 +360,11 @@ def main():
"pin_label_purposes_overlapping_drawing.rb.drc",
),
},
{
"name": "KLayout SG13G2 DRC",
"check": lambda: klayout_sg13g2(gds_file),
"tech": "ihp-sg13g2",
},
{"name": "KLayout zero area", "check": lambda: klayout_zero_area(gds_file)},
{
"name": "KLayout Checks",
+1
View File
@@ -4,6 +4,7 @@ drc_offgrid.xml
drc_pin_label_purposes_overlapping_drawing.xml
drc_zero_area.xml
drc_nwell_urpm.xml
drc_sg13g2.xml
magic_drc.mag
magic_drc.txt
results.md
+6
View File
@@ -2,3 +2,9 @@ sky130A_mr.drc from https://github.com/efabless/mpw_precheck revision 3467a4c825
pin_label_purposes_overlapping_drawing.rb.drc from https://github.com/efabless/mpw_precheck revision f6b9c3d3f00694f96dce8444149449b4719180f0
zeroarea.rb.drc from https://github.com/efabless/mpw_precheck revision 4fd5283b124e931c9e71219f47270075176f84e2
nwell_urpm.drc from https://open-source-silicon.slack.com/archives/C05FW1VMY5A/p1729112262642699?thread_ts=1728921677.220509&cid=C05FW1VMY5A
sg13g2_mr.lydrc:
from https://github.com/IHP-GmbH/TO_Apr2025 revision 772a369f3ceabc2c6e1eba57d91ae755682c8323
with the following minimum density rules disabled:
- M1.j, M2.j, M3.j, M4.j, M5.j
- M1Fil.h, M2Fil.h, M3Fil.h, M4Fil.h, M5Fil.h
File diff suppressed because it is too large Load Diff