Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Changes for 2409 #4

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 8 additions & 7 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
/.idea/
/precheck_results/
*/tmp
*/*/tmp
*.hex*
*.lst
*.vcd
*.gtkw
/env
/venv
/caravel
/runs
/caravel_mini
/dependencies
/mgmt_core_wrapper
/venv/
/venv-cocotb/
/caravel/
runs/
/dependencies/
/mgmt_core_wrapper/
/logs
lvs_results/
/caravel_mini/
42 changes: 19 additions & 23 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@
MAKEFLAGS+=--warn-undefined-variables

export CARAVEL_ROOT?=$(PWD)/caravel
export MINI_ROOT?=$(PWD)/caravel_mini
export UPRJ_ROOT?=$(PWD)
PRECHECK_ROOT?=${HOME}/mpw_precheck
export MCW_ROOT?=$(PWD)/mgmt_core_wrapper
export MINI_ROOT?=$(PWD)/caravel_mini
SIM?=RTL

# Install lite version of caravel, (1): caravel-lite, (0): caravel
Expand All @@ -45,9 +45,8 @@ export ROOTLESS

ifeq ($(PDK),sky130A)
SKYWATER_COMMIT=f70d8ca46961ff92719d8870a18a076370b85f6c
export OPEN_PDKS_COMMIT_LVS?=6d4d11780c40b20ee63cc98e645307a9bf2b2ab8
export OPEN_PDKS_COMMIT?=78b7bc32ddb4b6f14f76883c2e2dc5b5de9d1cbc
export OPENLANE_TAG?=2023.07.19-1
export OPEN_PDKS_COMMIT?=0fe599b2afb6708d281543108caf8310912f54af
export OPENLANE_TAG?=2023.07.19-2
MPW_TAG ?= mpw-9k

ifeq ($(CARAVEL_LITE),1)
Expand All @@ -64,9 +63,8 @@ endif

ifeq ($(PDK),sky130B)
SKYWATER_COMMIT=f70d8ca46961ff92719d8870a18a076370b85f6c
export OPEN_PDKS_COMMIT_LVS?=6d4d11780c40b20ee63cc98e645307a9bf2b2ab8
export OPEN_PDKS_COMMIT?=78b7bc32ddb4b6f14f76883c2e2dc5b5de9d1cbc
export OPENLANE_TAG?=2023.07.19-1
export OPEN_PDKS_COMMIT?=0fe599b2afb6708d281543108caf8310912f54af
export OPENLANE_TAG?=2023.07.19-2
MPW_TAG ?= mpw-9k

ifeq ($(CARAVEL_LITE),1)
Expand Down Expand Up @@ -107,15 +105,6 @@ install:
echo "Installing $(CARAVEL_NAME).."
git clone -b $(CARAVEL_TAG) $(CARAVEL_REPO) $(CARAVEL_ROOT) --depth=1

.PHONY: install_mini
install_mini:
if [ -d "$(MINI_ROOT)" ]; then\
echo "Deleting exisiting $(MINI_ROOT)" && \
rm -rf $(MINI_ROOT) && sleep 2;\
fi
echo "Installing $(MINI_ROOT).."
git clone https://github.com/efabless/caravel_mini.git $(MINI_ROOT) --depth=1

# Install DV setup
.PHONY: simenv
simenv:
Expand All @@ -126,8 +115,17 @@ simenv:
simenv-cocotb:
docker pull efabless/dv:cocotb

.PHONY: install_mini
install_mini:
if [ -d "$(MINI_ROOT)" ]; then\
echo "Deleting exisiting $(MINI_ROOT)" && \
rm -rf $(MINI_ROOT) && sleep 2;\
fi
echo "Installing $(MINI_ROOT).."
git clone https://github.com/efabless/caravel_mini.git $(MINI_ROOT) --depth=1

.PHONY: setup
setup: check_dependencies install install_mini check-env install_mcw openlane pdk-with-volare setup-timing-scripts setup-cocotb precheck
setup: check_dependencies install check-env install_mini install_mcw openlane pdk-with-volare setup-timing-scripts setup-cocotb precheck

# Openlane
blocks=$(shell cd openlane && find * -maxdepth 0 -type d)
Expand Down Expand Up @@ -257,13 +255,14 @@ precheck:
@docker pull efabless/mpw_precheck:latest

.PHONY: run-precheck
run-precheck: check-pdk check-precheck enable-lvs-pdk
run-precheck: check-pdk check-precheck
@if [ "$$DISABLE_LVS" = "1" ]; then\
$(eval INPUT_DIRECTORY := $(shell pwd)) \
cd $(PRECHECK_ROOT) && \
docker run -it -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) \
-v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) \
-v $(PDK_ROOT):$(PDK_ROOT) \
-v $(HOME)/.ipm:$(HOME)/.ipm \
-e INPUT_DIRECTORY=$(INPUT_DIRECTORY) \
-e PDK_PATH=$(PDK_ROOT)/$(PDK) \
-e PDK_ROOT=$(PDK_ROOT) \
Expand All @@ -276,6 +275,7 @@ run-precheck: check-pdk check-precheck enable-lvs-pdk
docker run -it -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) \
-v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) \
-v $(PDK_ROOT):$(PDK_ROOT) \
-v $(HOME)/.ipm:$(HOME)/.ipm \
-e INPUT_DIRECTORY=$(INPUT_DIRECTORY) \
-e PDK_PATH=$(PDK_ROOT)/$(PDK) \
-e PDK_ROOT=$(PDK_ROOT) \
Expand All @@ -284,10 +284,6 @@ run-precheck: check-pdk check-precheck enable-lvs-pdk
efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --input_directory $(INPUT_DIRECTORY) --pdk_path $(PDK_ROOT)/$(PDK)"; \
fi

.PHONY: enable-lvs-pdk
enable-lvs-pdk:
$(UPRJ_ROOT)/venv/bin/volare enable $(OPEN_PDKS_COMMIT_LVS)

BLOCKS = $(shell cd lvs && find * -maxdepth 0 -type d)
LVS_BLOCKS = $(foreach block, $(BLOCKS), lvs-$(block))
$(LVS_BLOCKS): lvs-% : ./lvs/%/lvs_config.json check-pdk check-precheck
Expand Down Expand Up @@ -357,7 +353,7 @@ install-caravel-cocotb:

.PHONY: setup-cocotb-env
setup-cocotb-env:
@(python3 $(PROJECT_ROOT)/verilog/dv/setup-cocotb.py $(CARAVEL_ROOT) $(MCW_ROOT) $(PDK_ROOT) $(PDK) $(PROJECT_ROOT))
@(./venv-cocotb/bin/$(PYTHON_BIN) $(PROJECT_ROOT)/verilog/dv/setup-cocotb.py $(CARAVEL_ROOT) $(MCW_ROOT) $(PDK_ROOT) $(PDK) $(PROJECT_ROOT))

.PHONY: setup-cocotb
setup-cocotb: install-caravel-cocotb setup-cocotb-env simenv-cocotb
Expand Down
16 changes: 10 additions & 6 deletions lvs/user_project_wrapper_mini4/lvs_config.json
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
{
"STD_CELL_LIBRARY": "sky130_fd_sc_hd",
"INCLUDE_CONFIGS": [
"$LVS_ROOT/tech/$PDK/lvs_config.base.json"
],
"TOP_SOURCE": "user_project_wrapper_mini4",
"TOP_LAYOUT": "$TOP_SOURCE",
"EXTRACT_FLATGLOB": [
""
],
"EXTRACT_ABSTRACT": [
"*__fill_*",
"*__fakediode_*",
"*__tapvpwrvgnd_*"
""
],
"EXTRACT_CREATE_SUBCUT": [
""
],
"LVS_FLATTEN": [
""
Expand All @@ -19,11 +24,10 @@
""
],
"LVS_SPICE_FILES": [
"$PDK_ROOT/$PDK/libs.ref/sky130_fd_sc_hd/spice/sky130_ef_sc_hd__decap_12.spice",
"$PDK_ROOT/$PDK/libs.ref/sky130_fd_sc_hd/spice/sky130_fd_sc_hd.spice"
""
],
"LVS_VERILOG_FILES": [
"$UPRJ_ROOT/verilog/gl/$TOP_SOURCE.v"
],
"LAYOUT_FILE": "$UPRJ_ROOT/gds/$TOP_LAYOUT.gds"
}
}
33 changes: 14 additions & 19 deletions openlane/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@
#
# SPDX-License-Identifier: Apache-2.0

SHELL := /bin/bash
MAKEFLAGS+=--warn-undefined-variables

export OPENLANE_RUN_TAG = $(shell date '+%y_%m_%d_%H_%M')
OPENLANE_TAG ?= 2023.07.19-1
OPENLANE_TAG ?= 2023.07.19-2
OPENLANE_IMAGE_NAME ?= efabless/openlane:$(OPENLANE_TAG)
designs = $(shell find * -maxdepth 0 -type d)
current_design = null
designs=$(shell find * -maxdepth 0 -type d)

ROOTLESS ?= 0
USER_ARGS = -u $$(id -u $$USER):$$(id -g $$USER)
Expand All @@ -41,6 +41,7 @@ docker_mounts = \
-v $$(realpath $(PWD)/..):$$(realpath $(PWD)/..) \
-v $(PDK_ROOT):$(PDK_ROOT) \
-v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \
-v $(HOME)/.ipm:$(HOME)/.ipm \
-v $(OPENLANE_ROOT):/openlane

docker_env = \
Expand All @@ -66,28 +67,22 @@ list:
@echo $(designs)

.PHONY: $(designs)
$(designs) : export current_design=$@
$(designs) : % : ./%/config.json enable-openlane-pdk
ifneq (,$(wildcard ./$(current_design)/interactive.tcl))
$(docker_run) \
$(OPENLANE_IMAGE_NAME) sh -c $(openlane_cmd_interactive)
else
# $(current_design)
mkdir -p ./$*/runs/$(OPENLANE_RUN_TAG)
$(designs) : % :
mkdir -p ./$*/runs/$(OPENLANE_RUN_TAG)
rm -rf ./$*/runs/$*
ln -s $$(realpath ./$*/runs/$(OPENLANE_RUN_TAG)) ./$*/runs/$*
$(docker_run) \
$(OPENLANE_IMAGE_NAME) sh -c $(openlane_cmd)
endif
if [[ -f ./$@/interactive.tcl ]]; then \
$(docker_run) \
$(OPENLANE_IMAGE_NAME) sh -c $(openlane_cmd_interactive); \
else \
$(docker_run) \
$(OPENLANE_IMAGE_NAME) sh -c $(openlane_cmd); \
fi
@mkdir -p ../signoff/$*/
@cp ./$*/runs/$*/OPENLANE_VERSION ../signoff/$*/
@cp ./$*/runs/$*/PDK_SOURCES ../signoff/$*/
@cp ./$*/runs/$*/reports/*.csv ../signoff/$*/

.PHONY: enable-openlane-pdk
enable-openlane-pdk:
$(UPRJ_ROOT)/venv/bin/volare enable $(OPEN_PDKS_COMMIT)

.PHONY: openlane
openlane: check-openlane-env
if [ -d "$(OPENLANE_ROOT)" ]; then\
Expand All @@ -105,4 +100,4 @@ check-openlane-env:
ifeq ($(OPENLANE_ROOT),)
@echo "Please export OPENLANE_ROOT"
@exit 1
endif
endif