X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=HDL_workflow%2Fnextpnr-xilinx.mdwn;h=fbe86a6bcc91f1d320d95a1b052c5ec7d5ef1a54;hb=d789a0d649e01c429c5c93ae486ba8a79117a3de;hp=ba812e2e5d138c7822e378074b275853670206f8;hpb=15085d8c4e8a9da9f0ebdf6198ba1d7a1e9f18cf;p=libreriscv.git diff --git a/HDL_workflow/nextpnr-xilinx.mdwn b/HDL_workflow/nextpnr-xilinx.mdwn index ba812e2e5..fbe86a6bc 100644 --- a/HDL_workflow/nextpnr-xilinx.mdwn +++ b/HDL_workflow/nextpnr-xilinx.mdwn @@ -1,16 +1,18 @@ -# Installation instructions for Nextpnr-xilinx with Xilinx Artix7 100T Board +# nextpnr-xilinx -* +Installation instructions for Nextpnr-xilinx with Digilent Arty A7-100t +with Xilinx Artix7 100T -## Bugzilla page +Use of the automated install scripts recommended -* +* Source code: +* Bugzilla page +* Auto-install script: +* Prerequisites: yosys -## Page under work +# Setting up new debootstrap and chroot into it -## Setting up new debootstrap and chroot into it - -Run the following if you wish to isolate the symbiflow build +Run the following if you wish to isolate the nextpnr-xilinx build from other software (reproducible builds) or use the schroot auto-preparation script here: @@ -23,116 +25,75 @@ auto-preparation script here: mount -t devpts devpts $MY_CHROOT/dev/pts/ chroot $MY_CHROOT /bin/bash -## Add Buster Backports Repo and Update - -""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 - - -## Download neccessary softwares +# Download neccessary softwares apt-get install -y libcurl3-gnutls/buster git/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 -""#apt-get install -y build-essential autoconf make g++ bison flex gperf"" -""libreadline6-dev"" - -## Steps to compile Yosys - -### Necessary software to install - - apt-get install -y build-essential make g++ +# Steps to compile prjxray - apt-get install -y cmake - apt-get install -y python3 clang libreadline-dev gawk tcl-dev \ - libffi-dev pkg-config libboost-system-dev libboost-python-dev \ - libboost-filesystem-dev zlib1g-dev - -### Build Yosys - - cd abc - git checkout 00b674d5b3ccefc7f2abcbf5b650fc14298ac549 - cd ../yosys - git checkout 6318db6152d053244adb316fda6e01a32a4f3c72 - ln -s ../abc . - make -j $(nproc) PREFIX=/usr/local/nx - make PREFIX=/usr/local/nx install - export PATH=/usr/local/nx/bin:$PATH - cd .. +## Necessary software to install -## Steps to compile prjxray + apt-get install -y build-essential make cmake python3 python3-dev \ + python3-setuptools python3-numpy cython3 python3-pip -### Necessary software to install + pip3 install textx fasm -### Build prjxray +## Build prjxray cd prjxray git checkout 18b92012afe2b03f3f975a78c4372c74b60dca0c git submodule update --init --recursive mkdir build; cd build - cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nx .. + cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nextpnr-xilinx .. make -j$(nproc) make install - install -d -m 0755 /usr/local/nx/build/tools + 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/nx/build/tools + /usr/local/nextpnr-xilinx/build/tools cd .. - cp -dpr utils /usr/local/nx - sed -i -e '/^# Vivado /,$d' /usr/local/nx/utils/environment.sh - pip3 install . + cp -dpr utils /usr/local/nextpnr-xilinx + sed -i -e '/^# Vivado /,$d' \ + /usr/local/nextpnr-xilinx/utils/environment.sh + python3 setup.py develop + export PATH=/usr/local/nextpnr-xilinx/bin:$PATH cd .. -## Steps to compile prjxray-db +# Steps to compile prjxray-db -### Install prjxray-db +## Install prjxray-db cd prjxray-db git archive --format=tar --prefix=database/ \ 0a0addedd73e7e4139d52a6d8db4258763e0f1f3 | \ - tar -C /usr/local/nx -xf - + tar -C /usr/local/nextpnr-xilinx -xf - cd .. -## Steps to compile nextpnr-xilinx +# Steps to compile nextpnr-xilinx -### Necessary software to install +## Necessary software to install - apt-get install libboost-thread-dev libboost-iostreams-dev \ - libboost-program-options-dev + apt-get install -y libboost-thread-dev libboost-iostreams-dev \ + libboost-program-options-dev libeigen3-dev libboost-python-dev \ + libboost-filesystem-dev -### Build nextpnr-xilinx +## Build nextpnr-xilinx cd nextpnr-xilinx git checkout 565588a69ea95a52f7c7592f4ed81d9bef6cfb60 - cmake -DARCH=xilinx -DBUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/nx . + cmake -DARCH=xilinx -DBUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/nextpnr-xilinx . make -j$(nproc) make install 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/nx/share/xilinx - install -m 0755 xilinx/xc7a100t.bin /usr/local/nx/share/xilinx - export XRAY_DIR=/usr/local/nx + 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 # build attosoc example; it should build attosoc.bit as final bitstream @@ -141,7 +102,7 @@ auto-preparation script here: cd arty-a100 sed -i -e 's@xc7a35tcsg324-1@xc7a100tcsg324-1@g' \ -e 's@../../../nextpnr-xilinx@nextpnr-xilinx@g' \ - -e 's@../../xc7a35t.bin@/usr/local/nx/share/xilinx/xc7a100t.bin@g' \ + -e 's@../../xc7a35t.bin@/usr/local/nextpnr-xilinx/share/xilinx/xc7a100t.bin@g' \ attosoc.sh ./attosoc.sh