f4pga/wrappers/sh/vpr_common: remove function parse_args
Signed-off-by: Unai Martinez-Corral <umartinezcorral@antmicro.com>
This commit is contained in:
parent
cb7f555511
commit
e0ffd4e094
|
@ -69,8 +69,7 @@ def p_run_pym(module):
|
|||
def p_vpr_common_cmds(log_suffix = None):
|
||||
return f"""
|
||||
set -e
|
||||
source {ROOT / SH_SUBDIR}/vpr_common.f4pga.sh
|
||||
parse_args {' '.join([f"'{arg}'" for arg in sys_argv[1:]])}
|
||||
source {ROOT / SH_SUBDIR}/vpr_common.f4pga.sh {' '.join([f"'{arg}'" for arg in sys_argv[1:]])}
|
||||
""" + (f"""
|
||||
export OUT_NOISY_WARNINGS=noisy_warnings-${{DEVICE}}_{log_suffix}.log
|
||||
""" if log_suffix is not None else '')
|
||||
|
|
|
@ -18,8 +18,6 @@
|
|||
|
||||
set -e
|
||||
|
||||
source $(dirname "$0")/vpr_common.f4pga.sh
|
||||
|
||||
VERSION="v2.0.1"
|
||||
|
||||
if [ ! -n $1 ]; then
|
||||
|
|
|
@ -16,6 +16,51 @@
|
|||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
eval set -- $(
|
||||
getopt \
|
||||
--options=d:f:e:p:n:P:j:s:t:c: \
|
||||
--longoptions=device:,eblif:,pcf:,net:,part:,json:,sdc:,top:,corner: \
|
||||
--name $0 -- $@
|
||||
)
|
||||
DEVICE=""
|
||||
FAMILY=""
|
||||
EBLIF=""
|
||||
PCF=""
|
||||
NET=""
|
||||
PART=""
|
||||
JSON=""
|
||||
SDC=""
|
||||
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 JSON="$JSON"
|
||||
export SDC="$SDC"
|
||||
export TOP="$TOP"
|
||||
export CORNER="$CORNER"
|
||||
|
||||
if [ -z $VPR_OPTIONS ]; then
|
||||
echo "Using default VPR options."
|
||||
VPR_OPTIONS="
|
||||
|
@ -26,105 +71,56 @@ if [ -z $VPR_OPTIONS ]; then
|
|||
"
|
||||
fi
|
||||
|
||||
function parse_args {
|
||||
VPR_OPTIONS="$VPR_OPTIONS
|
||||
--place_delay_model delta_override
|
||||
--router_lookahead extended_map
|
||||
--allow_dangling_combinational_nodes on"
|
||||
|
||||
eval set -- $(
|
||||
getopt \
|
||||
--options=d:f:e:p:n:P:j:s:t:c: \
|
||||
--longoptions=device:,eblif:,pcf:,net:,part:,json:,sdc:,top:,corner: \
|
||||
--name $0 -- $@
|
||||
)
|
||||
DEVICE=""
|
||||
FAMILY=""
|
||||
EBLIF=""
|
||||
PCF=""
|
||||
NET=""
|
||||
PART=""
|
||||
JSON=""
|
||||
SDC=""
|
||||
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
|
||||
if [[ "$DEVICE" == "qlf_k4n8_qlf_k4n8" ]]; then
|
||||
VPR_OPTIONS="$VPR_OPTIONS
|
||||
--route_chan_width 10
|
||||
--clock_modeling ideal
|
||||
--place_delta_delay_matrix_calculation_method dijkstra
|
||||
--absorb_buffer_luts off"
|
||||
else
|
||||
VPR_OPTIONS="$VPR_OPTIONS
|
||||
--route_chan_width 100
|
||||
--clock_modeling route
|
||||
--check_route quick
|
||||
--strict_checks off
|
||||
--disable_errors check_unbuffered_edges:check_route
|
||||
--congested_routing_iteration_threshold 0.8
|
||||
--incremental_reroute_delay_ripup off
|
||||
--base_cost_type delay_normalized_length_bounded
|
||||
--bb_factor 10
|
||||
--initial_pres_fac 4.0
|
||||
--check_rr_graph off
|
||||
--pack_high_fanout_threshold PB-LOGIC:18
|
||||
--suppress_warnings ${OUT_NOISY_WARNINGS},sum_pin_class:check_unbuffered_edges:load_rr_indexed_data_T_values:check_rr_node:trans_per_R:check_route:set_rr_graph_tool_comment"
|
||||
fi
|
||||
|
||||
export DEVICE="$DEVICE"
|
||||
export FAMILY="$FAMILY"
|
||||
export EBLIF="$EBLIF"
|
||||
export PCF="$PCF"
|
||||
export NET="$NET"
|
||||
export JSON="$JSON"
|
||||
export SDC="$SDC"
|
||||
export TOP="$TOP"
|
||||
export CORNER="$CORNER"
|
||||
export VPR_OPTIONS="$VPR_OPTIONS"
|
||||
|
||||
if [[ "$DEVICE" == "qlf_k4n8_qlf_k4n8" ]]; then
|
||||
VPR_OPTIONS="$VPR_OPTIONS
|
||||
--route_chan_width 10
|
||||
--clock_modeling ideal
|
||||
--place_delta_delay_matrix_calculation_method dijkstra
|
||||
--place_delay_model delta_override
|
||||
--router_lookahead extended_map
|
||||
--allow_dangling_combinational_nodes on
|
||||
--absorb_buffer_luts off"
|
||||
else
|
||||
VPR_OPTIONS="$VPR_OPTIONS
|
||||
--route_chan_width 100
|
||||
--clock_modeling route
|
||||
--place_delay_model delta_override
|
||||
--router_lookahead extended_map
|
||||
--check_route quick
|
||||
--strict_checks off
|
||||
--allow_dangling_combinational_nodes on
|
||||
--disable_errors check_unbuffered_edges:check_route
|
||||
--congested_routing_iteration_threshold 0.8
|
||||
--incremental_reroute_delay_ripup off
|
||||
--base_cost_type delay_normalized_length_bounded
|
||||
--bb_factor 10
|
||||
--initial_pres_fac 4.0
|
||||
--check_rr_graph off
|
||||
--pack_high_fanout_threshold PB-LOGIC:18
|
||||
--suppress_warnings ${OUT_NOISY_WARNINGS},sum_pin_class:check_unbuffered_edges:load_rr_indexed_data_T_values:check_rr_node:trans_per_R:check_route:set_rr_graph_tool_comment"
|
||||
fi
|
||||
if [[ "$DEVICE" == "qlf_k4n8_qlf_k4n8" ]]; then
|
||||
DEVICE_1="qlf_k4n8-qlf_k4n8_umc22_${CORNER}"
|
||||
DEVICE_2="$DEVICE_1"
|
||||
elif [[ "$DEVICE" == "qlf_k6n10_qlf_k6n10" ]];then
|
||||
DEVICE_1="qlf_k6n10-qlf_k6n10_gf12"
|
||||
DEVICE_2="$DEVICE_1"
|
||||
else
|
||||
DEVICE_1="$DEVICE"
|
||||
DEVICE_2="wlcsp"
|
||||
fi
|
||||
|
||||
export VPR_OPTIONS="$VPR_OPTIONS"
|
||||
|
||||
if [[ "$DEVICE" == "qlf_k4n8_qlf_k4n8" ]]; then
|
||||
DEVICE_1="qlf_k4n8-qlf_k4n8_umc22_${CORNER}"
|
||||
DEVICE_2="$DEVICE_1"
|
||||
elif [[ "$DEVICE" == "qlf_k6n10_qlf_k6n10" ]];then
|
||||
DEVICE_1="qlf_k6n10-qlf_k6n10_gf12"
|
||||
DEVICE_2="$DEVICE_1"
|
||||
else
|
||||
DEVICE_1="$DEVICE"
|
||||
DEVICE_2="wlcsp"
|
||||
fi
|
||||
|
||||
DEVICE_ARCH="${DEVICE_1}_${DEVICE_2}"
|
||||
export ARCH_DIR="${F4PGA_SHARE_DIR}/arch/${DEVICE_ARCH}"
|
||||
export ARCH_DEF="${ARCH_DIR}/arch_${DEVICE_ARCH}".xml
|
||||
ARCH_RR_PREFIX="${ARCH_DIR}/rr_graph_${DEVICE_ARCH}"
|
||||
# qlf* devices use different naming scheme than pp3* ones.
|
||||
export RR_GRAPH="${ARCH_DIR}/${DEVICE_1}".rr_graph.bin
|
||||
if [ ! -f "${RR_GRAPH}" ]; then
|
||||
export RR_GRAPH="${ARCH_RR_PREFIX}".rr_graph.real.bin
|
||||
fi
|
||||
export PLACE_DELAY="${ARCH_RR_PREFIX}".place_delay.bin
|
||||
export LOOKAHEAD="${ARCH_RR_PREFIX}".lookahead.bin
|
||||
export DEVICE_NAME="$DEVICE_1"
|
||||
}
|
||||
DEVICE_ARCH="${DEVICE_1}_${DEVICE_2}"
|
||||
export ARCH_DIR="${F4PGA_SHARE_DIR}/arch/${DEVICE_ARCH}"
|
||||
export ARCH_DEF="${ARCH_DIR}/arch_${DEVICE_ARCH}".xml
|
||||
ARCH_RR_PREFIX="${ARCH_DIR}/rr_graph_${DEVICE_ARCH}"
|
||||
# qlf* devices use different naming scheme than pp3* ones.
|
||||
export RR_GRAPH="${ARCH_DIR}/${DEVICE_1}".rr_graph.bin
|
||||
if [ ! -f "${RR_GRAPH}" ]; then
|
||||
export RR_GRAPH="${ARCH_RR_PREFIX}".rr_graph.real.bin
|
||||
fi
|
||||
export PLACE_DELAY="${ARCH_RR_PREFIX}".place_delay.bin
|
||||
export LOOKAHEAD="${ARCH_RR_PREFIX}".lookahead.bin
|
||||
export DEVICE_NAME="$DEVICE_1"
|
||||
|
|
|
@ -16,6 +16,46 @@
|
|||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
eval set -- "$(
|
||||
getopt \
|
||||
--options=d:e:p:n:P:s: \
|
||||
--longoptions=device:,eblif:,pcf:,net:,part:,sdc: \
|
||||
--name $0 -- "$@"
|
||||
)"
|
||||
DEVICE=''
|
||||
DEVICE_NAME=''
|
||||
PART=''
|
||||
EBLIF=''
|
||||
PCF=''
|
||||
NET=''
|
||||
SDC=''
|
||||
ADDITIONAL_VPR_OPTIONS=''
|
||||
while true; do
|
||||
case "$1" in
|
||||
-d|--device) DEVICE=$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 ;;
|
||||
-s|--sdc) SDC=$2; shift 2 ;;
|
||||
--) shift; ADDITIONAL_VPR_OPTIONS="$@"; break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$DEVICE" ] && [ -n "$PART" ]; then
|
||||
# Try to find device name. Accept only when exactly one is found
|
||||
PART_DIRS=(${F4PGA_SHARE_DIR}/arch/*/${PART})
|
||||
if [ ${#PART_DIRS[@]} -eq 1 ]; then DEVICE=$(basename $(dirname "${PART_DIRS[0]}")); fi
|
||||
fi
|
||||
if [ -z "$DEVICE" ]; then echo "Please provide device name"; exit 1; fi
|
||||
if [ -z "$EBLIF" ]; then echo "Please provide blif file name"; exit 1; fi
|
||||
|
||||
export DEVICE="$DEVICE"
|
||||
export EBLIF="$EBLIF"
|
||||
export PCF="$PCF"
|
||||
export NET="$NET"
|
||||
export SDC="$SDC"
|
||||
|
||||
if [ -z "$VPR_OPTIONS" ]; then
|
||||
echo "Using default VPR options."
|
||||
VPR_OPTIONS="
|
||||
|
@ -46,55 +86,13 @@ if [ -z "$VPR_OPTIONS" ]; then
|
|||
"
|
||||
fi
|
||||
|
||||
function parse_args {
|
||||
export VPR_OPTIONS="$VPR_OPTIONS $ADDITIONAL_VPR_OPTIONS"
|
||||
|
||||
eval set -- "$(
|
||||
getopt \
|
||||
--options=d:e:p:n:P:s: \
|
||||
--longoptions=device:,eblif:,pcf:,net:,part:,sdc: \
|
||||
--name $0 -- "$@"
|
||||
)"
|
||||
DEVICE=''
|
||||
DEVICE_NAME=''
|
||||
PART=''
|
||||
EBLIF=''
|
||||
PCF=''
|
||||
NET=''
|
||||
SDC=''
|
||||
ADDITIONAL_VPR_OPTIONS=''
|
||||
while true; do
|
||||
case "$1" in
|
||||
-d|--device) DEVICE=$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 ;;
|
||||
-s|--sdc) SDC=$2; shift 2 ;;
|
||||
--) shift; ADDITIONAL_VPR_OPTIONS="$@"; break ;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ -z "$DEVICE" ] && [ -n "$PART" ]; then
|
||||
# Try to find device name. Accept only when exactly one is found
|
||||
PART_DIRS=(${F4PGA_SHARE_DIR}/arch/*/${PART})
|
||||
if [ ${#PART_DIRS[@]} -eq 1 ]; then DEVICE=$(basename $(dirname "${PART_DIRS[0]}")); fi
|
||||
fi
|
||||
if [ -z "$DEVICE" ]; then echo "Please provide device name"; exit 1; fi
|
||||
if [ -z "$EBLIF" ]; then echo "Please provide blif file name"; exit 1; fi
|
||||
|
||||
export DEVICE="$DEVICE"
|
||||
export EBLIF="$EBLIF"
|
||||
export PCF="$PCF"
|
||||
export NET="$NET"
|
||||
export SDC="$SDC"
|
||||
export VPR_OPTIONS="$VPR_OPTIONS $ADDITIONAL_VPR_OPTIONS"
|
||||
|
||||
export ARCH_DIR="${F4PGA_SHARE_DIR}/arch/$DEVICE"
|
||||
export ARCH_DEF="${ARCH_DIR}"/arch.timing.xml
|
||||
ARCH_RR_PREFIX="${ARCH_DIR}/rr_graph_${DEVICE}"
|
||||
export RR_GRAPH="${ARCH_RR_PREFIX}".rr_graph.real.bin
|
||||
export RR_GRAPH_XML="${ARCH_RR_PREFIX}".rr_graph.real.xml
|
||||
export PLACE_DELAY="${ARCH_RR_PREFIX}".place_delay.bin
|
||||
export LOOKAHEAD="${ARCH_RR_PREFIX}".lookahead.bin
|
||||
export DEVICE_NAME=`echo "$DEVICE" | sed -n 's/_/-/p'`
|
||||
}
|
||||
export ARCH_DIR="${F4PGA_SHARE_DIR}/arch/$DEVICE"
|
||||
export ARCH_DEF="${ARCH_DIR}"/arch.timing.xml
|
||||
ARCH_RR_PREFIX="${ARCH_DIR}/rr_graph_${DEVICE}"
|
||||
export RR_GRAPH="${ARCH_RR_PREFIX}".rr_graph.real.bin
|
||||
export RR_GRAPH_XML="${ARCH_RR_PREFIX}".rr_graph.real.xml
|
||||
export PLACE_DELAY="${ARCH_RR_PREFIX}".place_delay.bin
|
||||
export LOOKAHEAD="${ARCH_RR_PREFIX}".lookahead.bin
|
||||
export DEVICE_NAME=`echo "$DEVICE" | sed -n 's/_/-/p'`
|
||||
|
|
Loading…
Reference in New Issue