diff --git a/precheck/precheck.py b/precheck/precheck.py index 74e485c..ef7381f 100644 --- a/precheck/precheck.py +++ b/precheck/precheck.py @@ -95,10 +95,16 @@ def klayout_custom_drc( ) -def klayout_drc(gds: str, check: str, script=f"{PDK_NAME}_mr.drc", extra_vars=[]): +def klayout_drc( + gds: str, + check: str, + script=f"{PDK_NAME}_mr.drc", + script_dir="tech-files", + extra_vars=[], +): logging.info(f"Running klayout {check} on {gds}") if "/" not in script: - script = f"tech-files/{script}" + script = f"{script_dir}/{script}" script_vars = { check: "true", "input": gds, @@ -120,6 +126,15 @@ def klayout_sg13g2(gds: str): ) +def klayout_gf180mcuD_antenna(gds: str): + return klayout_drc( + gds, + "antenna", + "antenna.drc", + script_dir=f"{PDK_ROOT}/{PDK_NAME}/libs.tech/klayout/drc/rule_decks", + ) + + def klayout_checks(gds: str, expected_name: str, tech: str): layout = pya.Layout() layout.read(gds) @@ -461,6 +476,11 @@ def main(): "check": lambda: urpm_nwell_check(gds_file, top_module), "techs": ["sky130A"], }, + { + "name": "Antenna check", + "check": lambda: klayout_gf180mcuD_antenna(gds_file), + "techs": ["gf180mcuD"], + }, { "name": "Analog pin check", "check": lambda: analog_pin_check(