Skip to content

Commit 63ad0da

Browse files
authored
Merge pull request #3208 from dnltz/WIP/dnltz/fix-block-logic-general-changes
Minor fixes with block handling
2 parents 9138267 + deb4195 commit 63ad0da

File tree

3 files changed

+28
-15
lines changed

3 files changed

+28
-15
lines changed

flow/Makefile

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -89,23 +89,29 @@ include $(DESIGN_CONFIG)
8989

9090
export DESIGN_DIR ?= $(dir $(DESIGN_CONFIG))
9191

92-
# default value "base" is duplicated from variables.yaml because we need it
92+
# default value "base" for FLOW_VARIANT and "." for WORK_HOME are duplicated
93+
# from variables.yaml and variables.mk because we need it
9394
# earlier in the flow for BLOCKS. BLOCKS is a feature specific to the
9495
# ORFS Makefile.
9596
export FLOW_VARIANT?=base
97+
export WORK_HOME?=.
9698
# BLOCKS is a ORFS make flow specific feature.
9799
ifneq ($(BLOCKS),)
98100
# Normally this comes from variables.yaml, but we need it here to set up these variables
99101
# which are part of the DESIGN_CONFIG. BLOCKS is a Makefile specific concept.
100-
$(foreach block,$(BLOCKS),$(eval BLOCK_LEFS += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef))
101-
$(foreach block,$(BLOCKS),$(eval BLOCK_LIBS += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lib))
102-
$(foreach block,$(BLOCKS),$(eval BLOCK_GDS += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.gds))
103-
$(foreach block,$(BLOCKS),$(eval BLOCK_CDL += ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.cdl))
104-
$(foreach block,$(BLOCKS),$(eval BLOCK_LOG_FOLDERS += ./logs/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/))
102+
$(foreach block,$(BLOCKS),$(eval BLOCK_LEFS += $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef))
103+
$(foreach block,$(BLOCKS),$(eval BLOCK_TYP_LIBS += $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}_typ.lib))
104+
$(foreach block,$(BLOCKS),$(eval BLOCK_FAST_LIBS += $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}_fast.lib))
105+
$(foreach block,$(BLOCKS),$(eval BLOCK_SLOW_LIBS += $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}_slow.lib))
106+
$(foreach block,$(BLOCKS),$(eval BLOCK_GDS += $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.gds))
107+
$(foreach block,$(BLOCKS),$(eval BLOCK_CDL += $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.cdl))
108+
$(foreach block,$(BLOCKS),$(eval BLOCK_LOG_FOLDERS += $(WORK_HOME)/logs/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/))
105109
export ADDITIONAL_LEFS += $(BLOCK_LEFS)
106-
export ADDITIONAL_LIBS += $(BLOCK_LIBS)
110+
export ADDITIONAL_LIBS += $(BLOCK_TYP_LIBS)
111+
export ADDITIONAL_TYP_LIBS += $(BLOCK_TYP_LIBS)
112+
export ADDITIONAL_FAST_LIBS += $(BLOCK_FAST_LIBS)
113+
export ADDITIONAL_SLOW_LIBS += $(BLOCK_SLOW_LIBS)
107114
export ADDITIONAL_GDS += $(BLOCK_GDS)
108-
export GDS_FILES += $(BLOCK_GDS)
109115
ifneq ($(CDL_FILES),)
110116
export CDL_FILES += $(BLOCK_CDL)
111117
endif
@@ -168,10 +174,10 @@ endef
168174

169175
# Targets to harden Blocks in case of hierarchical flow is triggered
170176
.PHONY: build_macros
171-
build_macros: $(BLOCK_LEFS) $(BLOCK_LIBS)
177+
build_macros: $(BLOCK_LEFS) $(BLOCK_TYP_LIBS)
172178

173-
$(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,$(shell dirname $(DESIGN_CONFIG))/${block}/config.mk)))
174-
$(foreach block,$(BLOCKS),$(eval ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.gds: ./results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef))
179+
$(foreach block,$(BLOCKS),$(eval $(call GENERATE_ABSTRACT_RULE,$(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef,$(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}_typ.lib,$(shell dirname $(DESIGN_CONFIG))/${block}/config.mk)))
180+
$(foreach block,$(BLOCKS),$(eval $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/6_final.gds: $(WORK_HOME)/results/$(PLATFORM)/$(DESIGN_NICKNAME)_$(block)/$(FLOW_VARIANT)/${block}.lef))
175181

176182
# Utility to print tool version information
177183
#-------------------------------------------------------------------------------
@@ -765,7 +771,7 @@ clean_all: clean_synth clean_floorplan clean_place clean_cts clean_route clean_f
765771

766772
.PHONY: nuke
767773
nuke: clean_test clean_issues
768-
rm -rf ./results ./logs ./reports ./objects
774+
rm -rf $(WORK_HOME)/results $(WORK_HOME)/logs $(WORK_HOME)/reports $(WORK_HOME)/objects
769775
rm -rf layer_*.mps macrocell.list *best.plt *_pdn.def
770776
rm -rf *.rpt *.rpt.old *.def.v pin_dumper.log
771777
rm -f $(OBJECTS_DIR)/versions.txt $(OBJECTS_DIR)/copyright.txt dummy.guide

flow/scripts/generate_abstract.tcl

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,15 @@ if {$design_stage >= 4} {
2121
# write_timing_model includes the source latency in the model
2222
set_clock_latency -source 0 [all_clocks]
2323
puts "Generating abstract views"
24-
log_cmd write_timing_model $::env(RESULTS_DIR)/$::env(DESIGN_NAME).lib
24+
if {[env_var_exists_and_non_empty CORNERS]} {
25+
# corners
26+
foreach corner $::env(CORNERS) {
27+
log_cmd write_timing_model -corner $corner $::env(RESULTS_DIR)/$::env(DESIGN_NAME)_$corner.lib
28+
}
29+
unset corner
30+
} else {
31+
log_cmd write_timing_model $::env(RESULTS_DIR)/$::env(DESIGN_NAME)_typ.lib
32+
}
2533
log_cmd write_abstract_lef -bloat_occupied_layers $::env(RESULTS_DIR)/$::env(DESIGN_NAME).lef
2634

2735
if {[env_var_exists_and_non_empty CDL_FILES]} {

flow/scripts/variables.mk

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,10 @@ export DESIGN_NICKNAME?=$(DESIGN_NAME)
1818
# Setup variables to point to other location for the following sub directory
1919
# - designs - default is under current directory
2020
# - platforms - default is under current directory
21-
# - work home - default is current directory
2221
# - utils, scripts, test - default is under current directory
2322
export DESIGN_HOME ?= $(FLOW_HOME)/designs
2423
export PLATFORM_HOME ?= $(FLOW_HOME)/platforms
25-
export WORK_HOME ?= .
24+
# WORK_HOME is set up in flow/Makefile
2625

2726
export UTILS_DIR ?= $(FLOW_HOME)/util
2827
export SCRIPTS_DIR ?= $(FLOW_HOME)/scripts

0 commit comments

Comments
 (0)