| #!/bin/bash | |
| export RUNSET_DIR=$(cd ./V1.3.0/DRC/Calibre; pwd) | |
| export PWK_HOME=$(cd ./V1.3.0; pwd) | |
| export LOG | |
| export JOB_NAME | |
| export JOB_HOME | |
| #Sets the LOG variable and creates the log directory if it doesn't exist. | |
| if [ ! -d ./log ]; then | |
| mkdir log | |
| LOG=./log | |
| else | |
| LOG=./log | |
| fi | |
| #Removes the outputs if the script is run again. Otherwise it creates the output directory and all of its subdirectories | |
| if [ ! -d "./output/" ]; then | |
| echo "Making output directory...." | |
| mkdir -p output/{summary,results,db,rdb} | |
| else | |
| echo "Building directories...." | |
| mkdir -p output/{summary,results,db,rdb} | |
| fi | |
| #If the gds files weren't generated, this if statement extracts all of the gds files from the cells within the lib folder. | |
| if [ ! -d "../lib/gds" ]; then | |
| cd ../lib/magic | |
| ./extract_all | |
| cd - | |
| fi | |
| cd ../lib/gds | |
| JOB_HOME=$PWD | |
| cd - | |
| if [ ! -z "$1" ]; then | |
| export i=$(echo $1 | cut -f 1 -d '.') #i is used as the input variable | |
| else | |
| export i="$(basename -s .gds $(ls $JOB_HOME/*.gds))" #i is used s the input variable | |
| fi | |
| #Loops through the input gds files. If no user input is supplied, all gds files are put through the DRC process. | |
| for JOB_NAME in $i ; do | |
| #Checks to make sure the file supplied exists. If not, then it exits the bash script. | |
| if [ ! -e $JOB_HOME/$JOB_NAME.gds ]; then echo "Did not find '$JOB_HOME/$JOB_NAME.gds'" | |
| exit 1 | |
| fi | |
| echo -e "\nexport JOB_HOME='$JOB_HOME'" | |
| echo -e "export JOB_NAME='$JOB_NAME'" | |
| echo -e "=====================================" | |
| set -x #Turns on debugging | |
| calibre -gui -drc -runset $RUNSET_DIR/s8_latchup_runset -batch > $LOG/s8_latch_runset.log 2>&1 | |
| set +x #Turns off debugging | |
| done #End of the loop | |
| echo "Moving output files to ./output" | |
| mv -v *.results ./output/results/ | |
| mv -v *.summary ./output/summary/ | |
| mv -v *.rdb ./output/rdb/ | |
| mv -v *.db ./output/db/ | |
| mv -v *_s8* ./output/ | |
| exit 0 |