| #!/bin/bash |
| |
| export RUNSET_DIR=./V1.3.0/DRC/Calibre |
| 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_drc_runset -batch > $LOG/s8_drc_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 |