@@ -311,6 +311,7 @@ $(1) $(2) &: $(3)
311311endef
312312
313313# Targets to harden Blocks in case of hierarchical flow is triggered
314+ .PHONY : build_macros
314315build_macros : $(BLOCK_LEFS ) $(BLOCK_LIBS )
315316
316317$(foreach block,$(BLOCKS),$(eval $(call GENERATE_ABSTRACT_RULE,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef,./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lib,./designs/$(PLATFORM)/$(DESIGN_NICKNAME)/${block}/config.mk)))
@@ -416,6 +417,7 @@ clean_synth:
416417# | _| | |__| |_| | |_| | _ <| __/| |___ / ___ \| |\ |
417418# |_| |_____\___/ \___/|_| \_\_| |_____/_/ \_\_| \_|
418419#
420+ .PHONY : floorplan
419421floorplan : $(RESULTS_DIR ) /2_floorplan.odb \
420422 $(RESULTS_DIR)/2_floorplan.sdc
421423# ==============================================================================
@@ -473,6 +475,7 @@ $(RESULTS_DIR)/2_floorplan.odb: $(RESULTS_DIR)/2_6_floorplan_pdn.odb
473475$(RESULTS_DIR ) /2_floorplan.sdc : $(RESULTS_DIR ) /2_1_floorplan.odb
474476
475477
478+ .PHONY : clean_floorplan
476479clean_floorplan :
477480 rm -f $(RESULTS_DIR ) /2_* floorplan* .odb $(RESULTS_DIR ) /2_floorplan.sdc $(RESULTS_DIR ) /2_* .v $(RESULTS_DIR ) /2_* .def
478481 rm -f $(REPORTS_DIR ) /2_*
@@ -485,6 +488,7 @@ clean_floorplan:
485488# | __/| |___ / ___ \ |___| |___
486489# |_| |_____/_/ \_\____|_____|
487490#
491+ .PHONY : place
488492place : $(RESULTS_DIR ) /3_place.odb \
489493 $(RESULTS_DIR)/3_place.sdc
490494# ==============================================================================
@@ -512,6 +516,7 @@ $(RESULTS_DIR)/3_3_place_gp.odb: $(RESULTS_DIR)/3_2_place_iop.odb $(RESULTS_DIR)
512516$(RESULTS_DIR ) /3_4_place_resized.odb : $(RESULTS_DIR ) /3_3_place_gp.odb $(RESULTS_DIR ) /2_floorplan.sdc
513517 ($( TIME_CMD) $( OPENROAD_CMD) $( SCRIPTS_DIR) /resize.tcl -metrics $( LOG_DIR) /3_4_resizer.json) 2>&1 | tee $(LOG_DIR ) /3_4_resizer.log
514518
519+ .PHONY : clean_resize
515520clean_resize :
516521 rm -f $(RESULTS_DIR ) /3_4_place_resized.odb
517522
@@ -528,6 +533,7 @@ $(RESULTS_DIR)/3_place.sdc: $(RESULTS_DIR)/2_floorplan.sdc
528533
529534# Clean Targets
530535# -------------------------------------------------------------------------------
536+ .PHONY : clean_place
531537clean_place :
532538 rm -f $(RESULTS_DIR ) /3_* place* .odb
533539 rm -f $(RESULTS_DIR ) /3_place.sdc
@@ -543,6 +549,7 @@ clean_place:
543549# | |___ | | ___) |
544550# \____| |_| |____/
545551#
552+ .PHONY : cts
546553cts : $(RESULTS_DIR ) /4_cts.odb \
547554 $(RESULTS_DIR)/4_cts.sdc
548555# ==============================================================================
@@ -562,6 +569,7 @@ $(RESULTS_DIR)/4_cts.sdc: $(RESULTS_DIR)/4_cts.odb
562569$(RESULTS_DIR ) /4_cts.odb : $(RESULTS_DIR ) /4_2_cts_fillcell.odb
563570 cp $< $@
564571
572+ .PHONY : clean_cts
565573clean_cts :
566574 rm -rf $(RESULTS_DIR ) /4_* cts* .odb $(RESULTS_DIR ) /4_cts.sdc $(RESULTS_DIR ) /4_* .v $(RESULTS_DIR ) /4_* .def
567575 rm -f $(REPORTS_DIR ) /4_*
@@ -575,6 +583,7 @@ clean_cts:
575583# | _ <| |_| | |_| | | | | || |\ | |_| |
576584# |_| \_\\___/ \___/ |_| |___|_| \_|\____|
577585#
586+ .PHONY : route
578587route : $(RESULTS_DIR ) /5_route.odb \
579588 $(RESULTS_DIR)/5_route.sdc
580589# ==============================================================================
@@ -605,6 +614,7 @@ $(RESULTS_DIR)/5_route.v:
605614 @export OR_DB=5_route ; \
606615 $(OPENROAD_CMD ) ./scripts/write_verilog.tcl
607616
617+ .PHONY : clean_route
608618clean_route :
609619 rm -rf output* / results* .out.dmp layer_* .mps
610620 rm -rf * .gdid * .log * .met * .sav * .res.dmp
@@ -613,13 +623,15 @@ clean_route:
613623 rm -f $(REPORTS_DIR ) /5_*
614624 rm -f $(LOG_DIR ) /5_*
615625
626+ .PHONY : klayout_tr_rpt
616627klayout_tr_rpt : $(RESULTS_DIR ) /5_route.def $(OBJECTS_DIR ) /klayout.lyt
617628 $(call KLAYOUT_FOUND)
618629 $(KLAYOUT_CMD ) -rd in_drc=" $( REPORTS_DIR) /5_route_drc.rpt" \
619630 -rd in_def=" $<" \
620631 -rd tech_file=$(OBJECTS_DIR ) /klayout.lyt \
621632 -rm $(UTILS_DIR ) /viewDrc.py
622633
634+ .PHONY : klayout_guides
623635klayout_guides : $(RESULTS_DIR ) /5_route.def $(OBJECTS_DIR ) /klayout.lyt
624636 $(call KLAYOUT_FOUND)
625637 $(KLAYOUT_CMD ) -rd in_guide=" $( RESULTS_DIR) /route.guide" \
@@ -636,6 +648,7 @@ klayout_guides: $(RESULTS_DIR)/5_route.def $(OBJECTS_DIR)/klayout.lyt
636648# |_| |___|_| \_|___|____/|_| |_|___|_| \_|\____|
637649#
638650GDS_FINAL_FILE = $(RESULTS_DIR ) /6_final.$(STREAM_SYSTEM_EXT )
651+ .PHONY : finish
639652finish : $(LOG_DIR ) /6_report.log \
640653 $(RESULTS_DIR)/6_final.v \
641654 $(RESULTS_DIR)/6_final.sdc \
@@ -665,6 +678,7 @@ $(LOG_DIR)/6_report.log: $(RESULTS_DIR)/6_1_fill.odb $(RESULTS_DIR)/6_1_fill.sdc
665678$(RESULTS_DIR ) /6_final.def : $(LOG_DIR ) /6_report.log
666679
667680# Skipping CTS can be useful to smoketest later stages.
681+ .PHONY : skip_cts
668682skip_cts : $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /3_place.sdc
669683 # mock all intermediate results
670684 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /4_1_cts.odb
@@ -673,6 +687,7 @@ skip_cts: $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/3_place.sdc
673687 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /4_cts.odb
674688
675689# Skipping route can be useful to create a mock abstract
690+ .PHONY : skip_route
676691skip_route : $(RESULTS_DIR ) /4_cts.odb $(RESULTS_DIR ) /4_cts.sdc
677692 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /5_1_grt.odb
678693 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /5_2_route.odb
@@ -685,6 +700,7 @@ skip_route: $(RESULTS_DIR)/4_cts.odb $(RESULTS_DIR)/4_cts.sdc
685700# make skip_cts
686701# make skip_route
687702# make generate_abstract
703+ .PHONY : generate_abstract
688704generate_abstract : $(RESULTS_DIR ) /6_final.gds $(RESULTS_DIR ) /6_final.def $(RESULTS_DIR ) /6_final.v
689705 ($( TIME_CMD) $( OPENROAD_CMD) $( SCRIPTS_DIR) /generate_abstract.tcl -metrics $( LOG_DIR) /generate_abstract.json) 2>&1 | tee $(LOG_DIR ) /generate_abstract.log
690706
@@ -722,6 +738,7 @@ $(RESULTS_DIR)/6_final.v: $(LOG_DIR)/6_report.log
722738$(GDS_FINAL_FILE ) : $(GDS_MERGED_FILE )
723739 cp $^ $@
724740
741+ .PHONY : drc
725742drc : $(REPORTS_DIR ) /6_drc.lyrdb
726743
727744$(REPORTS_DIR ) /6_drc.lyrdb : $(GDS_FINAL_FILE ) $(KLAYOUT_DRC_FILE )
@@ -742,6 +759,7 @@ $(RESULTS_DIR)/6_final.cdl: $(RESULTS_DIR)/6_final.v
742759$(OBJECTS_DIR ) /6_final_concat.cdl : $(RESULTS_DIR ) /6_final.cdl $(CDL_FILE )
743760 cat $^ > $@
744761
762+ .PHONY : lvs
745763lvs : $(RESULTS_DIR ) /6_lvs.lvsdb
746764
747765$(RESULTS_DIR ) /6_lvs.lvsdb : $(GDS_FINAL_FILE ) $(KLAYOUT_LVS_FILE ) $(OBJECTS_DIR ) /6_final_concat.cdl
755773 echo "LVS not supported on this platform" > $@
756774endif
757775
776+ .PHONY : clean_finish
758777clean_finish :
759778 rm -rf $(RESULTS_DIR ) /6_* .gds $(RESULTS_DIR ) /6_* .oas $(RESULTS_DIR ) /6_* .odb $(RESULTS_DIR ) /6_* .v $(RESULTS_DIR ) /6_* .def $(RESULTS_DIR ) /6_* .sdc $(RESULTS_DIR ) /6_* .spef
760779 rm -rf $(REPORTS_DIR ) /6_* .rpt
@@ -770,20 +789,24 @@ clean_finish:
770789#
771790# ==============================================================================
772791
792+ .PHONY : all
773793all : $(SDC_FILE ) $(WRAPPED_LIBS ) $(DONT_USE_LIBS ) $(OBJECTS_DIR ) /klayout.lyt $(WRAPPED_GDSOAS ) $(DONT_USE_SC_LIB )
774794 mkdir -p $(RESULTS_DIR ) $(LOG_DIR ) $(REPORTS_DIR )
775795 ($( TIME_CMD) $( OPENROAD_CMD) $( SCRIPTS_DIR) /run_all.tcl -metrics $( LOG_DIR) /run_all.json) 2>&1 | tee $(LOG_DIR ) /run_all.log
776796
797+ .PHONY : clean
777798clean :
778799 @echo
779800 @echo " Make clean disabled."
780801 @echo " Use make clean_all or clean individual steps:"
781802 @echo " clean_synth clean_floorplan clean_place clean_cts clean_route clean_finish"
782803 @echo
783804
805+ .PHONY : clean_all
784806clean_all : clean_synth clean_floorplan clean_place clean_cts clean_route clean_finish clean_metadata
785807 rm -rf $(OBJECTS_DIR )
786808
809+ .PHONY : nuke
787810nuke : clean_test clean_issues
788811 rm -rf ./results ./logs ./reports ./objects
789812 rm -rf layer_* .mps macrocell.list * best.plt * _pdn.def dummy.guide
@@ -800,10 +823,15 @@ RESULTS_OAS = $(notdir $(sort $(wildcard $(RESULTS_DIR)/*.oas)))
800823$(foreach file,$(RESULTS_DEF ) $(RESULTS_GDS ) $(RESULTS_OAS ) ,klayout_$(file ) ) : klayout_% : $(OBJECTS_DIR ) /klayout.lyt
801824 $(KLAYOUT_CMD ) -nn $(OBJECTS_DIR ) /klayout.lyt $(RESULTS_DIR ) /$*
802825
826+ .PHONY : gui_floorplan
803827gui_floorplan : gui_2_floorplan.odb
828+ .PHONY : gui_place
804829gui_place : gui_3_place.odb
830+ .PHONY : gui_cts
805831gui_cts : gui_4_cts.odb
832+ .PHONY : gui_route
806833gui_route : gui_5_route.odb
834+ .PHONY : gui_final
807835gui_final : gui_6_final.odb
808836
809837$(foreach file,$(RESULTS_DEF ) ,gui_$(file ) ) : gui_% :
@@ -820,9 +848,12 @@ $(foreach file,$(RESULTS_ODB),$(file).def): %.def:
820848$(foreach file,$(RESULTS_ODB ) ,$(file ) .v) : % .v:
821849 ODB_FILE=$(RESULTS_DIR ) /$* VERILOG_FILE=$(RESULTS_DIR ) /$@ $(OPENROAD_CMD ) $(SCRIPTS_DIR ) /write_verilog.tcl
822850
851+ .PHONY : all_defs
823852all_defs : $(foreach file,$(RESULTS_ODB ) ,$(file ) .def)
853+ .PHONY : all_verilog
824854all_verilog : $(foreach file,$(RESULTS_ODB ) ,$(file ) .v)
825855
856+ .PHONY : handoff
826857handoff : all_defs all_verilog
827858
828859print-% : ; @echo $* = $($* )
0 commit comments