blob: f3ee2e1b974de7bc73bfc53de19fee8439874f30 [file]
#!/bin/bash
set -e
MYPATH=`realpath $0`
MYPATH=`dirname ${MYPATH}`
source ${MYPATH}/env
echo "Writing bitstream ..."
FRM2BIT=""
if [ ! -z ${FRAMES2BIT} ]; then
FRM2BIT="--frm2bit ${FRAMES2BIT}"
fi
OPTS=d:f:b:p:
LONGOPTS=device:,fasm:,bit:,part:
PARSED_OPTS=`getopt --options=${OPTS} --longoptions=${LONGOPTS} --name $0 -- $@`
eval set -- ${PARSED_OPTS}
DEVICE=""
FASM=""
BIT=""
PART=xc7a35tcpg236-1
while true; do
case "$1" in
-d|--device)
DEVICE=$2
shift 2
;;
-p|--part)
PART=$2
shift 2
;;
-f|--fasm)
FASM=$2
shift 2
;;
-b|--bit)
BIT=$2
shift 2
;;
--)
break
;;
esac
done
DATABASE_DIR=${DATABASE_DIR:=$(prjxray-config)}
if [ -z $DEVICE ]; then
# Try to find device name. Accept only when exactly one is found
PART_DIRS=(${DATABASE_DIR}/*/${PART})
if [ ${#PART_DIRS[@]} -eq 1 ]; then
DEVICE=$(basename $(dirname "${PART_DIRS[0]}"))
else
echo "Please provide device name"
exit 1
fi
fi
DBROOT=`realpath ${DATABASE_DIR}/${DEVICE}`
if [ -z $FASM ]; then
echo "Please provide fasm file name"
exit 1
fi
if [ -z $BIT ]; then
echo "Please provide bit file name"
exit 1
fi
xcfasm --db-root ${DBROOT} --part ${PART} --part_file ${DBROOT}/${PART}/part.yaml --sparse --emit_pudc_b_pullup --fn_in ${FASM} --bit_out ${BIT} ${FRM2BIT}