Merge pull request #38 from Manarabdelaty/update_wrapper_latest_openlane
Update configuration to work with latest openlane
diff --git a/.github/scripts/precheck/precheckBuild.sh b/.github/scripts/precheck/precheckBuild.sh
index d618190..7754922 100644
--- a/.github/scripts/precheck/precheckBuild.sh
+++ b/.github/scripts/precheck/precheckBuild.sh
@@ -18,16 +18,16 @@
export SKIP_PDK_BUILD=${1:-0}
export TARGET_PATH=$(pwd)
-git clone https://github.com/efabless/open_mpw_precheck.git
+git clone https://github.com/efabless/mpw_precheck.git
-docker pull efabless/open_mpw_precheck:latest
+docker pull efabless/mpw_precheck:latest
if [ $SKIP_PDK_BUILD -eq 0 ]; then
cd $TARGET_PATH/..
export PDK_ROOT=$(pwd)/precheck_pdks
mkdir $PDK_ROOT
- cd $TARGET_PATH/open_mpw_precheck/dependencies
+ cd $TARGET_PATH/mpw_precheck/dependencies
sh build-pdk.sh
cd $TARGET_DIR
diff --git a/.github/scripts/precheck/run-precheck-drc.sh b/.github/scripts/precheck/run-precheck-drc.sh
index 489b314..dd38dc0 100644
--- a/.github/scripts/precheck/run-precheck-drc.sh
+++ b/.github/scripts/precheck/run-precheck-drc.sh
@@ -17,12 +17,14 @@
export CARAVEL_ROOT=$(pwd)/caravel
cd ..
export PDK_ROOT=$(pwd)/precheck_pdks
-cd $TARGET_PATH/open_mpw_precheck/
+export PRECHECK_ROOT=$TARGET_PATH/mpw_precheck/
+export OUTPUT_DIRECTORY=$TARGET_PATH/checks
+cd $TARGET_PATH/mpw_precheck/
-docker run -v $(pwd):/usr/local/bin -v $TARGET_PATH:$TARGET_PATH -v $CARAVEL_ROOT:$CARAVEL_ROOT -v $PDK_ROOT:$PDK_ROOT -u $(id -u $USER):$(id -g $USER) efabless/open_mpw_precheck:latest bash -c "python3 open_mpw_prechecker.py --drc_only -p $PDK_ROOT -t $TARGET_PATH -c $CARAVEL_ROOT"
-output=$TARGET_PATH/checks/full_log.log
+docker run -v $PRECHECK_ROOT:$PRECHECK_ROOT -v $TARGET_PATH:$TARGET_PATH -v $CARAVEL_ROOT:$CARAVEL_ROOT -v $PDK_ROOT:$PDK_ROOT -u $(id -u $USER):$(id -g $USER) efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py magic_drc klayout_offgrid klayout_feol klayout_zeroarea klayout_pin_label_purposes_overlapping_drawing --pdk_root $PDK_ROOT --input_directory $TARGET_PATH --caravel_root $CARAVEL_ROOT --output_directory $OUTPUT_DIRECTORY"
+output=$OUTPUT_DIRECTORY/logs/precheck.log
-gzipped_file=$TARGET_PATH/checks/full_log.log.gz
+gzipped_file=$OUTPUT_DIRECTORY/logs/precheck.log.gz
if [[ -f $gzipped_file ]]; then
gzip -d $gzipped_file
@@ -30,7 +32,7 @@
grep "Violation Message" $output
-cnt=$(grep -c "All Checks PASSED!" $output)
+cnt=$(grep -c "All Checks Passed" $output)
if ! [[ $cnt ]]; then cnt=0; fi
if [[ $cnt -eq 1 ]]; then exit 0; fi
exit 2
\ No newline at end of file
diff --git a/.github/scripts/precheck/run-precheck.sh b/.github/scripts/precheck/run-precheck.sh
index b248a79..66d5da6 100644
--- a/.github/scripts/precheck/run-precheck.sh
+++ b/.github/scripts/precheck/run-precheck.sh
@@ -17,12 +17,14 @@
export CARAVEL_ROOT=$(pwd)/caravel
cd ..
export PDK_ROOT=$(pwd)/precheck_pdks
-cd $TARGET_PATH/open_mpw_precheck/
+export PRECHECK_ROOT=$TARGET_PATH/mpw_precheck/
+export OUTPUT_DIRECTORY=$TARGET_PATH/checks
+cd $TARGET_PATH/mpw_precheck/
-docker run -v $(pwd):/usr/local/bin -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) efabless/open_mpw_precheck:latest bash -c "python3 open_mpw_prechecker.py --skip_drc -p $PDK_ROOT -t $TARGET_PATH -c $CARAVEL_ROOT"
-output=$TARGET_PATH/checks/full_log.log
+docker run -v $PRECHECK_ROOT:$PRECHECK_ROOT -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) efabless/mpw_precheck:latest bash -c " cd $PRECHECK_ROOT ; python3 mpw_precheck.py license yaml manifest makefile consistency xor --pdk_root $PDK_ROOT --input_directory $TARGET_PATH --caravel_root $CARAVEL_ROOT --output_directory $OUTPUT_DIRECTORY"
+output=$OUTPUT_DIRECTORY/logs/precheck.log
-gzipped_file=$TARGET_PATH/checks/full_log.log.gz
+gzipped_file=$OUTPUT_DIRECTORY/logs/precheck.log.gz
if [[ -f $gzipped_file ]]; then
gzip -d $gzipped_file
@@ -30,7 +32,7 @@
grep "Violation Message" $output
-cnt=$(grep -c "All Checks PASSED!" $output)
+cnt=$(grep -c "All Checks Passed" $output)
if ! [[ $cnt ]]; then cnt=0; fi
if [[ $cnt -eq 1 ]]; then exit 0; fi
exit 2
diff --git a/.github/workflows/caravel_build.yml b/.github/workflows/caravel_build.yml
index f86ab79..c615662 100644
--- a/.github/workflows/caravel_build.yml
+++ b/.github/workflows/caravel_build.yml
@@ -6,6 +6,7 @@
push:
# Runs on Pull Requests
pull_request:
+ workflow_dispatch:
jobs:
make_ship:
@@ -24,12 +25,12 @@
- name: Install The PDK
run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
- name: Run make ship
run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-ship.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
set_user_id:
runs-on: ubuntu-latest
@@ -47,12 +48,12 @@
- name: Install The PDK
run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
- name: Run Set User ID
run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-set-id.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
xor_wrapper:
runs-on: ubuntu-latest
@@ -70,9 +71,9 @@
- name: Install The PDK
run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
- name: Run XOR Check
run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-xor.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml
index a8d1b17..5b8ea91 100644
--- a/.github/workflows/user_project_ci.yml
+++ b/.github/workflows/user_project_ci.yml
@@ -1,4 +1,4 @@
-name: UPRJ_CI
+name: CI
on:
@@ -6,6 +6,7 @@
push:
# Runs on Pull Requests
pull_request:
+ workflow_dispatch:
jobs:
precheck:
@@ -62,9 +63,9 @@
uses: docker/setup-buildx-action@v1
- name: Install The PDK
- run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
+ run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
env:
- OPENLANE_TAG: v0.12
+ OPENLANE_TAG: 2021.09.16_03.28.21
- name: Install The Dockerized DV Setup
run: docker pull efabless/dv_setup:latest
@@ -73,27 +74,27 @@
# Run test number 0,1,2,3,4 in one job <test-ids> <sim-mode>
run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/run-dv-wrapper.sh 0,1,2,3,4 RTL
- # dv_gl:
- # runs-on: ubuntu-latest
- # steps:
- # - uses: actions/checkout@v2
- # with:
- # submodules: 'true'
+ dv_gl:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: 'true'
- # - name: Set up QEMU
- # uses: docker/setup-qemu-action@v1
+ - name: Set up QEMU
+ uses: docker/setup-qemu-action@v1
- # - name: Set up Docker Buildx
- # uses: docker/setup-buildx-action@v1
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v1
- # - name: Install The PDK
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
- # env:
- # OPENLANE_TAG: v0.12
+ - name: Install The PDK
+ run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
+ env:
+ OPENLANE_TAG: 2021.09.16_03.28.21
- # - name: Install The Dockerized DV Setup
- # run: docker pull efabless/dv_setup:latest
+ - name: Install The Dockerized DV Setup
+ run: docker pull efabless/dv_setup:latest
- # - name: Run DV tests
- # # Run test number 0,1,2,3,4 in one job <test-ids> <sim-mode>
- # run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/run-dv-wrapper.sh 0,1,2,3,4 GL
\ No newline at end of file
+ - name: Run DV tests
+ # Run test number 0,1,2,3,4 in one job <test-ids> <sim-mode>
+ run: bash ${GITHUB_WORKSPACE}/.github/scripts/dv/run-dv-wrapper.sh 0,1,2,3,4 GL
\ No newline at end of file
diff --git a/Makefile b/Makefile
index 25a5e72..dc9be17 100644
--- a/Makefile
+++ b/Makefile
@@ -15,7 +15,7 @@
# SPDX-License-Identifier: Apache-2.0
CARAVEL_ROOT?=$(PWD)/caravel
-PRECHECK_ROOT?=${HOME}/open_mpw_precheck
+PRECHECK_ROOT?=${HOME}/mpw_precheck
SIM ?= RTL
# Install lite version of caravel, (1): caravel-lite, (0): caravel
@@ -35,9 +35,9 @@
SUBMODULE?=1
# Include Caravel Makefile Targets
-.PHONY: %
+.PHONY: % : check-caravel
%:
- $(MAKE) -f $(CARAVEL_ROOT)/Makefile $@
+ export CARAVEL_ROOT=$(CARAVEL_ROOT) && $(MAKE) -f $(CARAVEL_ROOT)/Makefile $@
# Verify Target for running simulations
.PHONY: verify
@@ -54,12 +54,11 @@
PATTERNS=$(shell cd verilog/dv && find * -maxdepth 0 -type d)
DV_PATTERNS = $(foreach dv, $(PATTERNS), verify-$(dv))
TARGET_PATH=$(shell pwd)
-PDK_PATH=${PDK_ROOT}/sky130A
VERIFY_COMMAND="cd ${TARGET_PATH}/verilog/dv/$* && export SIM=${SIM} && make"
$(DV_PATTERNS): verify-% : ./verilog/dv/%
- docker run -v ${TARGET_PATH}:${TARGET_PATH} -v ${PDK_PATH}:${PDK_PATH} \
+ docker run -v ${TARGET_PATH}:${TARGET_PATH} -v ${PDK_ROOT}:${PDK_ROOT} \
-v ${CARAVEL_ROOT}:${CARAVEL_ROOT} \
- -e TARGET_PATH=${TARGET_PATH} -e PDK_PATH=${PDK_PATH} \
+ -e TARGET_PATH=${TARGET_PATH} -e PDK_ROOT=${PDK_ROOT} \
-e CARAVEL_ROOT=${CARAVEL_ROOT} \
-u $(id -u $$USER):$(id -g $$USER) efabless/dv_setup:latest \
sh -c $(VERIFY_COMMAND)
@@ -137,15 +136,15 @@
# Default installs to the user home directory, override by "export PRECHECK_ROOT=<precheck-installation-path>"
.PHONY: precheck
precheck:
- @git clone https://github.com/efabless/open_mpw_precheck.git --depth=1 $(PRECHECK_ROOT)
- @docker pull efabless/open_mpw_precheck:latest
+ @git clone https://github.com/efabless/mpw_precheck.git --depth=1 $(PRECHECK_ROOT)
+ @docker pull efabless/mpw_precheck:latest
.PHONY: run-precheck
run-precheck: check-precheck check-pdk check-caravel
- $(eval TARGET_PATH := $(shell pwd))
+ $(eval INPUT_DIRECTORY := $(shell pwd))
cd $(PRECHECK_ROOT) && \
- docker run -e TARGET_PATH=$(TARGET_PATH) -e PDK_ROOT=$(PDK_ROOT) -e CARAVEL_ROOT=$(CARAVEL_ROOT) -v $(PRECHECK_ROOT):/usr/local/bin -v $(TARGET_PATH):$(TARGET_PATH) -v $(PDK_ROOT):$(PDK_ROOT) -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \
- -u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/open_mpw_precheck:latest bash -c "python3 open_mpw_prechecker.py --pdk_root $(PDK_ROOT) --target_path $(TARGET_PATH) -rfc -c $(CARAVEL_ROOT) "
+ docker run -e INPUT_DIRECTORY=$(INPUT_DIRECTORY) -e PDK_ROOT=$(PDK_ROOT) -e CARAVEL_ROOT=$(CARAVEL_ROOT) -v $(PRECHECK_ROOT):$(PRECHECK_ROOT) -v $(INPUT_DIRECTORY):$(INPUT_DIRECTORY) -v $(PDK_ROOT):$(PDK_ROOT) -v $(CARAVEL_ROOT):$(CARAVEL_ROOT) \
+ -u $(shell id -u $(USER)):$(shell id -g $(USER)) efabless/mpw_precheck:latest bash -c "cd $(PRECHECK_ROOT) ; python3 mpw_precheck.py --pdk_root $(PDK_ROOT) --input_directory $(INPUT_DIRECTORY) --caravel_root $(CARAVEL_ROOT)"
# Install PDK using OL's Docker Image
.PHONY: pdk-nonnative