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