An open API service indexing awesome lists of open source software.

https://github.com/hzeller/symbiflow-simple-sample

Using Symbiflow arch defs to get BASYS3 board entertained with logic
https://github.com/hzeller/symbiflow-simple-sample

Last synced: 4 months ago
JSON representation

Using Symbiflow arch defs to get BASYS3 board entertained with logic

Awesome Lists containing this project

README

          

Artix-7 using Symbiflow
-----------------------

This is an out-of-tree use of [symbiflow-arch-defs] to build for an Artix-7
target.

This uses files generated from [symbiflow-arch-defs], so check out and build
it somewhere, then point `SYMBIFLOW_ARCH_DEFS` in this Makefile to it.

First, check out symbiflow-arch-defs and build

```
git clone --recursive https://github.com/SymbiFlow/symbiflow-arch-defs.git
cd symbiflow-arch-defs
mkdir build
cd build
cmake -DCMAKE_VERBOSE_MAKEFILE=on ../
make
```

There are some architecture XML files generated by SymbiFlow to be used by
packing and routing as well as supporting binaries generated or pulled via
conda. The build-system makes it a bit hard to see what targets to invoke to
get these, so simplest is to just run the example provided by symbiflow
once 'in-tree'; inside the `symbiflow-arch-defs/build` directory do:

```
make -C xc7/tests/counter counter_basys3_prog
```

Now we're ready to use the Makefile provided here. Build and send to board with

```
make prog
```

The tools, such as yosys and vpr are used from the symbiflow conda
packages; see Makefile what environment variables to set to point to your
own versions of these binaries.

Target here is an Artix-7 Digilent BASYS3 board. If you can't access the
device as non-root, add a udev rules file.

```
$ cat /etc/udev/rules.d/99-digilent-basys3.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0403", ATTR{idProduct}=="6010", MODE="0666"
```

[symbiflow-arch-defs]: https://github.com/SymbiFlow/symbiflow-arch-defs