From e80e10658b817caed2e364cf09fb53c327c6760f Mon Sep 17 00:00:00 2001 From: Uri Shaked Date: Tue, 18 Nov 2025 13:27:53 +0200 Subject: [PATCH] feat(configure): add `--create-foundry-submission` option Replaces the old `--create-chipfoundry-submission` and `--create-ihp-submission` options, and will also be used for wafer.space submissions. Also include an .oas submission file in the foundry_submission directory (in addition to the existing gds submission file) --- configure.py | 17 ++++------------- shuttle.py | 9 +++++++-- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/configure.py b/configure.py index 0c93b2c..33ed2c1 100755 --- a/configure.py +++ b/configure.py @@ -229,14 +229,8 @@ if __name__ == "__main__": const=True, ) parser.add_argument( - "--create-chipfoundry-submission", - help="create ChipFoundry submission directory", - action="store_const", - const=True, - ) - parser.add_argument( - "--create-ihp-submission", - help="create IHP submission directory", + "--create-foundry-submission", + help="create foundry_submission directory with the final GDS/OAS files", action="store_const", const=True, ) @@ -332,11 +326,8 @@ if __name__ == "__main__": if args.copy_final_results: shuttle.copy_final_results() - if args.create_chipfoundry_submission: - shuttle.create_foundry_submission("chipfoundry", True) - - if args.create_ihp_submission: - shuttle.create_foundry_submission("ihp", False) + if args.create_foundry_submission: + shuttle.create_foundry_submission("foundry_submission") if args.update_image: docs.update_image() diff --git a/shuttle.py b/shuttle.py index 04cf7ac..2830e34 100644 --- a/shuttle.py +++ b/shuttle.py @@ -296,13 +296,14 @@ class ShuttleConfig: dirs_exist_ok=True, ) - def create_foundry_submission(self, foundry_name: str, copy_user_defines: bool): + def create_foundry_submission(self, foundry_name: str): logging.info(f"creating {foundry_name} submission directory:") target_dir = foundry_name lastrun = self.find_last_run("tt_top") copy_print("shuttle_index.md", f"{target_dir}/README.md") copy_print("shuttle_index.json", f"{target_dir}/shuttle_index.json") - if copy_user_defines: + if self.config["top_level_macro"] == "openframe_project_wrapper": + # Chipfoundry requires user_defines.v to be included copy_print( f"verilog/rtl/user_defines.v", f"{target_dir}/verilog/rtl/user_defines.v", @@ -319,3 +320,7 @@ class ShuttleConfig: f"{lastrun}/final/gds/{self.tt_top_macro}.gds", f"{target_dir}/gds/{self.tt_top_macro}.gds", ) + copy_print_convert( + f"{lastrun}/final/gds/{self.tt_top_macro}.gds", + f"{target_dir}/oas/{self.tt_top_macro}.oas", + )