Update the page with more instructions
authorR Veera Kumar <vklr@vkten.in>
Fri, 1 Apr 2022 13:00:37 +0000 (18:30 +0530)
committerR Veera Kumar <vklr@vkten.in>
Fri, 1 Apr 2022 13:00:37 +0000 (18:30 +0530)
HDL_workflow/nextpnr-xilinx.mdwn

index 854caa1dbc10d7b73ba756f562818048725a0d5c..9cff410ae86ea1f6d3782cf9a3007641c29d35fa 100644 (file)
@@ -7,3 +7,137 @@
 * <https://bugs.libre-soc.org/show_bug.cgi?id=790>
 
 ## Page under work
+
+## Setting up new debootstrap and chroot into it
+
+Run the following if you wish to isolate the symbiflow build
+from other software (reproducible builds) or use the schroot
+auto-preparation script here:
+<https://git.libre-soc.org/?p=dev-env-setup.git;a=blob;f=mk-deb-chroot;hb=HEAD>
+
+    export MY_CHROOT=/stable-chroot
+    mkdir $MY_CHROOT
+    debootstrap buster $MY_CHROOT http://deb.debian.org/debian/
+    mount -t proc proc $MY_CHROOT/proc
+    mount -t sysfs sysfs $MY_CHROOT/sys
+    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
+
+    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++
+
+    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 ..
+
+## Steps to compile prjxray
+
+### Necessary software to install
+
+### Build prjxray
+
+    cd prjxray
+    git checkout 18b92012afe2b03f3f975a78c4372c74b60dca0c
+    git submodule update --init --recursive
+    mkdir build; cd build
+    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/nx ..
+    make -j$(nproc)
+    make install
+    install -d -m 0755 /usr/local/nx/build/tools
+    install -m 0755 tools/{bitread,bittool,frame_address_decoder,gen_part_base_yaml,segmatch,xc7frames2bit,xc7patch} /usr/local/nx/build/tools
+    cd ..
+    cp -dpr utils /usr/local/nx
+    sed -i -e '/^# Vivado /,$d' /usr/local/nx/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/nx -xf -
+    cd ..
+
+## Steps to compile nextpnr-xilinx
+
+### Necessary software to install
+
+    apt-get install libboost-thread-dev libboost-iostreams-dev libboost-program-options-dev
+
+### Build nextpnr-xilinx
+
+    cd nextpnr-xilinx
+    git checkout 565588a69ea95a52f7c7592f4ed81d9bef6cfb60
+    cmake -DARCH=xilinx -DBUILD_GUI=OFF -DCMAKE_INSTALL_PREFIX=/usr/local/nx .
+    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
+
+    # build attosoc example; it should build attosoc.bit as final bitstream
+
+    cd xilinx/examples
+    cp -dpr arty-a35 arty-a100
+    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' attosoc.sh
+    ./attosoc.sh
+
+    # see file attosoc.bit; it is the bitstream file and if built then success