f4pga/wrappers/sh/quicklogic: cleanup and adjust

Signed-off-by: Unai Martinez-Corral <umartinezcorral@antmicro.com>
This commit is contained in:
Unai Martinez-Corral 2022-03-20 02:28:33 +01:00
parent 6dbdcee076
commit ac82b068e1
11 changed files with 352 additions and 418 deletions

View File

@ -1,23 +1,22 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` if [ -z $VPRPATH ]; then
MYPATH=`dirname ${MYPATH}` export VPRPATH=$(f4pga-env bin)
export PYTHONPATH=${VPRPATH}/python:${VPRPATH}/python/prjxray:${PYTHONPATH}
fi
source ${MYPATH}/env
source ${VPRPATH}/vpr_common source ${VPRPATH}/vpr_common
parse_args $@ parse_args $@
FIXUP_POST_SYNTHESIS=`realpath ${MYPATH}/python/vpr_fixup_post_synth.py`
export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_analysis.log export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_analysis.log
run_vpr --analysis --gen_post_synthesis_netlist on --verify_file_digests off run_vpr --analysis --gen_post_synthesis_netlist on --verify_file_digests off
mv vpr_stdout.log analysis.log mv vpr_stdout.log analysis.log
python3 ${FIXUP_POST_SYNTHESIS} \ python3 $(f4pga-env bin)/python/vpr_fixup_post_synth.py \
--vlog-in ${TOP}_post_synthesis.v \ --vlog-in ${TOP}_post_synthesis.v \
--vlog-out ${TOP}_post_synthesis.v \ --vlog-out ${TOP}_post_synthesis.v \
--sdf-in ${TOP}_post_synthesis.sdf \ --sdf-in ${TOP}_post_synthesis.sdf \

View File

@ -1,8 +1,6 @@
#!/bin/bash #!/usr/bin/env bash
set -e
MYPATH=`realpath $0` set -e
MYPATH=`dirname ${MYPATH}`
OPTS=d:f:r:b: OPTS=d:f:r:b:
LONGOPTS=device:,fasm:,format:,bit: LONGOPTS=device:,fasm:,format:,bit:
@ -17,25 +15,11 @@ BIT_FORMAT="4byte"
while true; do while true; do
case "$1" in case "$1" in
-d|--device) -d|--device) DEVICE=$2; shift 2;;
DEVICE=$2 -f|--fasm) FASM=$2; shift 2;;
shift 2 -r|--format) BIT_FORMAT=$2; shift 2;;
;; -b|--bit) BIT=$2; shift 2;;
-f|--fasm) --) break;;
FASM=$2
shift 2
;;
-r|--format)
BIT_FORMAT=$2
shift 2
;;
-b|--bit)
BIT=$2
shift 2
;;
--)
break
;;
esac esac
done done
@ -54,9 +38,6 @@ if [ -z $BIT ]; then
exit 1 exit 1
fi fi
QLF_FASM=`which qlf_fasm` DB_ROOT=$(f4pga-env share)/fasm_database/${DEVICE}
DB_ROOT=`realpath ${MYPATH}/../share/symbiflow/fasm_database/${DEVICE}`
${QLF_FASM} --db-root ${DB_ROOT} --format ${BIT_FORMAT} --assemble $FASM $BIT
`which qlf_fasm` --db-root ${DB_ROOT} --format ${BIT_FORMAT} --assemble $FASM $BIT

View File

@ -1,8 +1,6 @@
#!/bin/bash #!/usr/bin/env bash
set -e
MYPATH=`realpath $0` set -e
MYPATH=`dirname ${MYPATH}`
PCF=$1 PCF=$1
EBLIF=$2 EBLIF=$2
@ -22,9 +20,17 @@ else
DEVICE_1=${DEVICE} DEVICE_1=${DEVICE}
fi fi
PINMAP_XML=`realpath ${MYPATH}/../share/symbiflow/arch/${DEVICE_1}_${DEVICE_1}/${PINMAPXML}` SHARE_DIR_PATH=${SHARE_DIR_PATH:=$(f4pga-env share)}
IOGEN=`realpath ${MYPATH}/python/create_ioplace.py`
PINMAP_XML=`realpath ${SHARE_DIR_PATH}/arch/${DEVICE_1}_${DEVICE_1}/${PINMAPXML}`
PROJECT=$(basename -- "$EBLIF") PROJECT=$(basename -- "$EBLIF")
IOPLACE_FILE="${PROJECT%.*}_io.place" IOPLACE_FILE="${PROJECT%.*}_io.place"
python3 ${IOGEN} --pcf $PCF --blif $EBLIF --pinmap_xml $PINMAP_XML --csv_file $PART --net $NET > ${IOPLACE_FILE} python3 $(realpath $(f4pga-env bin)/python/create_ioplace.py) \
--pcf $PCF \
--blif $EBLIF \
--pinmap_xml $PINMAP_XML \
--csv_file $PART \
--net $NET \
> ${IOPLACE_FILE}

View File

@ -1,8 +1,6 @@
#!/bin/bash #!/usr/bin/env bash
set -e
MYPATH=`realpath $0` set -e
MYPATH=`dirname ${MYPATH}`
PART=$1 PART=$1
DEVICE=$2 DEVICE=$2
@ -17,9 +15,13 @@ else
DEVICE_1=${DEVICE} DEVICE_1=${DEVICE}
fi fi
ARCH_DIR=`realpath ${MYPATH}/../share/symbiflow/arch/${DEVICE_1}_${DEVICE_1}` ARCH_DIR=$(f4pga-env share)/arch/${DEVICE_1}_${DEVICE_1}
PINMAP_XML=`realpath ${ARCH_DIR}/${PINMAPXML}` PINMAP_XML=${ARCH_DIR}/${PINMAPXML}
INTF_XML=`realpath ${ARCH_DIR}/lib/${INTERFACEXML}`
CREATE_LIB=`realpath ${MYPATH}/python/create_lib.py`
python3 ${CREATE_LIB} -n ${DEV}_0P72_SSM40 -m fpga_top -c $PART -x $INTF_XML -l ${DEV}_0P72_SSM40.lib -t ${ARCH_DIR}/lib python3 $(f4pga-env bin)/python/create_lib.py \
-n ${DEV}_0P72_SSM40 \
-m fpga_top \
-c $PART \
-x ${ARCH_DIR}/lib/${INTERFACEXML} \
-l ${DEV}_0P72_SSM40.lib \
-t ${ARCH_DIR}/lib

View File

@ -1,12 +1,13 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` if [ -z $VPRPATH ]; then
MYPATH=`dirname ${MYPATH}` export VPRPATH=$(f4pga-env bin)
export PYTHONPATH=${VPRPATH}/python:${VPRPATH}/python/prjxray:${PYTHONPATH}
fi
source ${MYPATH}/env
source ${VPRPATH}/vpr_common source ${VPRPATH}/vpr_common
parse_args $@ parse_args $@
export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_pack.log export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_pack.log

View File

@ -1,12 +1,13 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` if [ -z $VPRPATH ]; then
MYPATH=`dirname ${MYPATH}` export VPRPATH=$(f4pga-env bin)
export PYTHONPATH=${VPRPATH}/python:${VPRPATH}/python/prjxray:${PYTHONPATH}
source ${MYPATH}/env fi
source ${MYPATH}/vpr_common
source ${VPRPATH}/vpr_common
parse_args $@ parse_args $@
if [ -z $PCF ]; then if [ -z $PCF ]; then
@ -21,28 +22,21 @@ fi
OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_place.log OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_place.log
PROJECT=$(basename -- "$EBLIF") PROJECT=$(basename -- "$EBLIF")
# Generate IO constraints
if [ -s $PCF ]; then
echo "Generating constraints ..."
symbiflow_generate_constraints $PCF $EBLIF $NET $PART $DEVICE $ARCH_DEF $CORNER
IOPLACE_FILE="${PROJECT%.*}_io.place"
PLACE_FILE="${PROJECT%.*}_constraints.place" PLACE_FILE="${PROJECT%.*}_constraints.place"
if [ -s $PCF ]; then
# Generate IO constraints
echo "Generating constraints ..."
symbiflow_generate_constraints $PCF $EBLIF $NET $PART $DEVICE $ARCH_DEF $CORNER
if [ -f ${PLACE_FILE} ]; then if [ -f ${PLACE_FILE} ]; then
VPR_PLACE_FILE=${PLACE_FILE} VPR_PLACE_FILE=${PLACE_FILE}
else else
VPR_PLACE_FILE=${IOPLACE_FILE} VPR_PLACE_FILE="${PROJECT%.*}_io.place"
fi fi
# Make a dummy empty constraint file
else else
# Make a dummy empty constraint file
PLACE_FILE="${PROJECT%.*}_constraints.place"
touch ${PLACE_FILE} touch ${PLACE_FILE}
VPR_PLACE_FILE=${PLACE_FILE} VPR_PLACE_FILE=${PLACE_FILE}
fi fi
run_vpr --fix_clusters ${VPR_PLACE_FILE} --place run_vpr --fix_clusters ${VPR_PLACE_FILE} --place

View File

@ -1,13 +1,11 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=$(dirname "$(readlink -f "$BASH_SOURCE")")
BUILDDIR=build BUILDDIR=build
source ${MYPATH}/env source $(f4pga-env bin)/vpr_common
source ${VPRPATH}/vpr_common
VERSION="v2.0.1" VERSION="v2.0.1"
if [ ! -n $1 ]; then if [ ! -n $1 ]; then
@ -51,106 +49,74 @@ COMPILE_EXTRA_ARGS=()
OPT="" OPT=""
for arg in $@; do for arg in $@; do
case $arg in case $arg in
-src|--source) -src|--source) OPT="src" ;;
OPT="src" -t|--top) OPT="top" ;;
;; -v|--verilog) OPT="vlog" ;;
-t|--top) -d|--device) OPT="dev" ;;
OPT="top" -p|--pcf) OPT="pcf" ;;
;; -P|--part) OPT="part" ;;
-v|--verilog) -j|--json) OPT="json" ;;
OPT="vlog" -s|--sdc) OPT="sdc" ;;
;; -r|--route_type) OPT="route" ;;
-d|--device) -pnr_corner) OPT="pnr_corner" ;;
OPT="dev" -analysis_corner) OPT="analysis_corner" ;;
;; -dump) OPT="dump" ;;
-p|--pcf) -synth|-compile) OPT="synth" ;;
OPT="pcf" -y|+incdir+*|+libext+*|+define+*) OPT="compile_xtra" ;;
;; -f) OPT="options_file" ;;
-P|--part) -h|--help) exit 0 ;;
OPT="part"
;;
-j|--json)
OPT="json"
;;
-s|--sdc)
OPT="sdc"
;;
-r|--route_type)
OPT="route"
;;
-pnr_corner)
OPT="pnr_corner"
;;
-analysis_corner)
OPT="analysis_corner"
;;
-dump)
OPT="dump"
;;
-synth|-compile)
OPT="synth"
;;
-y|+incdir+*|+libext+*|+define+*)
OPT="compile_xtra"
;;
-f)
OPT="options_file"
;;
-h|--help)
exit 0
;;
*) *)
case $OPT in case $OPT in
"src") src)
SOURCE=$arg SOURCE=$arg
OPT="" OPT=""
;; ;;
"top") top)
TOP=$arg TOP=$arg
OPT="" OPT=""
;; ;;
"vlog") vlog)
VERILOG_FILES+="$arg " VERILOG_FILES+="$arg "
;; ;;
"dev") dev)
DEVICE=$arg DEVICE=$arg
OPT="" OPT=""
;; ;;
"pcf") pcf)
PCF=$arg PCF=$arg
OPT="" OPT=""
;; ;;
"part") part)
PART=$arg PART=$arg
OPT="" OPT=""
;; ;;
"json") json)
JSON=$arg JSON=$arg
OPT="" OPT=""
;; ;;
"sdc") sdc)
SDC=$arg SDC=$arg
OPT="" OPT=""
;; ;;
"route") route)
ROUTE_FLAG0="$arg" ROUTE_FLAG0="$arg"
ROUTE_FLAG0="${ROUTE_FLAG0,,}" ROUTE_FLAG0="${ROUTE_FLAG0,,}"
OPT="" OPT=""
;; ;;
"pnr_corner") pnr_corner)
PNR_CORNER=$arg PNR_CORNER=$arg
OPT="" OPT=""
;; ;;
"analysis_corner") analysis_corner)
ANALYSIS_CORNER=$arg ANALYSIS_CORNER=$arg
OPT="" OPT=""
;; ;;
"dump") dump)
OUT+="$arg " OUT+="$arg "
;; ;;
"compile_xtra") compile_xtra)
;; ;;
"options_file") options_file)
COMPILE_EXTRA_ARGS+=("-f \"`realpath $arg`\" ") COMPILE_EXTRA_ARGS+=("-f \"`realpath $arg`\" ")
;; ;;
*) *)
@ -160,11 +126,9 @@ for arg in $@; do
esac esac
;; ;;
esac esac
if [ "$OPT" == "compile_xtra" ]; then if [ "$OPT" == "compile_xtra" ]; then
COMPILE_EXTRA_ARGS+=($arg) COMPILE_EXTRA_ARGS+=($arg)
fi fi
done done
case ${DEVICE} in case ${DEVICE} in
@ -182,7 +146,7 @@ case ${DEVICE} in
;; ;;
esac esac
##### Check if the source directory exists ##### ## Check if the source directory exists
if [[ $1 == "-h" || $1 == "--help" ]];then if [[ $1 == "-h" || $1 == "--help" ]];then
exit 1 exit 1
else else
@ -207,8 +171,7 @@ fi
echo "$VERILOG_FILES" >${SOURCE}/v_list echo "$VERILOG_FILES" >${SOURCE}/v_list
fi fi
##### Validate the verlog source files ##### ## Validate the verlog source files
if [ ${#VERILOG_FILES[@]} -eq 0 ]; then if [ ${#VERILOG_FILES[@]} -eq 0 ]; then
if [[ $1 != "-h" || $1 != "--help" ]];then if [[ $1 != "-h" || $1 != "--help" ]];then
echo "Please provide at least one Verilog file" echo "Please provide at least one Verilog file"
@ -276,8 +239,7 @@ if [ ! -z "$OUT" ];then
OUT_ARR=($OUT) OUT_ARR=($OUT)
fi fi
for item in $VERILOG_FILES; for item in $VERILOG_FILES; do
do
if ! [ -f $SOURCE/$item ]; then if ! [ -f $SOURCE/$item ]; then
echo "$item: verilog file does not exists at : $SOURCE" echo "$item: verilog file does not exists at : $SOURCE"
exit 1 exit 1
@ -315,7 +277,8 @@ export JSON=$JSON
export TOP_F=$TOP export TOP_F=$TOP
export PINMAP_FILE=$PINMAPCSV export PINMAP_FILE=$PINMAPCSV
export MAX_CRITICALITY=$MAX_CRITICALITY export MAX_CRITICALITY=$MAX_CRITICALITY
##### Create Makefile #####
## Create Makefile
if [[ $SOURCE =~ ^/ ]]; then if [[ $SOURCE =~ ^/ ]]; then
CURR_DIR="${SOURCE}" CURR_DIR="${SOURCE}"
@ -362,7 +325,7 @@ else
PCF_MAKE="\${current_dir}/build/${TOP}_dummy.pcf" PCF_MAKE="\${current_dir}/build/${TOP}_dummy.pcf"
fi fi
PROCESS_SDC=`realpath ${MYPATH}/python/process_sdc_constraints.py` PROCESS_SDC=$(realpath $(f4pga-env bin)/python/process_sdc_constraints.py)
if ! [ -z "$SDC" ]; then if ! [ -z "$SDC" ]; then
if ! [ -f "$SOURCE"/$SDC ];then if ! [ -f "$SOURCE"/$SDC ];then
echo "The sdc file: $SDC is missing at: $SOURCE" echo "The sdc file: $SDC is missing at: $SOURCE"
@ -459,10 +422,10 @@ clean:\n\
rm -rf \${BUILDDIR}\n\ rm -rf \${BUILDDIR}\n\
" >>$MAKE_FILE " >>$MAKE_FILE
#### Remove temporary files ##### ## Remove temporary files
rm -f $SOURCE/f_list_temp $SOURCE/v_list_tmp $SOURCE/v_list rm -f $SOURCE/f_list_temp $SOURCE/v_list_tmp $SOURCE/v_list
##### Make file Targets ##### ## Make file Targets
if [ $1 == "-synth" ]; then if [ $1 == "-synth" ]; then
echo -e "Performing Synthesis " echo -e "Performing Synthesis "
cd $SOURCE;make -f Makefile.symbiflow ${BUILDDIR}/${TOP}.eblif || exit cd $SOURCE;make -f Makefile.symbiflow ${BUILDDIR}/${TOP}.eblif || exit
@ -476,8 +439,3 @@ else
cd $SOURCE;make -f Makefile.symbiflow ${BUILDDIR}/${TOP}.${RUN_TILL} || exit cd $SOURCE;make -f Makefile.symbiflow ${BUILDDIR}/${TOP}.${RUN_TILL} || exit
fi fi
fi fi
###############################################################################################

View File

@ -1,32 +1,23 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` if [ -z $VPRPATH ]; then
MYPATH=`dirname ${MYPATH}` export VPRPATH=$(f4pga-env bin)
export PYTHONPATH=${VPRPATH}/python:${VPRPATH}/python/prjxray:${PYTHONPATH}
fi
source ${MYPATH}/env
source ${VPRPATH}/vpr_common source ${VPRPATH}/vpr_common
parse_args $@ parse_args $@
REPACK=`realpath ${MYPATH}/python/repacker/repack.py`
DESIGN=${EBLIF/.eblif/} DESIGN=${EBLIF/.eblif/}
RULES=${ARCH_DIR}/${DEVICE_1}.repacking_rules.json
JSON_ARGS= [ ! -z "${JSON}" ] && JSON_ARGS="--json-constraints ${JSON}" || JSON_ARGS=
if [ ! -z "${JSON}" ]; then [ ! -z "${PCF_PATH}" ] && PCF_ARGS="--pcf-constraints ${PCF_PATH}" || PCF_ARGS=
JSON_ARGS="--json-constraints ${JSON}"
fi
PCF_ARGS= python3 $(f4pga-env bin)/python/repacker/repack.py \
if [ ! -z "${PCF_PATH}" ]; then
PCF_ARGS="--pcf-constraints ${PCF_PATH}"
fi
python3 ${REPACK} \
--vpr-arch ${ARCH_DEF} \ --vpr-arch ${ARCH_DEF} \
--repacking-rules ${RULES} \ --repacking-rules ${ARCH_DIR}/${DEVICE_1}.repacking_rules.json \
$JSON_ARGS \ $JSON_ARGS \
$PCF_ARGS \ $PCF_ARGS \
--eblif-in ${DESIGN}.eblif \ --eblif-in ${DESIGN}.eblif \

View File

@ -1,15 +1,16 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` if [ -z $VPRPATH ]; then
MYPATH=`dirname ${MYPATH}` export VPRPATH=$(f4pga-env bin)
export PYTHONPATH=${VPRPATH}/python:${VPRPATH}/python/prjxray:${PYTHONPATH}
fi
source ${MYPATH}/env
source ${VPRPATH}/vpr_common source ${VPRPATH}/vpr_common
parse_args $@ parse_args $@
export OUR_NOISY_WARNINGS=noisy_warnings-${DEVICE}_pack.log export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_pack.log
run_vpr --route run_vpr --route

View File

@ -1,11 +1,11 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` export SHARE_DIR_PATH=${SHARE_DIR_PATH:=$(f4pga-env share)}
MYPATH=`dirname ${MYPATH}` VPRPATH=${VPRPATH:=$(f4pga-env bin)}
SPLIT_INOUTS=`realpath ${VPRPATH}/python/split_inouts.py`
SPLIT_INOUTS=`realpath ${MYPATH}/python/split_inouts.py` CONVERT_OPTS=`realpath ${VPRPATH}/python/convert_compile_opts.py`
CONVERT_OPTS=`realpath ${MYPATH}/python/convert_compile_opts.py`
print_usage () { print_usage () {
echo "Usage: symbiflow_synth -v|--verilog <Verilog file list>" echo "Usage: symbiflow_synth -v|--verilog <Verilog file list>"
@ -107,10 +107,10 @@ fi
PINMAPCSV="pinmap_${PART}.csv" PINMAPCSV="pinmap_${PART}.csv"
export TECHMAP_PATH=`realpath ${MYPATH}/../share/symbiflow/techmaps/${FAMILY}` export TECHMAP_PATH="${SHARE_DIR_PATH}/techmaps/${FAMILY}"
SYNTH_TCL_PATH=`realpath ${MYPATH}/../share/symbiflow/scripts/${FAMILY}/synth.tcl` SYNTH_TCL_PATH="${SHARE_DIR_PATH}/scripts/${FAMILY}/synth.tcl"
CONV_TCL_PATH=`realpath ${MYPATH}/../share/symbiflow/scripts/${FAMILY}/conv.tcl` CONV_TCL_PATH="${SHARE_DIR_PATH}/scripts/${FAMILY}/conv.tcl"
export USE_ROI="FALSE" export USE_ROI="FALSE"
export OUT_JSON=$TOP.json export OUT_JSON=$TOP.json
@ -123,7 +123,7 @@ if [ -s $PCF ]; then
export PCF_FILE=$PCF export PCF_FILE=$PCF
fi fi
DEVICE_PATH=`realpath ${MYPATH}/../share/symbiflow/arch/${DEVICE}_${DEVICE}` DEVICE_PATH="${SHARE_DIR_PATH}/arch/${DEVICE}_${DEVICE}"
export PINMAP_FILE=${DEVICE_PATH}/${PINMAPCSV} export PINMAP_FILE=${DEVICE_PATH}/${PINMAPCSV}
if [ -d "${DEVICE_PATH}/cells" ]; then if [ -d "${DEVICE_PATH}/cells" ]; then
export DEVICE_CELLS_SIM=`find ${DEVICE_PATH}/cells -name "*_sim.v"` export DEVICE_CELLS_SIM=`find ${DEVICE_PATH}/cells -name "*_sim.v"`
@ -132,7 +132,7 @@ else
# pp3 family has different directory naming scheme # pp3 family has different directory naming scheme
# the are named as ${DEVICE}_${PACKAGE} # the are named as ${DEVICE}_${PACKAGE}
# ${PACKAGE} is not known because it is not passed down in add_binary_toolchain_test # ${PACKAGE} is not known because it is not passed down in add_binary_toolchain_test
DEVICE_PATH=$(find $(realpath ${MYPATH}/../share/symbiflow/arch/) -type d -name "${DEVICE}*") DEVICE_PATH=$(find $(realpath ${SHARE_DIR_PATH}/arch/) -type d -name "${DEVICE}*")
export PINMAP_FILE=${DEVICE_PATH}/${PINMAPCSV} export PINMAP_FILE=${DEVICE_PATH}/${PINMAPCSV}
if [ -d "${DEVICE_PATH}/cells" ]; then if [ -d "${DEVICE_PATH}/cells" ]; then
export DEVICE_CELLS_SIM=`find ${DEVICE_PATH}/cells -name "*_sim.v"` export DEVICE_CELLS_SIM=`find ${DEVICE_PATH}/cells -name "*_sim.v"`

View File

@ -1,16 +1,17 @@
#!/bin/bash #!/usr/bin/env bash
set -e set -e
MYPATH=`realpath $0` if [ -z $VPRPATH ]; then
MYPATH=`dirname ${MYPATH}` export VPRPATH=$(f4pga-env bin)
export PYTHONPATH=${VPRPATH}/python:${VPRPATH}/python/prjxray:${PYTHONPATH}
fi
source ${MYPATH}/env
source ${VPRPATH}/vpr_common source ${VPRPATH}/vpr_common
parse_args "$@" parse_args "$@"
TOP="${EBLIF%.*}" TOP="${EBLIF%.*}"
FASM_EXTRA=${TOP}_fasm_extra.fasm FASM_EXTRA="${TOP}_fasm_extra.fasm"
export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_fasm.log export OUT_NOISY_WARNINGS=noisy_warnings-${DEVICE}_fasm.log