From: R Veera Kumar Date: Fri, 1 Apr 2022 13:00:37 +0000 (+0530) Subject: Update the page with more instructions X-Git-Tag: opf_rfc_ls005_v1~2945 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a15156b65ed1f169d4a0ac6f2699446c541b28d8;p=libreriscv.git Update the page with more instructions --- diff --git a/HDL_workflow/nextpnr-xilinx.mdwn b/HDL_workflow/nextpnr-xilinx.mdwn index 854caa1db..9cff410ae 100644 --- a/HDL_workflow/nextpnr-xilinx.mdwn +++ b/HDL_workflow/nextpnr-xilinx.mdwn @@ -7,3 +7,137 @@ * ## 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: + + + 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