From 6de9645711cfcc677b64c51aa6f0730ccd281d24 Mon Sep 17 00:00:00 2001 From: R Veera Kumar Date: Mon, 4 Apr 2022 17:08:30 +0530 Subject: [PATCH] Add nextpnr-xilinx installation script --- nextpnr-xilinx-install | 119 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100755 nextpnr-xilinx-install diff --git a/nextpnr-xilinx-install b/nextpnr-xilinx-install new file mode 100755 index 0000000..1b5d085 --- /dev/null +++ b/nextpnr-xilinx-install @@ -0,0 +1,119 @@ +#!/bin/bash +if [ "$EUID" -ne 0 ] + then echo "Please run as root using 'sudo bash'" + exit +fi + +#!!! buster backports is needed for cmake +cat << EOF > /etc/apt/sources.list.d/buster_backports.list +deb http://deb.debian.org/debian buster-backports main +EOF + +# oooo annoying, pin preferences for buster-backports +cat << EOF > /etc/apt/preferences.d/99buster-backports +Package: * +Pin: release a=buster-backports +Pin-Priority: 900 +EOF + +# upgrade to buster-backports +apt-get update -y +apt-get upgrade -y + +# change into $SUDO_USER home directory +cd /home/$SUDO_USER +mkdir -p src/nextpnr-xilinx +cd src/nextpnr-xilinx + +apt-get install -y --allow-downgrades libcurl3-gnutls/buster git/buster git-man/buster + +git clone https://github.com/YosysHQ/yosys.git +git clone https://github.com/YosysHQ/abc.git +git clone https://github.com/f4pga/prjxray.git +git clone https://github.com/SymbiFlow/prjxray-db.git +git clone https://github.com/gatecat/nextpnr-xilinx.git + +## Steps to compile Yosys + +### Necessary software to install + +apt-get install -y build-essential make g++ cmake bison flex python3 \ + clang libreadline-dev gawk tcl-dev libffi-dev pkg-config zlib1g-dev \ + libboost-system-dev libboost-python-dev libboost-filesystem-dev + +### Build Yosys + +cd abc +git checkout 00b674d5b3ccefc7f2abcbf5b650fc14298ac549 +cd ../yosys +git checkout 6318db6152d053244adb316fda6e01a32a4f3c72 +ln -s ../abc . +make -j $(nproc) PREFIX=/usr/local/nextpnr-xilinx +make PREFIX=/usr/local/nextpnr-xilinx install +export PATH=/usr/local/nextpnr-xilinx/bin:$PATH +cd .. + +## Steps to compile prjxray + +### Necessary software to install + +apt-get install -y python3-pip + +### Build prjxray + +cd prjxray +git checkout 18b92012afe2b03f3f975a78c4372c74b60dca0c +git submodule update --init --recursive +mkdir build; cd build +cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nextpnr-xilinx .. +make -j$(nproc) +make install +install -d -m 0755 /usr/local/nextpnr-xilinx/build/tools +install -m 0755 tools/{bitread,bittool,frame_address_decoder,gen_part_base_yaml,segmatch,xc7frames2bit,xc7patch} \ +/usr/local/nextpnr-xilinx/build/tools +cd .. +cp -dpr utils /usr/local/nextpnr-xilinx +sed -i -e '/^# Vivado /,$d' /usr/local/nextpnr-xilinx/utils/environment.sh +pip3 install . +cd .. + +## Steps to compile prjxray-db + +### Install prjxray-db + +cd prjxray-db +git archive --format=tar --prefix=database/ \ + 0a0addedd73e7e4139d52a6d8db4258763e0f1f3 | \ + tar -C /usr/local/nextpnr-xilinx -xf - +cd .. + +## Steps to compile nextpnr-xilinx + +### Necessary software to install + +apt-get install -y libboost-thread-dev libboost-iostreams-dev \ + libboost-program-options-dev libeigen3-dev + +### Build nextpnr-xilinx + +cd nextpnr-xilinx +git checkout 565588a69ea95a52f7c7592f4ed81d9bef6cfb60 +git submodule init +git submodule update +cmake -DARCH=xilinx -DBUILD_GUI=OFF \ + -DCMAKE_INSTALL_PREFIX=/usr/local/nextpnr-xilinx . +make -j$(nproc) +make install +ln -s xc7a100tcsg324-1 xilinx/external/prjxray-db/artix7/xc7a100t +python3 xilinx/python/bbaexport.py --device xc7a100tcsg324-1 \ + --bba xilinx/xc7a100t.bba +./bbasm --l xilinx/xc7a100t.bba xilinx/xc7a100t.bin +install -d -m 0755 /usr/local/nextpnr-xilinx/share/xilinx +install -m 0755 xilinx/xc7a100t.bin /usr/local/nextpnr-xilinx/share/xilinx +export XRAY_DIR=/usr/local/nextpnr-xilinx +cd .. + +cd /home/$SUDO_USER/src/nextpnr-xilinx +chown -R $SUDO_USER . +chgrp -R $SUDO_USER . + -- 2.30.2