blob: 34badc0db4f99852183a3a73f031abe7e67f1d7a [file] [log] [blame]
#!/usr/bin/env bash
SCRIPT_SRC="$(realpath ${BASH_SOURCE[0]})"
SCRIPT_DIR="$(dirname "${SCRIPT_SRC}")"
source $SCRIPT_DIR/common.sh
if [ -z "$INPUT_DIRECTORY" ]; then
if [ ! -z "$1" ]; then
INPUT_DIRECTORY=$1
else
msg "No \$INPUT_DIRECTORY set or argument given."
exit 1
fi
fi
if [ -z "$OUTPUT_DIRECTORY" ]; then
if [ ! -z "$2" ]; then
OUTPUT_DIRECTORY=$2
else
msg "No \$OUTPUT_DIRECTORY set or argument given."
exit 1
fi
fi
TEMP_DIR=$(realpath ../tempdir)
if [ -d "$TEMP_DIR" ]; then
msg "Temp directory exists!"
exit 1
fi
mkdir -p $TEMP_DIR
rm -rf $OUTPUT_DIRECTORY/skywater-pdk
# Split apart LEF files first
msg "Splitting existing LEF files."
find $INPUT_DIRECTORY -name \*.lef -print \
| parallel -v $SCRIPT_DIR/lef_rewrite.py \{\} $OUTPUT_DIRECTORY $TEMP_DIR \
; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
msg "Error: Failed to split LEF files!?"
exit 1
else
msg "Successfully split LEF files."
fi
# Split apart the GDS files
msg "Splitting GDS files."
find $INPUT_DIRECTORY -name \*.gds -print \
| parallel -v $SCRIPT_DIR/gds_to_lef_gds_mag.py \{\} $OUTPUT_DIRECTORY $INPUT_DIRECTORY/sky130A.tech $TEMP_DIR \
; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
msg "Error: Failed to split GDS files!?"
exit 1
else
msg "Successfully split GDS files."
fi
# Split apart the CDL files into netlist.csv files
msg "Splitting CDL into CSV files."
$SCRIPT_DIR/cdl_rewrite.py $INPUT_DIRECTORY $OUTPUT_DIRECTORY $TEMP_DIR ; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
msg "Error: Failed to split CDL files into CSV files!?"
exit 1
else
msg "Successfully split CDL files into CSV files."
fi
# Convert the netlist.csv files to .cdl file
$SCRIPT_DIR/netlist-csv2cdl.py $OUTPUT_DIRECTORY ; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
msg "Error: Failed to convert netlist.csv into CDL files!?"
exit 1
else
msg "Successfully converted netlist.csv into CDL files."
fi
git describe > $OUTPUT_DIRECTORY/build-tool-version
git describe
git diff HEAD
msg "FINISHED: Build completed successfully @ $(date) using $(git describe)."