@@ -783,12 +783,20 @@ $(RESULTS_DIR)/6_final.def: $(LOG_DIR)/6_report.log
783783do-finish :
784784 $(UNSET_AND_MAKE ) do-6_1_fill do-6_1_fill.sdc do-6_final.sdc do-6_report elapsed
785785
786- # Skipping resize can be useful for mock abstracts
786+ .PHONY : skip_place
787+ skip_place : $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /2_floorplan.sdc
788+ cp $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /3_1_place_gp_skip_io.odb
789+ cp $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /3_2_place_iop.odb
790+ cp $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /3_3_place_gp.odb
791+ cp $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /3_4_place_resized.odb
792+ cp $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /3_5_place_dp.odb
793+ cp $(RESULTS_DIR ) /2_floorplan.odb $(RESULTS_DIR ) /3_place.odb
794+ cp $(RESULTS_DIR ) /2_floorplan.sdc $(RESULTS_DIR ) /3_place.sdc
795+
787796.PHONY : skip_resize
788797skip_resize : $(RESULTS_DIR ) /3_3_place_gp.odb
789798 cp $(RESULTS_DIR ) /3_3_place_gp.odb $(RESULTS_DIR ) /3_4_place_resized.odb
790799
791- # Skipping CTS can be useful to smoketest later stages.
792800.PHONY : skip_cts
793801skip_cts : $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /3_place.sdc
794802 # mock all intermediate results
@@ -797,18 +805,24 @@ skip_cts: $(RESULTS_DIR)/3_place.odb $(RESULTS_DIR)/3_place.sdc
797805 cp $(RESULTS_DIR ) /3_place.sdc $(RESULTS_DIR ) /4_cts.sdc
798806 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /4_cts.odb
799807
800- # Skipping route can be useful to create a mock abstract
801808.PHONY : skip_route
802809skip_route : $(RESULTS_DIR ) /4_cts.odb $(RESULTS_DIR ) /4_cts.sdc
803810 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /5_1_grt.odb
804811 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /5_2_route.odb
805812 cp $(RESULTS_DIR ) /3_place.odb $(RESULTS_DIR ) /6_1_fill.odb
806813 touch $(RESULTS_DIR ) /6_final.spef
807814
808- # To create a mock abstract quickly, good enough to iterate quickly on
809- # floorplanning and detailed route at higher levels, run:
815+ # A mock abstract is a fully or partially eviscerated macro. A mock
816+ # abstract can be useful when creating bug reports, previewing
817+ # macro placement, testing detailed routing, or other quick smoke-tests
818+ # at the top level.
819+ #
820+ # When creating a mock abstract, depending on what needs to be tested,
821+ # stages can be skipped.
822+ #
823+ # Leave out "skip_" targes as approperiate:
810824#
811- # make skip_resize skip_cts skip_route generate_abstract
825+ # make skip_place skip_cts skip_route generate_abstract
812826.PHONY : generate_abstract
813827generate_abstract : $(RESULTS_DIR ) /6_final.gds $(RESULTS_DIR ) /6_final.def $(RESULTS_DIR ) /6_final.v $(RESULTS_DIR ) /6_final.sdc
814828 $(UNSET_AND_MAKE ) do-generate_abstract
0 commit comments