Merge branch 'mpw5-sub'
diff --git a/.github/scripts/build/run-set-id.sh b/.github/scripts/build/run-set-id.sh
deleted file mode 100644
index 1042716..0000000
--- a/.github/scripts/build/run-set-id.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-
-export UPRJ_ROOT=$(pwd)
-cd ..
-export CARAVEL_ROOT=$(pwd)/caravel
-export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG
-export PDK_ROOT=$(pwd)/pdks
-export USER_ID=00000001
-
-cd $UPRJ_ROOT || exit
-
-# Install full version of caravel
-git clone --depth=1 https://github.com/efabless/caravel $CARAVEL_ROOT
-
-LOG_FILE=out.log
-docker run -v $UPRJ_ROOT:$UPRJ_ROOT -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -e UPRJ_ROOT=$UPRJ_ROOT -e PDK_ROOT=$PDK_ROOT -e CARAVEL_ROOT=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME bash -c "cd $CARAVEL_ROOT; make uncompress; cd $UPRJ_ROOT; export USER_ID=$USER_ID; make set_user_id | tee $LOG_FILE;"
-
-cnt=$(grep "Done" $LOG_FILE -s | wc -l)
-
-if [[ $cnt -ne 3 ]]; then
-	exit 2
-fi
-
-exit 0
diff --git a/.github/scripts/build/run-ship.sh b/.github/scripts/build/run-ship.sh
deleted file mode 100644
index 01ddec1..0000000
--- a/.github/scripts/build/run-ship.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-
-export UPRJ_ROOT=$(pwd)
-cd ..
-export CARAVEL_ROOT=$(pwd)/caravel
-export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG
-export PDK_ROOT=$(pwd)/pdks
-
-cd $UPRJ_ROOT || exit
-
-# Install full version of caravel
-git clone --depth=1 https://github.com/efabless/caravel $CARAVEL_ROOT
-
-make install_mcw
-
-docker run -v $UPRJ_ROOT:$UPRJ_ROOT -v $PDK_ROOT:$PDK_ROOT -v $CARAVEL_ROOT:$CARAVEL_ROOT -e UPRJ_ROOT=$UPRJ_ROOT -e PDK_ROOT=$PDK_ROOT -e CARAVEL_ROOT=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME bash -c "cd $CARAVEL_ROOT; make uncompress; cd $UPRJ_ROOT; make -f $CARAVEL_ROOT/Makefile ship;"
-
-SHIP_FILE=$UPRJ_ROOT/gds/caravel.gds
-
-if test -f "$SHIP_FILE"; then
-  exit 0
-else
-  exit 2
-fi
diff --git a/.github/scripts/build_pdk.sh b/.github/scripts/build_pdk.sh
deleted file mode 100644
index 8317b6a..0000000
--- a/.github/scripts/build_pdk.sh
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/bash
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-git clone --depth=1 https://github.com/efabless/caravel-lite.git
-
-export HOME=$(pwd)
-cd ..
-export PDK_ROOT=$(pwd)/pdks && mkdir "$PDK_ROOT"
-cd "$HOME"/caravel-lite/ || exit
-
-make skywater-pdk skywater-library open_pdks build-pdk gen-sources
-
-exit 0
diff --git a/.github/scripts/dv/run-dv-wrapper.sh b/.github/scripts/dv/run-dv-wrapper.sh
deleted file mode 100755
index c602fea..0000000
--- a/.github/scripts/dv/run-dv-wrapper.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-
-# comma seperated test ids
-IDS=$1
-# simulation mode : RTL/GL
-SIM_MODE=$2
-
-DV_TEST_IDS=(${IDS//,/ })
-
-export TARGET_PATH=$(pwd)
-export CARAVEL_ROOT=$(pwd)/caravel
-
-if [ ! -d $TARGET_PATH ]; then
-  echo "Directory target /path/to/dir DOES NOT exists."
-  exit 9999
-fi
-
-cd ..
-
-export PDK_ROOT=$(pwd)/pdks
-if [ ! -d $PDK_ROOT ]; then
-  echo "Directory pdk /path/to/dir DOES NOT exists."
-  exit 9999
-fi
-
-DV_PATH=$TARGET_PATH/verilog/dv
-if [ ! -d $DV_PATH ]; then
-  echo "Directory /path/to/dir DOES NOT exists."
-  exit 9999
-fi
-
-for id in "${DV_TEST_IDS[@]}"; do
-  docker run -v $TARGET_PATH:$TARGET_PATH -v $PDK_ROOT:$PDK_ROOT \
-    -v $CARAVEL_ROOT:$CARAVEL_ROOT \
-    -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 \
-    bash -c "bash $TARGET_PATH/.github/scripts/dv/run-dv.sh $PDK_ROOT $DV_PATH $id $SIM_MODE"
-
-  echo "DONE!"
-
-  VERDICT_FILE=$TARGET_PATH/verilog/dv/$id.out
-
-  if [ -f $VERDICT_FILE ]; then
-    cnt=$(grep "Pass" $VERDICT_FILE -s | wc -l)
-    if ! [[ $cnt ]]; then cnt = 0; fi
-  else
-    echo "DV check failed due to subscript failure. Please review the logs"
-    exit 2
-  fi
-
-  echo "Verdict: $cnt"
-
-  if [[ $cnt -ne 1 ]]; then
-    exit 2
-  fi
-done
-
-exit 0
diff --git a/.github/scripts/dv/run-dv.sh b/.github/scripts/dv/run-dv.sh
deleted file mode 100755
index 99fcd74..0000000
--- a/.github/scripts/dv/run-dv.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-PDK_ROOT=$1
-DV_PATH=$2
-DV_TEST_ID=$3
-SIM_MODE=$4
-
-cd $DV_PATH || exit
-
-## get the name of all subdfolders under verilog/dv
-ALL_DV_TESTS="$(find * -maxdepth 0 -type d)"
-## convert all ALL_DV_TESTS to an array
-TESTS_ARR=($ALL_DV_TESTS)
-## get length of the TESTS array
-len=${#TESTS_ARR[@]}
-
-## make sure that the test ID is less than the array length
-if [ $DV_TEST_ID -ge $len ]; then
-  echo "Error: Invalid Test ID"
-  exit 1
-fi
-
-## get the name corresponding to the test ID
-PATTERN=${TESTS_ARR[$DV_TEST_ID]}
-
-OUT_FILE=$DV_PATH/$DV_TEST_ID.out
-
-export SIM=$SIM_MODE
-echo "Running $PATTERN $SIM.."
-logFile=$DV_PATH/$PATTERN.$SIM.dv.out
-cd $PATTERN || exit
-echo $(pwd)
-make 2>&1 | tee $logFile
-grep "Monitor" $logFile >>$OUT_FILE
-make clean
-
-echo "Execution Done on $PATTERN !"
-
-cat $OUT_FILE
-
-exit 0
diff --git a/.github/scripts/install_magic.sh b/.github/scripts/install_magic.sh
deleted file mode 100644
index ca91137..0000000
--- a/.github/scripts/install_magic.sh
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/bash
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-sudo apt-get install -y csh freeglut3-dev libncurses5-dev libncursesw5-dev libglu1-mesa-dev libx11-dev mesa-common-dev tcl tcl-dev tk tk-dev
-
-git clone --depth=1 --branch 8.3.265 https://github.com/RTimothyEdwards/magic.git
-cd magic || exit
-sudo ./configure --disable-locking --prefix=/usr CFLAGS='-g -O0 -m64 -fPIC'
-sudo make -j4
-sudo make install
-
-exit 0
diff --git a/.github/scripts/run_precheck.sh b/.github/scripts/run_precheck.sh
deleted file mode 100644
index 16091a6..0000000
--- a/.github/scripts/run_precheck.sh
+++ /dev/null
@@ -1,31 +0,0 @@
-#!/bin/bash
-# SPDX-FileCopyrightText: 2020 Efabless Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-# SPDX-License-Identifier: Apache-2.0
-export INPUT_DIRECTORY=$(pwd)
-export PRECHECK_ROOT=$INPUT_DIRECTORY/mpw_precheck
-export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
-export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
-cd ..
-export PDK_ROOT=$(pwd)/pdks
-cd "$PRECHECK_ROOT" || exit
-
-docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "$PDK_ROOT":"$PDK_ROOT" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="$PDK_ROOT" -u $(id -u "$USER"):$(id -g "$USER") efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_root $PDK_ROOT --output_directory $OUTPUT_DIRECTORY license makefile consistency xor magic_drc klayout_beol klayout_feol klayout_met_min_ca_density klayout_offgrid klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"
-
-
-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
deleted file mode 100644
index d9cadb3..0000000
--- a/.github/workflows/caravel_build.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-# name: Caravel Build
-
-# on:
-#  # Runs on Every Push
-#  push:
-#  # Runs on Pull Requests
-#  pull_request:
-#  workflow_dispatch:
-
-# jobs:
-#  make_ship:
-#    runs-on: ubuntu-latest
-#    steps:
-#      - uses: actions/checkout@v2
-
-#      - name: Set up QEMU
-#        uses: docker/setup-qemu-action@v1
-
-#      - name: Set up Docker Buildx
-#        uses: docker/setup-buildx-action@v1
-
-#      - name: Install Magic
-#        run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
-
-#      - name: Build PDK
-#        run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
-
-#      - name: Run make ship
-#        run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-ship.sh
-#        env:
-#          OPENLANE_TAG: 2021.12.17_05.07.41
-
-#  set_user_id:
-#    runs-on: ubuntu-latest
-#    steps:
-#      - uses: actions/checkout@v2
-
-#      - name: Set up QEMU
-#        uses: docker/setup-qemu-action@v1
-
-#      - name: Set up Docker Buildx
-#        uses: docker/setup-buildx-action@v1
-
-#      - name: Install Magic
-#        run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
-
-#      - name: Build PDK
-#        run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
-
-#      - name: Run Set User ID
-#        run: bash ${GITHUB_WORKSPACE}/.github/scripts/build/run-set-id.sh
-#        env:
-#          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 d966d14..cbd9563 100644
--- a/.github/workflows/user_project_ci.yml
+++ b/.github/workflows/user_project_ci.yml
@@ -8,8 +8,7 @@
   workflow_dispatch:
 
 jobs:
-  precheck:
-    timeout-minutes: 720
+  pdk:
     runs-on: ubuntu-latest
     steps:
       - uses: actions/checkout@v2
@@ -20,62 +19,127 @@
       - name: Set up Docker Buildx
         uses: docker/setup-buildx-action@v1
 
-      - name: Install Magic
-        run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
+      - name: Export PDK ROOT
+        run: echo "PDK_ROOT=/usr/local/pdk" >> $GITHUB_ENV
 
-      - name: Build PDK
-        run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
+      - name: Install dependencies
+        run: |
+          sudo mkdir -p ${{ env.PDK_ROOT }}
+          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
+          make install
+          make pdk
 
-      - name: Install The Precheck
-        run: git clone --depth=1 https://github.com/efabless/mpw_precheck.git ${GITHUB_WORKSPACE}/mpw_precheck
+      - name: Tarball PDK
+        run: |
+          tar -cf /tmp/sky130A.tar -C $PDK_ROOT/sky130A .
 
-      - name: Run The Precheck
-        run: bash ${GITHUB_WORKSPACE}/.github/scripts/run_precheck.sh
+      - name: Upload PDK Tarball
+        uses: actions/upload-artifact@v2
+        with:
+          name: pdk-tarball
+          path: /tmp/sky130A.tar
 
-  # dv_rtl:
-  #   runs-on: ubuntu-latest
-  #   steps:
-  #     - uses: actions/checkout@v2
 
-  #     - name: Set up QEMU
-  #       uses: docker/setup-qemu-action@v1
+  mpw_precheck:
+    timeout-minutes: 720
+    runs-on: ubuntu-latest
+    needs: [pdk]
+    steps:
+      - uses: actions/checkout@v2
 
-  #     - name: Set up Docker Buildx
-  #       uses: docker/setup-buildx-action@v1
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v1
 
-  #     - name: Install Magic
-  #       run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
 
-  #     - name: Build PDK
-  #       run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
+      - name: Export PDK ROOT
+        run: |
+          echo "PDK_ROOT=/usr/local/pdk" >> $GITHUB_ENV
 
-  #     - name: Install The Dockerized DV Setup
-  #       run: docker pull efabless/dv_setup:latest
+      - name: Download PDK Tarball
+        uses: actions/download-artifact@v2
+        with:
+          name: pdk-tarball
+          path: /tmp
 
-  #     - 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      RTL
+      - name: Unpack PDK Tarball
+        run: |
+          sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A
+          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
+          tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A .
 
-  # dv_gl:
-  #   runs-on: ubuntu-latest
-  #   steps:
-  #     - uses: actions/checkout@v2
+      - name: Run MPW-Precheck
+        run: |
+          export INPUT_DIRECTORY=$(pwd)
+          export PRECHECK_ROOT=$INPUT_DIRECTORY/mpw_precheck
+          export OUTPUT_DIRECTORY=$INPUT_DIRECTORY/mpw_precheck_result
+          export OUTPUT=$OUTPUT_DIRECTORY/logs/precheck.log
 
-  #     - name: Set up QEMU
-  #       uses: docker/setup-qemu-action@v1
+          git clone --depth=1 -b mpw-5b https://github.com/efabless/mpw_precheck.git
 
-  #     - name: Set up Docker Buildx
-  #       uses: docker/setup-buildx-action@v1
+          docker run -v "$PRECHECK_ROOT":"$PRECHECK_ROOT" -v "$INPUT_DIRECTORY":"$INPUT_DIRECTORY" -v "${{ env.PDK_ROOT }}":"${{ env.PDK_ROOT }}" -e INPUT_DIRECTORY="$INPUT_DIRECTORY" -e PDK_ROOT="${{ env.PDK_ROOT }}" -u $(id -u "$USER"):$(id -g "$USER") efabless/mpw_precheck:latest bash -c "cd $PRECHECK_ROOT; python3 mpw_precheck.py --input_directory $INPUT_DIRECTORY --pdk_root ${{ env.PDK_ROOT }} --output_directory $OUTPUT_DIRECTORY license makefile consistency xor magic_drc klayout_beol klayout_feol klayout_met_min_ca_density klayout_offgrid klayout_pin_label_purposes_overlapping_drawing klayout_zeroarea"
 
-  #     - name: Install Magic
-  #       run: bash ${GITHUB_WORKSPACE}/.github/scripts/install_magic.sh
+          cnt=$(grep -c "All Checks Passed" "$OUTPUT")
+          if ! [[ $cnt ]]; then cnt=0; fi
+          if [[ $cnt -eq 1 ]]; then exit 0; fi
+          exit 2
 
-  #     - name: Build PDK
-  #       run: bash ${GITHUB_WORKSPACE}/.github/scripts/build_pdk.sh
+  user_project_flow:
+    timeout-minutes: 720
+    runs-on: ubuntu-latest
+    needs: [pdk]
+    steps:
+      - uses: actions/checkout@v2
 
-  #     - name: Install The Dockerized DV Setup
-  #       run: docker pull efabless/dv_setup:latest
+      - name: Set up QEMU
+        uses: docker/setup-qemu-action@v1
 
-  #     - 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
+      - name: Set up Docker Buildx
+        uses: docker/setup-buildx-action@v1
+
+      - name: Export PDK ROOT
+        run: echo "PDK_ROOT=/usr/local/pdk" >> $GITHUB_ENV
+
+      - name: Export OPENLANE ROOT
+        run: echo "OPENLANE_ROOT=/home/runner/work/caravel_user_project/openlane" >> $GITHUB_ENV
+
+      - name: Download PDK Tarball
+        uses: actions/download-artifact@v2
+        with:
+          name: pdk-tarball
+          path: /tmp
+
+      - name: Unpack PDK Tarball
+        run: |
+          sudo mkdir -p ${{ env.PDK_ROOT }}/sky130A
+          sudo chown -R $USER:$USER ${{ env.PDK_ROOT }}
+          tar -xf /tmp/sky130A.tar -C $PDK_ROOT/sky130A .
+
+      - name: Install dependencies
+        run: |
+          make install
+          make install_mcw
+          make openlane
+          make simenv
+
+      - name: Harden using Openlane
+        run: |
+          make user_proj_example
+          make user_project_wrapper
+
+      - name: Run DV RTL tests
+        run: |
+          make verify-io_ports-rtl 
+          make verify-la_test1-rtl 
+          make verify-la_test2-rtl 
+          make verify-mprj_stimulus-rtl 
+          make verify-wb_port-rtl
+
+      - name: Run DV GL tests
+        run: |
+          make verify-io_ports-gl 
+          make verify-la_test1-gl 
+          make verify-la_test2-gl 
+          make verify-mprj_stimulus-gl 
+          make verify-wb_port-gl
diff --git a/Makefile b/Makefile
index 9bb954a..22581aa 100644
--- a/Makefile
+++ b/Makefile
@@ -65,7 +65,7 @@
 # Openlane
 blocks=$(shell cd openlane && find * -maxdepth 0 -type d)
 .PHONY: $(blocks)
-$(blocks):
+$(blocks): % :
 	export CARAVEL_ROOT=$(CARAVEL_ROOT) && cd openlane && $(MAKE) $*
 
 dv_patterns=$(shell cd verilog/dv && find * -maxdepth 0 -type d)
@@ -94,8 +94,14 @@
 .PHONY: harden
 harden: $(blocks)
 
-.PHONY: verify
-verify: $(dv-targets)
+.PHONY: verify-all-rtl
+verify-all-rtl: $(dv-targets-rtl)
+
+.PHONY: verify-all-gl
+verify-all-gl: $(dv-targets-gl)
+
+.PHONY: verify-all-gl-sdf
+verify-all-gl-sdf: $(dv-targets-gl-sdf)
 
 $(dv-targets-rtl): SIM=RTL
 $(dv-targets-rtl): verify-%-rtl: $(dv_base_dependencies)
diff --git a/README.md b/README.md
index a12ad0e..a7a6a6f 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,6 @@
 ## Overview
 
 Keeping your data secure. This project aims to secure data from adversaries. It has inherent SRAM to keep the data safe and they are kept as not plaintext but ciphered. We got 5 macros inherently in order to accomplish our goal. Below section will be described those macros briefly.
-
 <table>
   <tr>
     <td  align="center"><img src="./docs/source/_static/secure_memory.png" ></td>
@@ -138,4 +137,4 @@
     1. `Magic` - Performs DRC Checks & Antenna Checks
     2. `Klayout` - Performs DRC Checks
     3. `Netgen` - Performs LVS Checks
-    4. `CVC` - Performs Circuit Validity Checks
\ No newline at end of file
+    4. `CVC` - Performs Circuit Validity Checks
diff --git a/dnm.txt b/dnm.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/dnm.txt
diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst
index 051bcbf..a62dd7e 100644
--- a/docs/source/quickstart.rst
+++ b/docs/source/quickstart.rst
@@ -93,7 +93,7 @@
 		make <module_name>	
 	..
 
-		For an example of hardening a project please refer to `user_project_example <https://github.com/efabless/caravel_user_project/blob/dv-documentation-update/docs/source/index.rst#running-openlane>`_
+		For an example of hardening a project please refer to `user_project_example <https://github.com/efabless/caravel_user_project/blob/main/docs/source/index.rst#hardening-the-user-project-using-openlane>`_
 	
 #.  Integrate modules into the user_project_wrapper