@@ -475,7 +475,8 @@ $(if $(5),$(5),$(RESULTS_DIR))/$(1)$(if $(4),$(4),.odb): $(2)
475475
476476.PHONY: do-$(1 )
477477do-$(1 ) :
478- ($(TIME_CMD ) $(OPENROAD_CMD ) $(SCRIPTS_DIR ) /$(3 ) .tcl -metrics $(LOG_DIR ) /$(1 ) .json) 2>&1 | tee $(LOG_DIR ) /$(1 ) .log
478+ ($(TIME_CMD ) $(OPENROAD_CMD ) $(SCRIPTS_DIR ) /$(3 ) .tcl -metrics $(LOG_DIR ) /$(1 ) .json) 2>&1 | tee $(LOG_DIR ) /$(1 ) .tmp.log
479+ mv $(LOG_DIR ) /$(1 ) .tmp.log $(LOG_DIR ) /$(1 ) .log
479480endef
480481
481482# generate make rules to copy a file, if a dependency change and
@@ -511,7 +512,7 @@ endif
511512
512513# STEP 3: Timing Driven Mixed Sized Placement
513514# -------------------------------------------------------------------------------
514- ifeq ($(MACRO_PLACEMENT ) ,)
515+ ifeq ($(MACRO_PLACEMENT )$( MACRO_PLACEMENT_TCL )$( RTLMP_FLOW ) ,)
515516$(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))
516517else
517518$(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)))
@@ -521,6 +522,8 @@ endif
521522# -------------------------------------------------------------------------------
522523$(eval $(call do-step,2_4_floorplan_macro,$(RESULTS_DIR)/2_3_floorplan_tdms.odb $(RESULTS_DIR)/1_synth.v $(RESULTS_DIR)/1_synth.sdc $(MACRO_PLACEMENT) $(MACRO_PLACEMENT_TCL),macro_place))
523524
525+ $(eval $(call do-step,2_floorplan_debug_macros,$(RESULTS_DIR)/2_1_floorplan.odb $(RESULTS_DIR)/1_synth.v $(MACRO_PLACEMENT) $(MACRO_PLACEMENT_TCL),floorplan_debug_macros))
526+
524527# STEP 5: Tapcell and Welltie insertion
525528# -------------------------------------------------------------------------------
526529$(eval $(call do-step,2_5_floorplan_tapcell,$(RESULTS_DIR)/2_4_floorplan_macro.odb $(TAPCELL_TCL),tapcell))
@@ -900,28 +903,41 @@ RESULTS_OAS = $(notdir $(sort $(wildcard $(RESULTS_DIR)/*.oas)))
900903$(foreach file,$(RESULTS_DEF ) $(RESULTS_GDS ) $(RESULTS_OAS ) ,klayout_$(file ) ) : klayout_% : $(OBJECTS_DIR ) /klayout.lyt
901904 $(KLAYOUT_CMD ) -nn $(OBJECTS_DIR ) /klayout.lyt $(RESULTS_DIR ) /$*
902905
903- .PHONY : gui_synth
904- gui_synth :
905- $(OPENROAD_GUI_CMD ) $(SCRIPTS_DIR ) /sta-synth.tcl
906-
907- .PHONY : gui_floorplan
908- gui_floorplan : gui_2_floorplan.odb
909- .PHONY : gui_place
910- gui_place : gui_3_place.odb
911- .PHONY : gui_cts
912- gui_cts : gui_4_cts.odb
913- .PHONY : gui_route
914- gui_route : gui_5_route.odb
915- .PHONY : gui_final
916- gui_final : gui_6_final.odb
917-
918- .PHONY : $(foreach file,$(RESULTS_DEF ) ,gui_$(file ) )
919- $(foreach file,$(RESULTS_DEF ) ,gui_$(file ) ) : gui_% :
920- DEF_FILE=$(RESULTS_DIR ) /$* $(OPENROAD_GUI_CMD ) $(SCRIPTS_DIR ) /gui.tcl
921-
922- .PHONY : $(foreach file,$(RESULTS_ODB ) ,gui_$(file ) )
923- $(foreach file,$(RESULTS_ODB ) ,gui_$(file ) ) : gui_% :
924- ODB_FILE=$(RESULTS_DIR ) /$* $(OPENROAD_GUI_CMD ) $(SCRIPTS_DIR ) /gui.tcl
906+ .PHONY : preview_macro_placement
907+
908+ ifneq ($(or $(MACRO_PLACEMENT ) ,$(MACRO_PLACEMENT_TCL ) ) ,)
909+ MACRO_PREVIEW_ODB = 2_floorplan_debug_macros.odb
910+ else
911+ MACRO_PREVIEW_ODB = 2_4_floorplan_macro.odb
912+ endif
913+
914+ preview_macro_placement :
915+ @$(UNSET_AND_MAKE ) $(RESULTS_DIR ) /$(MACRO_PREVIEW_ODB )
916+ @$(UNSET_AND_MAKE ) gui_$(MACRO_PREVIEW_ODB )
917+
918+ define OPEN_GUI_SHORTCUT
919+ .PHONY: gui_$(1 ) open_$(1 )
920+ gui_$(1 ) : gui_$(2 )
921+ open_$(1 ) : open_$(2 )
922+ endef
923+
924+ $(eval $(call OPEN_GUI_SHORTCUT,synth,))
925+ $(eval $(call OPEN_GUI_SHORTCUT,floorplan,2_floorplan.odb))
926+ $(eval $(call OPEN_GUI_SHORTCUT,place,3_place.odb))
927+ $(eval $(call OPEN_GUI_SHORTCUT,cts,4_cts.odb))
928+ $(eval $(call OPEN_GUI_SHORTCUT,route,5_route.odb))
929+ $(eval $(call OPEN_GUI_SHORTCUT,final,6_final.odb))
930+
931+ define OPEN_GUI
932+ .PHONY: $(1 ) _$(2 )
933+ $(1 ) _$(2 ) :
934+ $(3 ) =$(RESULTS_DIR ) /$(2 ) $(4 ) $(SCRIPTS_DIR ) /gui.tcl
935+ endef
936+
937+ $(foreach file,$(RESULTS_DEF),$(eval $(call OPEN_GUI,gui,$(file),DEF_FILE,$(OPENROAD_GUI_CMD))))
938+ $(foreach file,$(RESULTS_ODB),$(eval $(call OPEN_GUI,gui,$(file),ODB_FILE,$(OPENROAD_GUI_CMD))))
939+ $(foreach file,$(RESULTS_DEF),$(eval $(call OPEN_GUI,open,$(file),DEF_FILE,$(OPENROAD_NO_EXIT_CMD))))
940+ $(foreach file,$(RESULTS_ODB),$(eval $(call OPEN_GUI,open,$(file),ODB_FILE,$(OPENROAD_NO_EXIT_CMD))))
925941
926942# Write a def for the corresponding odb
927943$(foreach file,$(RESULTS_ODB ) ,$(file ) .def) : % .def:
0 commit comments