mirror of https://github.com/efabless/caravel.git
WIP actual usage of make targets
This commit is contained in:
parent
703a986b70
commit
67a49b0aa2
54
Makefile
54
Makefile
|
@ -1163,8 +1163,7 @@ update_caravel:
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
# Install Mgmt Core Wrapper
|
# Install Mgmt Core Wrapper
|
||||||
.PHONY: install_mcw
|
$(MCW_ROOT):
|
||||||
install_mcw:
|
|
||||||
ifeq ($(SUBMODULE),1)
|
ifeq ($(SUBMODULE),1)
|
||||||
@echo "Installing $(MCW_NAME) as a submodule.."
|
@echo "Installing $(MCW_NAME) as a submodule.."
|
||||||
# Convert MCW_ROOT to relative path because .gitmodules doesn't accept '/'
|
# Convert MCW_ROOT to relative path because .gitmodules doesn't accept '/'
|
||||||
|
@ -1179,6 +1178,9 @@ else
|
||||||
@cd $(MCW_ROOT); git checkout $(MCW_BRANCH)
|
@cd $(MCW_ROOT); git checkout $(MCW_BRANCH)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
.PHONY: install_mcw
|
||||||
|
install_mcw: $(MCW_ROOT)
|
||||||
|
|
||||||
# Update Mgmt Core Wrapper
|
# Update Mgmt Core Wrapper
|
||||||
.PHONY: update_mcw
|
.PHONY: update_mcw
|
||||||
update_mcw: check-mcw
|
update_mcw: check-mcw
|
||||||
|
@ -1210,60 +1212,35 @@ endif
|
||||||
###########################################################################
|
###########################################################################
|
||||||
pdk-with-sram: pdk
|
pdk-with-sram: pdk
|
||||||
.PHONY: 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:
|
$(PDK_ROOT)/skywater-pdk:
|
||||||
git clone https://github.com/google/skywater-pdk.git $(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 && \
|
cd $(PDK_ROOT)/skywater-pdk && \
|
||||||
git checkout main && git pull && \
|
git checkout main && git pull && \
|
||||||
git checkout -qf $(SKYWATER_COMMIT)
|
git checkout -qf $(SKYWATER_COMMIT) && \
|
||||||
|
|
||||||
.PHONY: skywater-library
|
|
||||||
skywater-library: check-env $(PDK_ROOT)/skywater-pdk
|
|
||||||
cd $(PDK_ROOT)/skywater-pdk && \
|
|
||||||
git submodule update --init libraries/$(STD_CELL_LIBRARY)/latest && \
|
git submodule update --init libraries/$(STD_CELL_LIBRARY)/latest && \
|
||||||
git submodule update --init libraries/$(IO_LIBRARY)/latest && \
|
git submodule update --init libraries/$(IO_LIBRARY)/latest && \
|
||||||
git submodule update --init libraries/$(SPECIAL_VOLTAGE_LIBRARY)/latest && \
|
git submodule update --init libraries/$(SPECIAL_VOLTAGE_LIBRARY)/latest && \
|
||||||
git submodule update --init libraries/$(PRIMITIVES_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 && \
|
|
||||||
$(MAKE) timing
|
$(MAKE) timing
|
||||||
|
|
||||||
### OPEN_PDKS
|
### OPEN_PDKS
|
||||||
$(PDK_ROOT)/open_pdks:
|
$(PDK_ROOT)/open_pdks:
|
||||||
git clone git://opencircuitdesign.com/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 && \
|
cd $(PDK_ROOT)/open_pdks && \
|
||||||
git checkout master && git pull && \
|
git checkout master && git pull && \
|
||||||
git checkout -qf $(OPEN_PDKS_COMMIT)
|
git checkout -qf $(OPEN_PDKS_COMMIT)
|
||||||
|
|
||||||
.PHONY: build-pdk
|
$(PDK_ROOT)/sky130A: $(PDK_ROOT)/open_pdks $(PDK_ROOT)/skywater-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
|
|
||||||
docker run --rm\
|
docker run --rm\
|
||||||
-v $(PDK_ROOT):$(PDK_ROOT)\
|
-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\
|
efabless/openlane-tools:magic-$(PDK_MAGIC_COMMIT)-centos-7\
|
||||||
sh -c "\
|
sh -c "\
|
||||||
|
export PATH=$$PATH:/build/bin &&\
|
||||||
cd $(PDK_ROOT)/open_pdks && \
|
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 && \
|
./configure --enable-sky130-pdk=$(PDK_ROOT)/skywater-pdk/libraries --with-sky130-local-path=$(PDK_ROOT) --enable-sram-sky130=yes && \
|
||||||
cd sky130 && \
|
cd sky130 && \
|
||||||
make veryclean && \
|
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 SHARED_PDKS_PATH=$(PDK_ROOT) install && \
|
||||||
make clean \
|
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
|
.RECIPE: manifest
|
||||||
manifest: mag/ maglef/ verilog/rtl/ Makefile
|
manifest: mag/ maglef/ verilog/rtl/ Makefile
|
||||||
|
@ -1293,6 +1276,7 @@ master_manifest:
|
||||||
find spi/lvs/*.spice -type f -exec shasum {} \; >> master_manifest && \
|
find spi/lvs/*.spice -type f -exec shasum {} \; >> master_manifest && \
|
||||||
find gds/*.gds -type f -exec shasum {} \; >> master_manifest
|
find gds/*.gds -type f -exec shasum {} \; >> master_manifest
|
||||||
|
|
||||||
|
.PHONY: check-env
|
||||||
check-env:
|
check-env:
|
||||||
ifndef PDK_ROOT
|
ifndef PDK_ROOT
|
||||||
$(error PDK_ROOT is undefined, please export it before running make)
|
$(error PDK_ROOT is undefined, please export it before running make)
|
||||||
|
|
|
@ -29,7 +29,8 @@ $(CONFIG) :
|
||||||
@echo "Missing $@. Please create a configuration for that design"
|
@echo "Missing $@. Please create a configuration for that design"
|
||||||
@exit 1
|
@exit 1
|
||||||
|
|
||||||
$(BLOCKS) : % : ./%/config.tcl FORCE
|
.PHONY: $(BLOCKS)
|
||||||
|
$(BLOCKS) : % : ./%/config.tcl
|
||||||
ifeq ($(OPENLANE_ROOT),)
|
ifeq ($(OPENLANE_ROOT),)
|
||||||
@echo "Please export OPENLANE_ROOT"
|
@echo "Please export OPENLANE_ROOT"
|
||||||
@exit 1
|
@exit 1
|
||||||
|
@ -68,16 +69,21 @@ endif
|
||||||
cp $*/runs/$*/reports/final_summary_report.csv ../signoff/$*/
|
cp $*/runs/$*/reports/final_summary_report.csv ../signoff/$*/
|
||||||
|
|
||||||
.PHONY: openlane
|
.PHONY: openlane
|
||||||
openlane:
|
openlane: check-openlane-env $(OPENLANE_ROOT)
|
||||||
ifeq ($(OPENLANE_ROOT),)
|
|
||||||
@echo "Please export OPENLANE_ROOT"
|
$(OPENLANE_ROOT):
|
||||||
@exit 1
|
|
||||||
endif
|
|
||||||
git clone https://github.com/The-OpenROAD-Project/OpenLane --branch=$(OPENLANE_TAG) --depth=1 $(OPENLANE_ROOT) && \
|
git clone https://github.com/The-OpenROAD-Project/OpenLane --branch=$(OPENLANE_TAG) --depth=1 $(OPENLANE_ROOT) && \
|
||||||
cd $(OPENLANE_ROOT) && \
|
cd $(OPENLANE_ROOT) && \
|
||||||
export IMAGE_NAME=efabless/openlane:$(OPENLANE_TAG) && \
|
export IMAGE_NAME=efabless/openlane:$(OPENLANE_TAG) && \
|
||||||
$(MAKE) pull-openlane
|
$(MAKE) pull-openlane
|
||||||
|
|
||||||
|
.PHONY: check-openlane-env
|
||||||
|
check-openlane-env:
|
||||||
|
ifeq ($(OPENLANE_ROOT),)
|
||||||
|
@echo "Please export OPENLANE_ROOT"
|
||||||
|
@exit 1
|
||||||
|
endif
|
||||||
|
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
|
Loading…
Reference in New Issue