blob: 43c7c87eeebabb26beb7d3295dec06070701dbbb [file]
#!/bin/bash
function parse_args {
OPTS=d:f:e:p:n:P:j:s:t:c:
LONGOPTS=device:,eblif:,pcf:,net:,part:,json:,sdc:,top:,corner:
PARSED_OPTS=`getopt --options=${OPTS} --longoptions=${LONGOPTS} --name $0 -- $@`
eval set -- ${PARSED_OPTS}
DEVICE=""
FAMILY=""
DEVICE_NAME=""
PART=""
EBLIF=""
PCF=""
NET=""
SDC=""
JSON=""
TOP="top"
CORNER=""
while true; do
case "$1" in
-d|--device)
DEVICE=$2
shift 2
;;
-f|--family)
FAMILY=$2
shift 2
;;
-e|--eblif)
EBLIF=$2
shift 2
;;
-p|--pcf)
PCF=$2
shift 2
;;
-n|--net)
NET=$2
shift 2
;;
-P|--part)
PART=$2
shift 2
;;
-j|--json)
JSON=$2
shift 2
;;
-s|--sdc)
SDC=$2
shift 2
;;
-t|--top)
TOP=$2
shift 2
;;
-c|--corner)
CORNER=$2
shift 2
;;
--)
break
;;
esac
done
if [ -z $DEVICE ]; then
echo "Please provide device name"
exit 1
fi
if [ -z $FAMILY ]; then
echo "Please provide device family name"
exit 1
fi
if [ -z $EBLIF ]; then
echo "Please provide blif file name"
exit 1
fi
export DEVICE=$DEVICE
export FAMILY=$FAMILY
export EBLIF=$EBLIF
export PCF=$PCF
export NET=$NET
export SDC=$SDC
export JSON=$JSON
export CORNER=$CORNER
if [[ "$DEVICE" == "qlf_k4n8_qlf_k4n8" ]]; then
DEVICE_1="qlf_k4n8-qlf_k4n8_umc22_${CORNER}"
elif [[ "$DEVICE" == "qlf_k6n10_qlf_k6n10" ]];then
DEVICE_1="qlf_k6n10-qlf_k6n10_gf12"
fi
export TOP=$TOP
export ARCH_DIR=`realpath ${MYPATH}/../share/symbiflow/arch/${DEVICE_1}_${DEVICE_1}`
export ARCH_DEF=${ARCH_DIR}/arch_${DEVICE_1}_${DEVICE_1}.xml
export RR_GRAPH=${ARCH_DIR}/${DEVICE_1}.rr_graph.bin
export PLACE_DELAY=${ARCH_DIR}/rr_graph_${DEVICE_1}_${DEVICE_1}.place_delay.bin
export ROUTE_DELAY=${ARCH_DIR}/rr_graph_${DEVICE_1}_${DEVICE_1}.lookahead.bin
export DEVICE_NAME=${DEVICE_1}
export VPR_CONFIG=`realpath ${MYPATH}/../share/symbiflow/scripts/${FAMILY}/vpr_config.sh`
}
function run_vpr {
set -e
source ${VPR_CONFIG}
SDC_OPTIONS=""
if [ ! -z $SDC ]
then
SDC_OPTIONS="--sdc_file $SDC"
fi
vpr ${ARCH_DEF} \
${EBLIF} \
--device ${DEVICE_NAME} \
${VPR_OPTIONS} \
--read_rr_graph ${RR_GRAPH} \
--read_placement_delay_lookup ${PLACE_DELAY} \
--read_router_lookahead ${ROUTE_DELAY} \
${SDC_OPTIONS} \
$@
return $?
}
function run_genfasm {
set -e
source ${VPR_CONFIG}
genfasm ${ARCH_DEF} \
${EBLIF} \
--device ${DEVICE_NAME} \
${VPR_OPTIONS} \
--read_rr_graph ${RR_GRAPH} \
$@
return $?
}