Skip to content

Commit 93a06a5

Browse files
authored
Merge pull request #942 from Pinata-Consulting/mock-abstract-gds-generation-and-simpler
mock abstract: now generates .gds files and is simpler
2 parents 82bf459 + fb38b1a commit 93a06a5

File tree

2 files changed

+24
-16
lines changed

2 files changed

+24
-16
lines changed

flow/Makefile

Lines changed: 23 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -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
682690
generate_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
#-------------------------------------------------------------------------------

flow/scripts/generate_abstract.tcl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
source $::env(SCRIPTS_DIR)/load.tcl
2-
load_design $::env(ABSTRACT_FROM).odb $::env(ABSTRACT_FROM).sdc "Starting generation of abstract views"
2+
load_design 6_1_fill.odb 6_1_fill.sdc "Starting generation of abstract views"
33

44
puts "Starting generation of abstract views"
55
write_timing_model $::env(RESULTS_DIR)/$::env(DESIGN_NAME).lib

0 commit comments

Comments
 (0)