@@ -469,6 +469,16 @@ do-$(1):
469469 ($(TIME_CMD ) $(OPENROAD_CMD ) $(SCRIPTS_DIR ) /$(3 ) .tcl -metrics $(LOG_DIR ) /$(1 ) .json) 2>&1 | tee $(LOG_DIR ) /$(1 ) .log
470470endef
471471
472+ define do-copy
473+ $(RESULTS_DIR ) /$(1 )$(if $(4 ) ,$(4 ) ,.odb) : $(RESULTS_DIR ) /$(2 ) $(3 )
474+ $$(UNSET_AND_MAKE ) do-$(1 )
475+
476+ .PHONY: do-$(1 )
477+ do-$(1 ) :
478+ cp $(RESULTS_DIR ) /$(2 ) $(RESULTS_DIR ) /$(1 )$(if $(4 ) ,$(4 ) ,.odb)
479+ endef
480+
481+
472482# STEP 1: Translate verilog to odb
473483# -------------------------------------------------------------------------------
474484$(eval $(call do-step,2_1_floorplan,$(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc $(TECH_LEF) $(SC_LEF) $(ADDITIONAL_LEFS) $(FOOTPRINT) $(SIG_MAP_FILE) $(FOOTPRINT_TCL),floorplan))
@@ -478,18 +488,15 @@ $(eval $(call do-step,2_1_floorplan,$(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_sy
478488ifndef IS_CHIP
479489$(eval $(call do-step,2_2_floorplan_io,$(RESULTS_DIR)/2_1_floorplan.odb $(IO_CONSTRAINTS),io_placement_random))
480490else
481- $(RESULTS_DIR ) /2_2_floorplan_io.odb : $(RESULTS_DIR ) /2_1_floorplan.odb $(IO_CONSTRAINTS )
482- cp $< $@
491+ $(eval $(call do-copy,2_2_floorplan_io,2_1_floorplan.odb,$(IO_CONSTRAINTS)))
483492endif
484493
485494# STEP 3: Timing Driven Mixed Sized Placement
486495# -------------------------------------------------------------------------------
487496ifeq ($(MACRO_PLACEMENT ) ,)
488497$(eval $(call do-step,2_3_floorplan_tdms,$(RESULTS_DIR)/2_2_floorplan_io.odb $(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc $(LIB_FILES),tdms_place))
489498else
490- $(RESULTS_DIR ) /2_3_floorplan_tdms.odb : $(RESULTS_DIR ) /2_2_floorplan_io.odb $(RESULTS_DIR ) /1_synth.v $(RESULTS_DIR ) /1_synth.sdc $(LIB_FILES )
491- $(info [INFO][FLOW] Using manual macro placement file $(MACRO_PLACEMENT ) )
492- cp $< $@
499+ $(eval $(call do-copy,2_3_floorplan_tdms,2_2_floorplan_io.odb,$(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc $(LIB_FILES)))
493500endif
494501
495502# STEP 4: Macro Placement
@@ -504,8 +511,7 @@ $(eval $(call do-step,2_5_floorplan_tapcell,$(RESULTS_DIR)/2_4_floorplan_macro.o
504511# -------------------------------------------------------------------------------
505512$(eval $(call do-step,2_6_floorplan_pdn,$(RESULTS_DIR)/2_5_floorplan_tapcell.odb $(PDN_TCL),pdn))
506513
507- $(RESULTS_DIR ) /2_floorplan.odb : $(RESULTS_DIR ) /2_6_floorplan_pdn.odb
508- cp $< $@
514+ $(eval $(call do-copy,2_floorplan,2_6_floorplan_pdn.odb,))
509515
510516$(RESULTS_DIR ) /2_floorplan.sdc : $(RESULTS_DIR ) /2_1_floorplan.odb
511517
0 commit comments