| PDK_ROOT=$1 | |
| DV_PATH=$2 | |
| DV_TEST_ID=$3 | |
| SIM_MODE=$4 | |
| cd $DV_PATH | |
| ## 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 | |
| echo $(pwd) | |
| make 2>&1 | tee $logFile | |
| grep "Monitor" $logFile >> $OUT_FILE | |
| make clean | |
| echo "Execution Done on $PATTERN !" | |
| cat $OUT_FILE | |
| exit 0 |