#!/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}