f4pga/wrappers/sh/quicklogic: cleanup and adjust
Signed-off-by: Unai Martinez-Corral <umartinezcorral@antmicro.com>
This commit is contained in:
parent
6dbdcee076
commit
ac82b068e1
|
@ -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 \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
###############################################################################################
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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 \
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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"`
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue