f4pga-examples/xc7
Kamil Rakoczy 21390ff61f Update README.md files
Signed-off-by: Kamil Rakoczy <krakoczy@antmicro.com>
2020-09-07 12:36:46 +02:00
..
counter_test Remove the extra examples directory. 2020-07-29 12:26:38 -07:00
linux_litex_demo Remove the extra examples directory. 2020-07-29 12:26:38 -07:00
picosoc_demo Remove the extra examples directory. 2020-07-29 12:26:38 -07:00
README.md Update README.md files 2020-09-07 12:36:46 +02:00
environment.yml Remove the extra examples directory. 2020-07-29 12:26:38 -07:00
requirements.txt Remove the extra examples directory. 2020-07-29 12:26:38 -07:00

README.md

SymbiFlow Toolchain Examples for Xilinx 7 Series

  1. counter - simple 4-bit counter driving LEDs. The design targets the Basys3 board and the Arty board.
  2. picosoc - picorv32 based SoC. The design targets the Basys3 board.
  3. linux_litex - LiteX based system with Linux capable VexRiscv core. The design includes DDR and Ethernet controllers. The design targets the Arty board.

The Linux images for the linux_litex example can be built following the linux on litex vexriscv instructions. The linux_litex example is already provided with working Linux images.

Setting up the toolchain

INSTALL_DIR="/opt/symbiflow/xc7"
bash conda_installer.sh -b -p $INSTALL_DIR/conda && rm conda_installer.sh
source "$INSTALL_DIR/conda/etc/profile.d/conda.sh"
conda env create -f xc7/environment.yml
conda activate xc7
wget -qO- https://storage.googleapis.com/symbiflow-arch-defs/artifacts/prod/foss-fpga-tools/symbiflow-arch-defs/presubmit/install/477/20200714-082108/symbiflow-arch-defs-install-8eb88e76.tar.xz | tar -xJ --one-top-level=$INSTALL_DIR/install
conda deactivate

Building the examples

To build the example, run the following commands:

export INSTALL_DIR="/opt/symbiflow/xc7"
# adding symbiflow toolchain binaries to PATH
export PATH="$INSTALL_DIR/install/bin:$PATH"
source "$INSTALL_DIR/conda/etc/profile.d/conda.sh"
conda activate xc7
git clone https://github.com/SymbiFlow/symbiflow-examples && cd symbiflow-examples
# counter example
pushd xc7/counter_test && make clean && TARGET="arty_50" make && popd
pushd xc7/counter_test && make clean && TARGET="arty_100" make && popd
pushd xc7/counter_test && make clean && TARGET="basys3" make && popd
# picosoc example
pushd xc7/picosoc_demo && make && popd
# litex example
wget https://raw.githubusercontent.com/enjoy-digital/litex/master/litex_setup.py
chmod +x litex_setup.py
./litex_setup.py init
./litex_setup.py install
wget https://static.dev.sifive.com/dev-tools/riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14.tar.gz
tar -xf riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14.tar.gz
export PATH=$PATH:$PWD/riscv64-unknown-elf-gcc-8.1.0-2019.01.0-x86_64-linux-ubuntu14/bin/
pushd litex/litex/boards/targets && ./arty.py --toolchain symbiflow --cpu-type vexriscv --build && popd
# linux litex example
pushd xc7/linux_litex_demo && make && popd