@@ -89,23 +89,29 @@ include $(DESIGN_CONFIG)
8989
9090export 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.
9596export FLOW_VARIANT? =base
97+ export WORK_HOME? =.
9698# BLOCKS is a ORFS make flow specific feature.
9799ifneq ($(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
767773nuke : 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
0 commit comments