| #!/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)." |