| PDK_PATH=$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 |