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
