2018-10-02 00:52:09 +02:00
|
|
|
#!/usr/bin/env bash
|
2020-04-16 10:50:39 +02:00
|
|
|
# Copyright (C) 2017-2020 The Project X-Ray Authors.
|
|
|
|
|
#
|
|
|
|
|
# Use of this source code is governed by a ISC-style
|
|
|
|
|
# license that can be found in the LICENSE file or at
|
|
|
|
|
# https://opensource.org/licenses/ISC
|
|
|
|
|
#
|
|
|
|
|
# SPDX-License-Identifier: ISC
|
2018-01-04 20:12:33 +01:00
|
|
|
|
2018-10-02 00:52:09 +02:00
|
|
|
# This script requires an XC7A50T family part
|
|
|
|
|
|
|
|
|
|
set -ex
|
|
|
|
|
|
|
|
|
|
source ${XRAY_DIR}/utils/environment.sh
|
|
|
|
|
|
|
|
|
|
export XRAY_PINCFG=${XRAY_PINCFG:-ARTY-A7-SWBUT}
|
|
|
|
|
export BUILD_DIR=${BUILD_DIR:-build}
|
|
|
|
|
|
|
|
|
|
# not part of the normal DB
|
|
|
|
|
# to generate:
|
|
|
|
|
cat >/dev/null <<EOF
|
|
|
|
|
pushd ${XRAY_DIR}
|
|
|
|
|
source minitests/roi_harness/basys3.sh
|
|
|
|
|
pushd fuzzers/001-part-yaml
|
|
|
|
|
make clean
|
|
|
|
|
make
|
|
|
|
|
make pushdb
|
|
|
|
|
popd
|
|
|
|
|
popd
|
|
|
|
|
EOF
|
2020-01-17 16:10:42 +01:00
|
|
|
stat ${XRAY_PART_YAML} >/dev/null
|
2018-10-02 00:52:09 +02:00
|
|
|
|
|
|
|
|
# 6x by 18y CLBs (108)
|
2018-10-23 23:37:44 +02:00
|
|
|
if [ "$SMALL" = Y ] ; then
|
2018-09-27 02:41:23 +02:00
|
|
|
echo "Design: small"
|
2019-02-01 11:19:29 +01:00
|
|
|
export PITCH=${XRAY_PITCH:-1}
|
2019-01-01 21:17:55 +01:00
|
|
|
export DIN_N=${XRAY_DIN_N_SMALL:-8}
|
|
|
|
|
export DOUT_N=${XRAY_DOUT_N_SMALL:-8}
|
|
|
|
|
export XRAY_ROI=${XRAY_ROI_SMALL:-SLICE_X12Y100:SLICE_X17Y117}
|
2018-10-30 00:38:41 +01:00
|
|
|
# All of CMT X0Y2
|
2018-09-27 02:41:23 +02:00
|
|
|
else
|
|
|
|
|
echo "Design: large"
|
2019-02-01 11:19:29 +01:00
|
|
|
export PITCH=${XRAY_PITCH:-2}
|
2019-01-01 21:17:55 +01:00
|
|
|
export DIN_N=${XRAY_DIN_N_LARGE:-8}
|
|
|
|
|
export DOUT_N=${XRAY_DOUT_N_LARGE:-8}
|
|
|
|
|
export XRAY_ROI=${XRAY_ROI_LARGE:-SLICE_X0Y100:SLICE_X35Y149}
|
2018-09-27 02:41:23 +02:00
|
|
|
fi
|
|
|
|
|
|
2019-02-01 11:19:29 +01:00
|
|
|
echo ${DIN_N}
|
|
|
|
|
echo ${DOUT_N}
|
|
|
|
|
echo ${XRAY_ROI}
|
|
|
|
|
|
2018-10-02 00:52:09 +02:00
|
|
|
mkdir -p $BUILD_DIR
|
|
|
|
|
pushd $BUILD_DIR
|
|
|
|
|
|
2018-09-27 02:41:23 +02:00
|
|
|
cat >defines.v <<EOF
|
|
|
|
|
\`ifndef DIN_N
|
|
|
|
|
\`define DIN_N $DIN_N
|
|
|
|
|
\`endif
|
|
|
|
|
|
|
|
|
|
\`ifndef DOUT_N
|
|
|
|
|
\`define DOUT_N $DOUT_N
|
|
|
|
|
\`endif
|
|
|
|
|
EOF
|
|
|
|
|
|
2018-12-28 18:58:28 +01:00
|
|
|
${XRAY_VIVADO} -mode batch -source ../runme.tcl
|
2018-01-04 20:12:33 +01:00
|
|
|
test -z "$(fgrep CRITICAL vivado.log)"
|
|
|
|
|
|
2018-01-19 04:53:40 +01:00
|
|
|
${XRAY_BITREAD} -F $XRAY_ROI_FRAMES -o design.bits -z -y design.bit
|
2019-01-18 10:17:01 +01:00
|
|
|
python3 ${XRAY_DIR}/utils/bit2fasm.py --verbose design.bit > design.fasm
|
2020-06-16 02:28:42 +02:00
|
|
|
python3 ${XRAY_DIR}/utils/fasm2frames.py design.fasm design.frm
|
2019-02-20 20:45:03 +01:00
|
|
|
PYTHONPATH=$PYTHONPATH:$XRAY_DIR/utils python3 ../create_design_json.py \
|
2019-02-13 02:25:52 +01:00
|
|
|
--design_info_txt design_info.txt \
|
|
|
|
|
--design_txt design.txt \
|
|
|
|
|
--pad_wires design_pad_wires.txt \
|
|
|
|
|
--design_fasm design.fasm > design.json
|
2018-10-23 23:37:44 +02:00
|
|
|
|
2018-01-19 23:02:51 +01:00
|
|
|
# Hack to get around weird clock error related to clk net not found
|
|
|
|
|
# Remove following lines:
|
|
|
|
|
#set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets clk_IBUF]
|
|
|
|
|
#set_property FIXED_ROUTE { { CLK_BUFG_BUFGCTRL0_O CLK_BUFG_CK_GCLK0 ... CLK_L1 CLBLM_M_CLK } } [get_nets clk_net]
|
|
|
|
|
if [ -f fixed.xdc ] ; then
|
|
|
|
|
cat fixed.xdc |fgrep -v 'CLOCK_DEDICATED_ROUTE FALSE' |fgrep -v 'set_property FIXED_ROUTE { { CLK_BUFG_BUFGCTRL0_O' >fixed_noclk.xdc
|
|
|
|
|
fi
|
2018-01-19 04:53:40 +01:00
|
|
|
popd
|