fix github build action
diff --git a/.github/scripts/build/build-user.sh b/.github/scripts/build/build-user.sh
new file mode 100644
index 0000000..87e0cb2
--- /dev/null
+++ b/.github/scripts/build/build-user.sh
@@ -0,0 +1,3 @@
+docker run -v $OPENLANE_ROOT:/openLANE_flow -v $PDK_ROOT:$PDK_ROOT -v $PWD:/project -v $CARAVEL_ROOT:$CARAVEL_ROOT -e PDK_ROOT=$PDK_ROOT -e CARAVEL_ROOT=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) $OPENLANE_IMAGE_NAME sh -c "cd /project/openlane && flow.tcl -design ./user_proj -save_path .. -save -tag user_proj -overwrite"
+
+exit $?
diff --git a/.github/scripts/build/build-wrapper.sh b/.github/scripts/build/build-wrapper.sh
new file mode 100644
index 0000000..2c17e94
--- /dev/null
+++ b/.github/scripts/build/build-wrapper.sh
@@ -0,0 +1,3 @@
+docker run -v $OPENLANE_ROOT:/openLANE_flow -v $PDK_ROOT:$PDK_ROOT -v $PWD:/project -v $CARAVEL_ROOT:$CARAVEL_ROOT -e PDK_ROOT=$PDK_ROOT -e CARAVEL_ROOT=$CARAVEL_ROOT -u $(id -u $USER):$(id -g $USER) $OPENLANE_IMAGE_NAME sh -c "cd /project/openlane && flow.tcl -design ./user_project_wrapper -save_path .. -save -tag user_project_wrapper -overwrite"
+
+exit $?
diff --git a/.github/scripts/build/run-install-magic.sh b/.github/scripts/build/run-install-magic.sh
new file mode 100644
index 0000000..c2eaf01
--- /dev/null
+++ b/.github/scripts/build/run-install-magic.sh
@@ -0,0 +1,9 @@
+sudo apt install -y tcsh csh tcl-dev tk-dev libcairo2-dev
+sudo apt install -y gcc-riscv64-unknown-elf iverilog
+
+git clone git://opencircuitdesign.com/magic
+cd magic
+git checkout $MAGIC_VERSION
+./configure
+make
+sudo make install
\ No newline at end of file
diff --git a/.github/scripts/build/run-pdk-build.sh b/.github/scripts/build/run-pdk-build.sh
new file mode 100644
index 0000000..567196f
--- /dev/null
+++ b/.github/scripts/build/run-pdk-build.sh
@@ -0,0 +1,48 @@
+#!/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 RUN_ROOT=$(pwd)
+export CARAVEL_ROOT=$(pwd)/caravel
+
+cd $RUN_ROOT/..
+echo $PWD
+export OPENLANE_ROOT=$(pwd)/openlane
+export PDK_ROOT=$(pwd)/pdks
+export INSTALL_SRAM=enable
+
+rm -rf $OPENLANE_ROOT $PDK_ROOT $CARAVEL_ROOT
+
+cd $RUN_ROOT
+echo $PWD
+make install
+
+cd $CARAVEL_ROOT
+echo $PWD
+git checkout $CARAVEL_TAG
+
+cd $RUN_ROOT
+echo $PWD
+make openlane
+
+#cd $OPENLANE_ROOT
+#echo $PWD
+#git checkout $OPENLANE_TAG
+make pdk
+
+echo "done installing"
+
+cd $RUN_ROOT
+exit 0
\ No newline at end of file
diff --git a/.github/scripts/build/run-set-id.sh b/.github/scripts/build/run-set-id.sh
deleted file mode 100644
index 9cb87f8..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 PDK_ROOT=$(pwd)/pdks
-export CARAVEL_ROOT=$(pwd)/caravel
-export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG
-export USER_ID=00000001
-
-cd $UPRJ_ROOT
-
-# Install full version of caravel
-git clone https://github.com/efabless/caravel --depth 1 $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 d084c00..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 PDK_ROOT=$(pwd)/pdks
-export CARAVEL_ROOT=$(pwd)/caravel
-export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG
-
-cd $UPRJ_ROOT
-
-# Install full version of caravel
-git clone https://github.com/efabless/caravel --depth 1 $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/run-xor.sh b/.github/scripts/build/run-xor.sh
deleted file mode 100644
index 53ccb59..0000000
--- a/.github/scripts/build/run-xor.sh
+++ /dev/null
@@ -1,36 +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)
-export CARAVEL_ROOT=$(pwd)/caravel
-cd ..
-export PDK_ROOT=$(pwd)/pdks
-export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG
-
-cd $UPRJ_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 $UPRJ_ROOT; export USER_ID=$USER_ID; make xor-wrapper | tee $LOG_FILE;"
-
-cnt=$(grep -oP '(?<=Total XOR differences = )[0-9]+' $LOG_FILE)
-
-echo "Total XOR differences = $cnt"
-
-if [[ $cnt -ne 0 ]]; then 
-    exit 2; 
-fi
-
-exit 0
diff --git a/.github/scripts/dv/pdkBuild.sh b/.github/scripts/dv/pdkBuild.sh
deleted file mode 100644
index 9f9ac93..0000000
--- a/.github/scripts/dv/pdkBuild.sh
+++ /dev/null
@@ -1,59 +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 RUN_ROOT=$(pwd)
-
-
-# By default skip timing since we don't need the libs in any of the CI tests
-export SKIP_TIMING=${1:-1}
-export IMAGE_NAME=efabless/openlane:$OPENLANE_TAG
-docker pull $IMAGE_NAME
-
-cd $RUN_ROOT/..
-export PDK_ROOT=$(pwd)/pdks
-mkdir $PDK_ROOT
-echo $PDK_ROOT
-echo $RUN_ROOT
-cd $RUN_ROOT
-make skywater-pdk
-make skywater-library
-# The following section is for running on the CI.
-# If you're running locally you should replace them with: `make skywater-library`
-# This is because sometimes while setting up the conda env (skywater's make timing) it fails to fetch something
-# Then it exits without retrying. So, here we're retrying, and if something goes wrong it will exit after 5 retries.
-# Section Begin
-if [ $SKIP_TIMING -eq 0 ]; then
-	cnt=0
-	until make skywater-timing; do
-	cnt=$((cnt+1))
-	if [ $cnt -eq 5 ]; then
-		exit 2
-	fi
-	rm -rf $PDK_ROOT/skywater-pdk
-	make skywater-pdk
-	make skywater-library
-	done
-fi
-# Section End
-
-make open_pdks
-docker run -v $RUN_ROOT:/openLANE_flow -v $PDK_ROOT:$PDK_ROOT -e PDK_ROOT=$PDK_ROOT -u $(id -u $USER):$(id -g $USER) $IMAGE_NAME  bash -c "make build-pdk"
-
-rm -rf $PDK_ROOT/open_pdks
-rm -rf $PDK_ROOT/skywater-pdk
-
-echo "done installing"
-cd $RUN_ROOT
-exit 0
\ No newline at end of file
diff --git a/.github/scripts/dv/run-dv-wrapper.sh b/.github/scripts/dv/run-dv-tests.sh
similarity index 67%
rename from .github/scripts/dv/run-dv-wrapper.sh
rename to .github/scripts/dv/run-dv-tests.sh
index c03d8e9..5940cc1 100755
--- a/.github/scripts/dv/run-dv-wrapper.sh
+++ b/.github/scripts/dv/run-dv-tests.sh
@@ -24,38 +24,33 @@
 export TARGET_PATH=$(pwd)
 export CARAVEL_ROOT=$(pwd)/caravel
 
+cd ..
+export PDK_ROOT=$(pwd)/pdks
+DV_PATH=$TARGET_PATH/verilog/dv
+
 if [ ! -d $TARGET_PATH ] 
 then
-    echo "Directory target /path/to/dir DOES NOT exists." 
-    exit 9999 
+    echo "Directory target [$TARGET_PATH] DOES NOT exists." 
+    exit 3 
 fi
 
-cd ..
-
-export PDK_ROOT=$(pwd)/pdks
 if [ ! -d $PDK_ROOT ] 
 then
-    echo "Directory pdk /path/to/dir DOES NOT exists." 
-    exit 9999 
+    echo "Directory pdk [$PDK_ROOT] DOES NOT exists." 
+    exit 3 
 fi
 
-DV_PATH=$TARGET_PATH/verilog/dv
 if [ ! -d $DV_PATH ] 
 then
-    echo "Directory /path/to/dir DOES NOT exists." 
-    exit 9999
+    echo "Directory dv [$DV_PATH] DOES NOT exists." 
+    exit 3
 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"
+do
+    $TARGET_PATH/.github/scripts/dv/run-dv.sh $PDK_ROOT $DV_PATH $id $SIM_MODE
 
-    echo "DONE!"
+    echo "Done test $id $SIM_MODE"
 
     VERDICT_FILE=$TARGET_PATH/verilog/dv/$id.out
 
@@ -70,7 +65,7 @@
     echo "Verdict: $cnt"
 
     if [[ $cnt -ne 1 ]]; then 
-        exit 2; 
+        exit 1; 
     fi
 done
 
diff --git a/.github/workflows/caravel_build.yml b/.github/workflows/caravel_build.yml
index 3978d7f..d977573 100644
--- a/.github/workflows/caravel_build.yml
+++ b/.github/workflows/caravel_build.yml
@@ -1,73 +1,52 @@
-name: Caravel Build
-
-
+name: CD
 on:
-    # Runs on Every Push
     push:
-    # Runs on Pull Requests
     pull_request:
     workflow_dispatch:
-
+    workflow_call:
 jobs:
-  make_ship:
+  build:
     runs-on: ubuntu-latest
+    env:
+      PDK_ROOT:            /home/runner/work/caravel_mpw4/pdks
+      OPENLANE_ROOT:       /home/runner/work/caravel_mpw4/openlane
+      CARAVEL_ROOT:        /home/runner/work/caravel_mpw4/caravel_mpw4/caravel
+      OPENLANE_IMAGE_NAME: efabless/openlane:mpw-3a
+      OPENLANE_TAG:        2021.12.17_05.07.41
+      CARAVEL_TAG:         mpw-3a
+      MAGIC_VERSION:       8.3.209
     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 The PDK
-         run:  bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
-         env: 
-          OPENLANE_TAG:  2021.12.17_05.07.41
-
-       - 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 The PDK
-         run:  bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
-         env: 
-          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:  2021.09.16_03.28.21
-
-  xor_wrapper:
-    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 The PDK
-         run:  bash ${GITHUB_WORKSPACE}/.github/scripts/dv/pdkBuild.sh
-         env: 
-          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:  2021.09.16_03.28.21
+       - name: debug
+         run:  |
+           echo ${{ github.event_name }}
+       - name: install deps
+         run:  bash .github/scripts/build/run-install-magic.sh
+       - name: install caravel
+         run:  bash .github/scripts/build/run-pdk-build.sh
+       - name: uncompress
+         run:  make uncompress
+       - name: build user gds
+         run: |
+           bash .github/scripts/build/build-user.sh \
+           || bash .github/scripts/build/build-user.sh \
+           || bash .github/scripts/build/build-user.sh \
+           || bash .github/scripts/build/build-user.sh \
+           bash .github/scripts/build/build-user.sh
+       - name: build wrapper gds
+         run: |
+           bash .github/scripts/build/build-wrapper.sh \
+           || bash .github/scripts/build/build-wrapper.sh \
+           || bash .github/scripts/build/build-wrapper.sh \
+           || bash .github/scripts/build/build-wrapper.sh \
+           || bash .github/scripts/build/build-wrapper.sh
+       - name: compress
+         run:  make compress
+       - name: push
+         #if: github.event_name == 'workflow_dispatch'
+         run: |
+           git add def gds lef mag maglef signoff verilog
+           git config user.email "rbacik@hotmail.com"
+           git config user.name "roman3017"
+           git commit -m "tag action: update build"
+           git push origin HEAD:main
diff --git a/.github/workflows/user_project_ci.yml b/.github/workflows/user_project_ci.yml
index 9196114..bc3cc32 100644
--- a/.github/workflows/user_project_ci.yml
+++ b/.github/workflows/user_project_ci.yml
@@ -1,92 +1,66 @@
 name: CI
-
-
 on:
-    # Runs on Every Push
-    push:
-    # Runs on Pull Requests
-    pull_request:
-    workflow_dispatch:
-
+  workflow_dispatch:
+  workflow_run:
+    workflows: ["CD"]
+    types:
+       - completed
 jobs:
   precheck:
+    if: ${{ github.event.workflow_run.conclusion == 'success' }}
     runs-on: ubuntu-latest
-    timeout-minutes: 720
     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 The Precheck
-        run: sh ${GITHUB_WORKSPACE}/.github/scripts/precheck/precheckBuild.sh
-
+        run: bash .github/scripts/precheck/precheckBuild.sh
+      - name: Sanitize The Precheck
+        run: |
+          sed -i 's/yaml manifest makefile consistency/makefile/g' .github/scripts/precheck/run-precheck.sh
+          gzip -d -f gds/*
       - name: Run The Precheck
-        run: bash ${GITHUB_WORKSPACE}/.github/scripts/precheck/run-precheck.sh
-  
+        run: bash .github/scripts/precheck/run-precheck.sh
   precheck-drc:
-    timeout-minutes: 720
+    if: ${{ github.event.workflow_run.conclusion == 'success' }}
     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 The Precheck
-        run: sh ${GITHUB_WORKSPACE}/.github/scripts/precheck/precheckBuild.sh
-
+        run: bash .github/scripts/precheck/precheckBuild.sh
+      - name: Sanitize The Precheck
+        run: |
+          sed -i 's/yaml manifest makefile consistency/makefile/g' .github/scripts/precheck/run-precheck.sh
+          gzip -d -f gds/*
       - name: Run The Precheck
-        run: bash ${GITHUB_WORKSPACE}/.github/scripts/precheck/run-precheck-drc.sh
-  
+        run: bash .github/scripts/precheck/run-precheck-drc.sh
   dv_rtl:
+    if: ${{ github.event.workflow_run.conclusion == 'success' }}
     runs-on: ubuntu-latest
+    env: 
+      OPENLANE_TAG: 2021.12.17_05.07.41
+      CARAVEL_TAG: mpw-3a
+      MAGIC_VERSION: 8.3.209
     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 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 deps
+         run:  bash .github/scripts/build/run-install-magic.sh
+       - name: Install Caravel
+         run:  bash .github/scripts/build/run-pdk-build.sh
        - 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
-
+         # Run test number 0,1,2,3,4 in one job       <test-ids>   <sim-mode>
+         run: bash .github/scripts/dv/run-dv-tests.sh 4            RTL
   dv_gl:
+    if: ${{ github.event.workflow_run.conclusion == 'success' }}
     runs-on: ubuntu-latest
+    env: 
+      OPENLANE_TAG: 2021.12.17_05.07.41
+      CARAVEL_TAG: mpw-3a
+      MAGIC_VERSION: 8.3.209
     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 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 deps
+         run:  bash .github/scripts/build/run-install-magic.sh
+       - name: Install Caravel
+         run:  bash .github/scripts/build/run-pdk-build.sh
        - 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
+         # Run test number 0,1,2,3,4 in one job       <test-ids>   <sim-mode>
+         run: bash .github/scripts/dv/run-dv-tests.sh 4            GL
diff --git a/openlane/user_proj/config.tcl b/openlane/user_proj/config.tcl
index f031102..fde6603 100755
--- a/openlane/user_proj/config.tcl
+++ b/openlane/user_proj/config.tcl
@@ -44,12 +44,12 @@
 set ::env(CLOCK_PORT) "wb_clk_i"
 set ::env(CLOCK_PERIOD) 10
 
-set ::env(DIE_AREA) "0 0 900 900"
+set ::env(DIE_AREA) "0 0 1000 1000"
 
 set ::env(DIODE_INSERTION_STRATEGY) 4 
 
 set ::env(FP_PIN_ORDER_CFG) $script_dir/pin_order.cfg
-set ::env(FP_CORE_UTIL) 35
+set ::env(FP_CORE_UTIL) 30
 set ::env(FP_PDN_CORE_RING) 0
 set ::env(FP_PDN_IRDROP) 0
 
@@ -62,6 +62,7 @@
 
 set ::env(PL_TARGET_DENSITY) [ expr ($::env(FP_CORE_UTIL)+5) / 100.0 ]
 set ::env(PL_TIME_DRIVEN) 1
+
 set ::env(QUIT_ON_HOLD_VIOLATIONS) 0
 set ::env(QUIT_ON_TIMING_VIOLATIONS) 0
 set ::env(QUIT_ON_SLEW_VIOLATIONS) 0
diff --git a/openlane/user_project_wrapper/config.tcl b/openlane/user_project_wrapper/config.tcl
index 0a6389e..14a9337 100755
--- a/openlane/user_project_wrapper/config.tcl
+++ b/openlane/user_project_wrapper/config.tcl
@@ -20,12 +20,10 @@
 set ::env(STD_CELL_LIBRARY) "sky130_fd_sc_hd"
 
 # YOU ARE NOT ALLOWED TO CHANGE ANY VARIABLES DEFINED IN THE FIXED WRAPPER CFGS 
-#source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper_empty/fixed_wrapper_cfgs.tcl
-source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper/fixed_wrapper_cfgs.tcl
+source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper_empty/fixed_wrapper_cfgs.tcl
 
 # YOU CAN CHANGE ANY VARIABLES DEFINED IN THE DEFAULT WRAPPER CFGS BY OVERRIDING THEM IN THIS CONFIG.TCL
-#source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper_empty/default_wrapper_cfgs.tcl
-source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper/default_wrapper_cfgs.tcl
+source $::env(CARAVEL_ROOT)/openlane/user_project_wrapper_empty/default_wrapper_cfgs.tcl
 
 set script_dir [file dirname [file normalize [info script]]]
 
@@ -50,18 +48,10 @@
 	$script_dir/../../lef/user_proj.lef \
 	$script_dir/src/sky130_sram_2kbyte_1rw1r_32x512_8.lef"
 
-#set ::env(EXTRA_LEFS) "\
-	$script_dir/../user_proj/runs/user_proj/results/final/lef/user_proj.lef \
-  $script_dir/src/sky130_sram_2kbyte_1rw1r_32x512_8.lef"
-
 set ::env(EXTRA_GDS_FILES) "\
 	$script_dir/../../gds/user_proj.gds \
 	$script_dir/src/sky130_sram_2kbyte_1rw1r_32x512_8.gds"
 
-set ::env(EXTRA_GDS_FILES) "\
-	$script_dir/../user_proj/runs/user_proj/results/final/gds/user_proj.gds \
-  $script_dir/src/sky130_sram_2kbyte_1rw1r_32x512_8.gds"
-
 #set ::env(EXTRA_LIBS) "\
 	$script_dir/src/sky130_sram_2kbyte_1rw1r_32x512_8_TT_1p8V_25C.lib"
 
@@ -73,7 +63,7 @@
 
 set ::env(FILL_INSERTION) 0
 
-set ::env(FP_CORE_UTIL) 15
+set ::env(FP_CORE_UTIL) 30
 set ::env(FP_PDN_CHECK_NODES) 0
 set ::env(FP_PDN_ENABLE_RAILS) 0
 set ::env(FP_PDN_MACRO_HOOKS) " \
@@ -83,15 +73,16 @@
 
 set ::env(GLB_RT_MAXLAYER) 5
 set ::env(GLB_RT_OBS) " \
-  met1 300  2100 983.1  2516.54, \
-  met2 300  2100 983.1  2516.54, \
-  met3 300  2100 983.1  2516.54, \
-  met4 300  2100 983.1  2516.54, \
-  met1 1100 2100 1783.1 2516.54, \
-  met2 1100 2100 1783.1 2516.54, \
-  met3 1100 2100 1783.1 2516.54, \
-  met4 1100 2100 1783.1 2516.54"
-#set ::env(KLAYOUT_XOR_GDS) 0
+  met1 300  2230 983.1  2646.54, \
+  met2 300  2230 983.1  2646.54, \
+  met3 300  2230 983.1  2646.54, \
+  met4 300  2230 983.1  2646.54, \
+  met1 1100 2230 1783.1 2646.54, \
+  met2 1100 2230 1783.1 2646.54, \
+  met3 1100 2230 1783.1 2646.54, \
+  met4 1100 2230 1783.1 2646.54"
+
+set ::env(KLAYOUT_XOR_GDS) 0
 
 set ::env(MACRO_PLACEMENT_CFG) $script_dir/macro.cfg
 
@@ -107,17 +98,15 @@
 set ::env(QUIT_ON_HOLD_VIOLATIONS) 0
 set ::env(QUIT_ON_TIMING_VIOLATIONS) 0
 set ::env(QUIT_ON_SLEW_VIOLATIONS) 0
-set ::env(QUIT_ON_MAGIC_DRC) 0
-set ::env(QUIT_ON_TR_DRC) 0
 set ::env(QUIT_ON_LVS_ERROR) 0
-set ::env(QUIT_ON_NEGATIVE_WNS) 0
+set ::env(QUIT_ON_MAGIC_DRC) 0
 
 set ::env(ROUTING_CORES) 8
 
 set ::env(RT_MAX_LAYER) "met4"
 
-set ::env(RUN_KLAYOUT_DRC) 0
-set ::env(RUN_MAGIC_DRC) 0
+#set ::env(RUN_KLAYOUT_DRC) 0
+#set ::env(RUN_MAGIC_DRC) 0
 
 set ::env(SYNTH_TOP_LEVEL) 1
 set ::env(SYNTH_READ_BLACKBOX_LIB) 1
diff --git a/openlane/user_project_wrapper/macro.cfg b/openlane/user_project_wrapper/macro.cfg
index 1a20744..e597dbc 100644
--- a/openlane/user_project_wrapper/macro.cfg
+++ b/openlane/user_project_wrapper/macro.cfg
@@ -1,3 +1,3 @@
-mprj 300 300 N
-sram 300 2100 N
-sram1 1100 2100 N
\ No newline at end of file
+mprj 300 430 N
+sram 300 2230 N
+sram1 1100 2230 N
\ No newline at end of file
diff --git a/verilog/dv/wb_leds/Makefile b/verilog/dv/wb_leds/Makefile
index cc00101..2c2d8ce 100644
--- a/verilog/dv/wb_leds/Makefile
+++ b/verilog/dv/wb_leds/Makefile
@@ -13,6 +13,8 @@
 # limitations under the License.
 #
 # SPDX-License-Identifier: Apache-2.0
+## PDK 
+PDK_PATH = $(PDK_ROOT)/sky130A
 
 ## Caravel Pointers
 CARAVEL_ROOT ?= ../../../caravel
@@ -28,10 +30,8 @@
 UPRJ_BEHAVIOURAL_MODELS = ../
 
 ## RISCV GCC 
-PDK_ROOT?=/local/home/roman/projects/opencircuitdesign/shuttle4/pdks
-GCC_PATH?=/opt/xpack-riscv-none-embed-gcc/bin
-GCC_PREFIX?=riscv-none-embed
-PDK_PATH?=$(PDK_ROOT)/sky130A
+GCC_PATH?=/usr/bin
+GCC_PREFIX?=riscv64-unknown-elf
 
 ## Simulation mode: RTL/GL
 SIM?=RTL
diff --git a/verilog/rtl/uprj_netlists.v b/verilog/rtl/uprj_netlists.v
index 17dd6d2..2ea7f9e 100644
--- a/verilog/rtl/uprj_netlists.v
+++ b/verilog/rtl/uprj_netlists.v
@@ -22,6 +22,7 @@
     `default_nettype wire
     `include "gl/user_project_wrapper.v"
     `include "gl/user_proj.v"
+    `include "../../../openlane/user_project_wrapper/src/sky130_sram_2kbyte_1rw1r_32x512_8.v"
 `else
     `include "../../../openlane/user_project_wrapper/src/user_project_wrapper.v"
     `include "../../../openlane/user_project_wrapper/src/sky130_sram_2kbyte_1rw1r_32x512_8.v"