#!/bin/bash
# ------------------------------------------------------------------------------
#  Copyright (C) BAY9, 2015
# ------------------------------------------------------------------------------
#
# Compile script for VIVADO
#

if [ "$VIVADO_DIR" == "" ]; then
  echo
  echo 'Error, please set "export VIVADO_DIR=/path/to/vivado" before running this script'
  exit 1
fi

export PATH=$VIVADO_DIR/bin/unwrapped/lnx64.o:$PATH
export PATH=$VIVADO_DIR/ids_lite/ISE/bin/lin64:$PATH
export PATH=$VIVADO_DIR/bin:$PATH
export LD_LIBRARY_PATH=$VIVADO_DIR/ids_lite/ISE/lib/lin64:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=$VIVADO_DIR/lib/lnx64.o:$LD_LIBRARY_PATH

# Clean / goto output dir
rm -r out  2>/dev/null
mkdir out
cd out

# Make subdirectories
rm -r synth  2>/dev/null
mkdir synth

rm -r impl  2>/dev/null
mkdir impl

rm -r cache  2>/dev/null
mkdir cache

# Run synthesis
echo
echo "Run synthesis"
cd synth
time vivado -log vrfX.vds \
            -m64 -mode batch \
            -messageDb vivado.pb \
            -source ../../cfg/vrfX_synth.tcl \
            2>&1 > /dev/null
cd ..

# Run implementation
echo
echo "Run implementation"
cd impl
time vivado -log vrfX.vdi \
            -applog \
            -m64 \
            -messageDb vivado.pb \
            -mode batch \
            -source ../../cfg/vrfX_impl.tcl \
            -notrace \
            2>&1 > /dev/null

# Show delay
echo
echo "Show worst case delay paths"
grep "Data Path Delay" vrfX_timing_summary_routed.rpt | sort -r | head -5

cd ../..

