@@ -376,12 +376,8 @@ $(OBJECTS_DIR)/lib/merged.lib:
376376# Pre-process KLayout tech
377377# ==============================================================================
378378$(OBJECTS_DIR ) /klayout_tech.lef : $(TECH_LEF )
379- $(UNSET_AND_MAKE ) do-klayout_tech
380-
381- .PHONY : do-klayout_tech
382- do-klayout_tech :
383379 @mkdir -p $(OBJECTS_DIR )
384- cp $( TECH_LEF ) $( OBJECTS_DIR ) /klayout_tech.lef
380+ cp $< $@
385381
386382KLAYOUT_ENV_VAR_IN_PATH_VERSION = 0.28.11
387383KLAYOUT_VERSION = $(shell $(KLAYOUT_CMD ) -v 2>/dev/null | grep 'KLayout' | cut -d ' ' -f2)
@@ -396,29 +392,21 @@ KLAYOUT_ENV_VAR_IN_PATH = $(shell \
396392 fi)
397393
398394$(OBJECTS_DIR ) /klayout.lyt : $(KLAYOUT_TECH_FILE ) $(OBJECTS_DIR ) /klayout_tech.lef
399- $(UNSET_AND_MAKE ) do-klayout
400-
401- .PHONY : do-klayout
402- do-klayout :
403395ifeq ($(KLAYOUT_ENV_VAR_IN_PATH ) ,valid)
404396 SC_LEF_RELATIVE_PATH="$$\(env('FLOW_HOME')\)/$(shell realpath --relative-to=$(FLOW_HOME) $(SC_LEF))"; \
405397 OTHER_LEFS_RELATIVE_PATHS=$$(echo "$(foreach file, $(OBJECTS_DIR)/klayout_tech.lef $(ADDITIONAL_LEFS),<lef-files>$$(realpath --relative-to=$(RESULTS_DIR) $(file))</lef-files>)"); \
406- sed 's,<lef-files>.*</lef-files>,<lef-files>'"$$SC_LEF_RELATIVE_PATH"'</lef-files>'"$$OTHER_LEFS_RELATIVE_PATHS"',g' $(KLAYOUT_TECH_FILE) > $(OBJECTS_DIR)/klayout.lyt
398+ sed 's,<lef-files>.*</lef-files>,<lef-files>'"$$SC_LEF_RELATIVE_PATH"'</lef-files>'"$$OTHER_LEFS_RELATIVE_PATHS"',g' $< > $@
407399else
408- sed 's,<lef-files>.*</lef-files>,$(foreach file, $(OBJECTS_DIR)/klayout_tech.lef $(SC_LEF) $(ADDITIONAL_LEFS),<lef-files>$(shell realpath --relative-to=$(RESULTS_DIR) $(file))</lef-files>),g' $(KLAYOUT_TECH_FILE) > $(OBJECTS_DIR)/klayout.lyt
400+ sed 's,<lef-files>.*</lef-files>,$(foreach file, $(OBJECTS_DIR)/klayout_tech.lef $(SC_LEF) $(ADDITIONAL_LEFS),<lef-files>$(shell realpath --relative-to=$(RESULTS_DIR) $(file))</lef-files>),g' $< > $@
409401endif
410402
411403$(OBJECTS_DIR ) /klayout_wrap.lyt : $(KLAYOUT_TECH_FILE ) $(OBJECTS_DIR ) /klayout_tech.lef
412- $(UNSET_AND_MAKE ) do-klayout_wrap
413-
414- .PHONY : do-klayout_wrap
415- do-klayout_wrap :
416- sed ' s,<lef-files>.*</lef-files>,$(foreach file, $(OBJECTS_DIR)/klayout_tech.lef $(WRAP_LEFS),<lef-files>$(shell realpath --relative-to=$(OBJECTS_DIR)/def $(file))</lef-files>),g' $(KLAYOUT_TECH_FILE ) > $(OBJECTS_DIR ) /klayout_wrap.lyt
417-
404+ sed ' s,<lef-files>.*</lef-files>,$(foreach file, $(OBJECTS_DIR)/klayout_tech.lef $(WRAP_LEFS),<lef-files>$(shell realpath --relative-to=$(OBJECTS_DIR)/def $(file))</lef-files>),g' $< > $@
418405# Create Macro wrappers (if necessary)
419406# ==============================================================================
420407WRAP_CFG = $(PLATFORM_DIR ) /wrapper.cfg
421408
409+
422410export TCLLIBPATH := util/cell-veneer $(TCLLIBPATH )
423411$(WRAPPED_LEFS ) :
424412 mkdir -p $(OBJECTS_DIR ) /lef $(OBJECTS_DIR ) /def
@@ -598,7 +586,7 @@ $(RESULTS_DIR)/2_floorplan.sdc: $(RESULTS_DIR)/2_1_floorplan.odb
598586
599587.PHONY : do-floorplan
600588do-floorplan :
601- mkdir -p $(RESULTS_DIR ) $( LOG_DIR ) $(REPORTS_DIR )
589+ mkdir -p $(LOG_DIR ) $(REPORTS_DIR )
602590 $(UNSET_AND_MAKE ) do-2_1_floorplan do-2_2_floorplan_io do-2_3_floorplan_tdms do-2_4_floorplan_macro do-2_5_floorplan_tapcell do-2_6_floorplan_pdn do-2_floorplan
603591
604592.PHONY : clean_floorplan
@@ -652,7 +640,7 @@ $(eval $(call do-copy,3_place,2_floorplan.sdc,,.sdc))
652640
653641.PHONY : do-place
654642do-place :
655- mkdir -p $(RESULTS_DIR ) $( LOG_DIR ) $(REPORTS_DIR )
643+ mkdir -p $(LOG_DIR ) $(REPORTS_DIR )
656644 $(UNSET_AND_MAKE ) do-3_1_place_gp_skip_io do-3_2_place_iop do-3_3_place_gp do-3_4_place_resized do-3_5_place_dp do-3_place do-3_place.sdc
657645
658646# Clean Targets
@@ -732,7 +720,7 @@ $(eval $(call do-copy,5_route,4_cts.sdc,,.sdc))
732720
733721.PHONY : do-route
734722do-route :
735- mkdir -p $(RESULTS_DIR ) $( LOG_DIR ) $(REPORTS_DIR )
723+ mkdir -p $(LOG_DIR ) $(REPORTS_DIR )
736724 $(UNSET_AND_MAKE ) do-5_1_grt do-5_2_route do-5_route do-5_route.sdc
737725
738726$(RESULTS_DIR ) /5_route.v :
@@ -800,10 +788,11 @@ $(eval $(call do-step,6_report,$(RESULTS_DIR)/6_1_fill.odb $(RESULTS_DIR)/6_1_fi
800788
801789$(RESULTS_DIR ) /6_final.def : $(LOG_DIR ) /6_report.log
802790
791+ # NOTE! No GDS file for now
803792.PHONY : do-finish
804793do-finish :
805- mkdir -p $(RESULTS_DIR ) $( LOG_DIR ) $(REPORTS_DIR )
806- $(UNSET_AND_MAKE ) do-6_1_fill do-6_1_fill.sdc do-6_final.sdc do-6_report do-gds elapsed
794+ mkdir -p $(LOG_DIR ) $(REPORTS_DIR )
795+ $(UNSET_AND_MAKE ) do-6_1_fill do-6_1_fill.sdc do-6_final.sdc do-6_report elapsed
807796
808797.PHONY : skip_place
809798skip_place : $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /2_floorplan.sdc
@@ -860,51 +849,34 @@ clean_abstract:
860849# Merge wrapped macros using Klayout
861850# -------------------------------------------------------------------------------
862851$(WRAPPED_GDSOAS ) : $(OBJECTS_DIR ) /klayout_wrap.lyt $(WRAPPED_LEFS )
863- $(UNSET_AND_MAKE ) do-wrapped-gdsoas
864-
865- .PHONY : do-wrapped-gdsoas
866- do-wrapped-gdsoas :
867- ifeq ($(WRAPPED_GDSOAS ) ,)
868- @echo "Skipping wrapped GDSOA generation"
869- else
870852 $(call KLAYOUT_FOUND)
871- ($(TIME_CMD) $(KLAYOUT_CMD) -zz -rd design_name=$(basename $(notdir $(WRAPPED_GDSOAS) )) \
872- -rd in_def=$(OBJECTS_DIR)/def/$(notdir $(WRAPPED_GDSOAS :$(STREAM_SYSTEM_EXT)=def)) \
853+ ($( TIME_CMD) $( KLAYOUT_CMD) -zz -rd design_name=$( basename $( notdir $@ ) ) \
854+ -rd in_def=$(OBJECTS_DIR ) /def/$(notdir $(@ :$(STREAM_SYSTEM_EXT ) =def ) ) \
873855 -rd in_files=" $( ADDITIONAL_GDSOAS) " \
874856 -rd config_file=$(FILL_CONFIG ) \
875857 -rd seal_file=" " \
876- -rd out_file=$(WRAPPED_GDSOAS) \
858+ -rd out_file=$@ \
877859 -rd tech_file=$(OBJECTS_DIR ) /klayout_wrap.lyt \
878860 -rd layer_map=$(GDS_LAYER_MAP ) \
879- -r $(UTILS_DIR)/def2stream.py) 2>&1 | tee $(LOG_DIR)/6_merge_$(basename $(notdir $(WRAPPED_GDSOAS))).log
880- endif
861+ -r $(UTILS_DIR ) /def2stream.py) 2>&1 | tee $(LOG_DIR ) /6_merge_$(basename $(notdir $@ ) ) .log
881862
882863# Merge GDS using Klayout
883864# -------------------------------------------------------------------------------
884865GDS_MERGED_FILE = $(RESULTS_DIR ) /6_1_merged.$(STREAM_SYSTEM_EXT )
885866$(GDS_MERGED_FILE ) : $(RESULTS_DIR ) /6_final.def $(OBJECTS_DIR ) /klayout.lyt $(GDSOAS_FILES ) $(WRAPPED_GDSOAS ) $(SEAL_GDSOAS )
886- $(UNSET_AND_MAKE ) do-gds-merged
887-
888- .PHONY : do-gds-merged
889- do-gds-merged :
890867 $(call KLAYOUT_FOUND)
891868 ($( TIME_CMD) $( STDBUF_CMD) $( KLAYOUT_CMD) -zz -rd design_name=$( DESIGN_NAME) \
892- -rd in_def=$( RESULTS_DIR ) /6_final.def \
869+ -rd in_def=$< \
893870 -rd in_files=" $( GDSOAS_FILES) $( WRAPPED_GDSOAS) " \
894871 -rd config_file=$(FILL_CONFIG ) \
895872 -rd seal_file=" $( SEAL_GDSOAS) " \
896- -rd out_file=$( GDS_MERGED_FILE ) \
873+ -rd out_file=$@ \
897874 -rd tech_file=$(OBJECTS_DIR ) /klayout.lyt \
898875 -rd layer_map=$(GDS_LAYER_MAP ) \
899876 -r $(UTILS_DIR ) /def2stream.py) 2>&1 | tee $(LOG_DIR ) /6_1_merge.log
900877
901878$(RESULTS_DIR ) /6_final.v : $(LOG_DIR ) /6_report.log
902879
903- .PHONY : do-gds
904- do-gds :
905- $(UNSET_AND_MAKE ) do-klayout_tech do-klayout do-klayout_wrap do-wrapped-gdsoas do-gds-merged
906- cp $(GDS_MERGED_FILE ) $(GDS_FINAL_FILE )
907-
908880$(GDS_FINAL_FILE ) : $(GDS_MERGED_FILE )
909881 cp $< $@
910882
0 commit comments