WIP actual usage of make targets

This commit is contained in:
kareem 2022-02-17 11:56:56 -08:00
parent 703a986b70
commit 67a49b0aa2
2 changed files with 31 additions and 41 deletions

View File

@ -1163,8 +1163,7 @@ update_caravel:
###########################################################################
# Install Mgmt Core Wrapper
.PHONY: install_mcw
install_mcw:
$(MCW_ROOT):
ifeq ($(SUBMODULE),1)
@echo "Installing $(MCW_NAME) as a submodule.."
# Convert MCW_ROOT to relative path because .gitmodules doesn't accept '/'
@ -1179,6 +1178,9 @@ else
@cd $(MCW_ROOT); git checkout $(MCW_BRANCH)
endif
.PHONY: install_mcw
install_mcw: $(MCW_ROOT)
# Update Mgmt Core Wrapper
.PHONY: update_mcw
update_mcw: check-mcw
@ -1210,60 +1212,35 @@ endif
###########################################################################
pdk-with-sram: pdk
.PHONY: pdk
pdk: skywater-pdk skywater-library skywater-timing open_pdks build-pdk gen-sources
pdk: check-env $(PDK_ROOT)/sky130A
$(PDK_ROOT)/skywater-pdk:
git clone https://github.com/google/skywater-pdk.git $(PDK_ROOT)/skywater-pdk
.PHONY: skywater-pdk
skywater-pdk: check-env $(PDK_ROOT)/skywater-pdk
cd $(PDK_ROOT)/skywater-pdk && \
git checkout main && git pull && \
git checkout -qf $(SKYWATER_COMMIT)
.PHONY: skywater-library
skywater-library: check-env $(PDK_ROOT)/skywater-pdk
cd $(PDK_ROOT)/skywater-pdk && \
git checkout -qf $(SKYWATER_COMMIT) && \
git submodule update --init libraries/$(STD_CELL_LIBRARY)/latest && \
git submodule update --init libraries/$(IO_LIBRARY)/latest && \
git submodule update --init libraries/$(SPECIAL_VOLTAGE_LIBRARY)/latest && \
git submodule update --init libraries/$(PRIMITIVES_LIBRARY)/latest
gen-sources: $(PDK_ROOT)/sky130A
touch $(PDK_ROOT)/sky130A/SOURCES
printf "skywater-pdk " >> $(PDK_ROOT)/sky130A/SOURCES
cd $(PDK_ROOT)/skywater-pdk && git rev-parse HEAD >> $(PDK_ROOT)/sky130A/SOURCES
printf "open_pdks " >> $(PDK_ROOT)/sky130A/SOURCES
cd $(PDK_ROOT)/open_pdks && git rev-parse HEAD >> $(PDK_ROOT)/sky130A/SOURCES
printf "magic $(PDK_MAGIC_COMMIT)" >> $(PDK_ROOT)/sky130A/SOURCES
skywater-timing: check-env $(PDK_ROOT)/skywater-pdk
cd $(PDK_ROOT)/skywater-pdk && \
git submodule update --init libraries/$(PRIMITIVES_LIBRARY)/latest && \
$(MAKE) timing
### OPEN_PDKS
$(PDK_ROOT)/open_pdks:
git clone git://opencircuitdesign.com/open_pdks $(PDK_ROOT)/open_pdks
.PHONY: open_pdks
open_pdks: check-env $(PDK_ROOT)/open_pdks
cd $(PDK_ROOT)/open_pdks && \
git checkout master && git pull && \
git checkout -qf $(OPEN_PDKS_COMMIT)
.PHONY: build-pdk
build-pdk: check-env $(PDK_ROOT)/open_pdks $(PDK_ROOT)/skywater-pdk
[ -d $(PDK_ROOT)/sky130A ] && \
(echo "Warning: A sky130A build already exists under $(PDK_ROOT). It will be deleted first!" && \
sleep 5 && \
rm -rf $(PDK_ROOT)/sky130A) || \
true
$(PDK_ROOT)/sky130A: $(PDK_ROOT)/open_pdks $(PDK_ROOT)/skywater-pdk
docker run --rm\
-v $(PDK_ROOT):$(PDK_ROOT)\
-e $(PDK_ROOT)\
-u $(shell id -u $(USER)):$(shell id -g $(USER)) \
efabless/openlane-tools:magic-$(PDK_MAGIC_COMMIT)-centos-7\
sh -c "\
export PATH=$$PATH:/build/bin &&\
cd $(PDK_ROOT)/open_pdks && \
ls . -al && \
./configure --enable-sky130-pdk=$(PDK_ROOT)/skywater-pdk/libraries --with-sky130-local-path=$(PDK_ROOT) --enable-sram-sky130=yes && \
cd sky130 && \
make veryclean && \
@ -1271,6 +1248,12 @@ build-pdk: check-env $(PDK_ROOT)/open_pdks $(PDK_ROOT)/skywater-pdk
make SHARED_PDKS_PATH=$(PDK_ROOT) install && \
make clean \
"
touch $(PDK_ROOT)/sky130A/SOURCES
printf "skywater-pdk " >> $(PDK_ROOT)/sky130A/SOURCES
cd $(PDK_ROOT)/skywater-pdk && git rev-parse HEAD >> $(PDK_ROOT)/sky130A/SOURCES
printf "open_pdks " >> $(PDK_ROOT)/sky130A/SOURCES
cd $(PDK_ROOT)/open_pdks && git rev-parse HEAD >> $(PDK_ROOT)/sky130A/SOURCES
printf "magic $(PDK_MAGIC_COMMIT)" >> $(PDK_ROOT)/sky130A/SOURCES
.RECIPE: manifest
manifest: mag/ maglef/ verilog/rtl/ Makefile
@ -1293,6 +1276,7 @@ master_manifest:
find spi/lvs/*.spice -type f -exec shasum {} \; >> master_manifest && \
find gds/*.gds -type f -exec shasum {} \; >> master_manifest
.PHONY: check-env
check-env:
ifndef PDK_ROOT
$(error PDK_ROOT is undefined, please export it before running make)

View File

@ -29,7 +29,8 @@ $(CONFIG) :
@echo "Missing $@. Please create a configuration for that design"
@exit 1
$(BLOCKS) : % : ./%/config.tcl FORCE
.PHONY: $(BLOCKS)
$(BLOCKS) : % : ./%/config.tcl
ifeq ($(OPENLANE_ROOT),)
@echo "Please export OPENLANE_ROOT"
@exit 1
@ -68,16 +69,21 @@ endif
cp $*/runs/$*/reports/final_summary_report.csv ../signoff/$*/
.PHONY: openlane
openlane:
ifeq ($(OPENLANE_ROOT),)
@echo "Please export OPENLANE_ROOT"
@exit 1
endif
openlane: check-openlane-env $(OPENLANE_ROOT)
$(OPENLANE_ROOT):
git clone https://github.com/The-OpenROAD-Project/OpenLane --branch=$(OPENLANE_TAG) --depth=1 $(OPENLANE_ROOT) && \
cd $(OPENLANE_ROOT) && \
export IMAGE_NAME=efabless/openlane:$(OPENLANE_TAG) && \
$(MAKE) pull-openlane
.PHONY: check-openlane-env
check-openlane-env:
ifeq ($(OPENLANE_ROOT),)
@echo "Please export OPENLANE_ROOT"
@exit 1
endif
FORCE:
clean: