@@ -664,23 +664,31 @@ $(LOG_DIR)/6_report.log: $(RESULTS_DIR)/6_1_fill.odb $(RESULTS_DIR)/6_1_fill.sdc
664664
665665$(RESULTS_DIR ) /6_final.def : $(LOG_DIR ) /6_report.log
666666
667- # To speed up turnaround times when composing
668- # macros to a higher level design, such as doing floorplanning,
669- # or tweaking options for detailed routing, it can be useful to quickly
670- # generate a mock abstract.
667+ # Skipping CTS can be useful to smoketest later stages.
668+ skip_cts : $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /3_place.sdc
669+ # mock all intermediate results
670+ cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /4_1_cts.odb
671+ cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /4_2_cts_fillcell.odb
672+ cp $(RESULTS_DIR ) /3_place.sdc $(RESULTS_DIR ) /4_cts.sdc
673+ cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /4_cts.odb
674+
675+ # Skipping route can be useful to create a mock abstract
676+ skip_route : $(RESULTS_DIR ) /4_cts.odb $(RESULTS_DIR ) /4_cts.sdc
677+ cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /5_1_grt.odb
678+ cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /5_2_route.odb
679+ cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /6_1_fill.odb
680+ touch $(RESULTS_DIR ) /6_final.spef
681+ $(MAKE ) $(LOG_DIR ) /6_report.log
682+ $(MAKE ) finish
683+
684+ # To create a mock abstract quickly, good enough to iterate quickly on
685+ # floorplanning and detailed route at higher levels, run:
671686#
672- # This mock abstract has the same
673- # interface(pins in the same places, blockages, etc.) as the final abstract,
674- # but it is essentially an eviscerated macro.
675- #
676- # At a higher level, it is then possible to take the designs all
677- # the way through "make route" (detailed route), but beyond that a .gds file is
678- # needed, which the mock abstract does not contain.
679- generate_mock_abstract : $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /3_place.sdc
680- (ABSTRACT_FROM=3_place $( TIME_CMD) $( OPENROAD_CMD) $( SCRIPTS_DIR) /generate_abstract.tcl -metrics $( LOG_DIR) /generate_abstract.json ) 2>&1 | tee $(LOG_DIR ) /generate_abstract.log
681-
687+ # make skip_cts
688+ # make skip_route
689+ # make generate_abstract
682690generate_abstract : $(RESULTS_DIR ) /6_final.gds $(RESULTS_DIR ) /6_final.def $(RESULTS_DIR ) /6_final.v
683- (ABSTRACT_FROM=6_1_fill $( TIME_CMD) $( OPENROAD_CMD) $( SCRIPTS_DIR) /generate_abstract.tcl -metrics $( LOG_DIR) /generate_abstract.json) 2>&1 | tee $(LOG_DIR ) /generate_abstract.log
691+ ($( TIME_CMD) $( OPENROAD_CMD) $( SCRIPTS_DIR) /generate_abstract.tcl -metrics $( LOG_DIR) /generate_abstract.json) 2>&1 | tee $(LOG_DIR ) /generate_abstract.log
684692
685693# Merge wrapped macros using Klayout
686694# -------------------------------------------------------------------------------
0 commit comments