Example designs showing different ways to use F4PGA toolchains.
Go to file
Ryan Johnson 0da09dafff changes after initial review
Signed-off-by: Ryan Johnson <ryancj14@gmail.com>
2021-05-13 12:07:04 -06:00
.github Add nightly cron job to symbiflow-examples. 2021-03-25 15:15:20 -07:00
docs changes after initial review 2021-05-13 12:07:04 -06:00
eos-s3 QL: env: pin ql_fasm to exact commit 2021-03-05 11:55:28 +01:00
scripts/make Change README Markdown format to reStructuredText 2020-09-09 13:25:50 +02:00
xc7 added Nexys4DDR to the documentation 2021-04-21 17:48:13 +00:00
.gitattributes update gitattributes 2020-06-09 22:16:32 +02:00
.gitignore changes after initial review 2021-05-13 12:07:04 -06:00
.readthedocs.yml Add license headers to docs and CI scripts 2020-12-14 14:45:55 +01:00
.style.yapf changes after initial review 2021-05-13 12:07:04 -06:00
LICENSE Add LICENSE 2020-04-21 14:58:08 +02:00
Makefile changes after initial review 2021-05-13 12:07:04 -06:00
README.rst ci: Add debian buster and debian bullseye 2020-12-15 12:49:44 +01:00
environment.yml Initial changes to implement formatters 2021-05-13 12:06:49 -06:00
requirements.txt Initial changes to implement formatters 2021-05-13 12:06:49 -06:00

README.rst

SymbiFlow examples
==================

.. image:: https://github.com/symbiflow/symbiflow-examples/workflows/doc-test/badge.svg?branch=master
   :target: https://github.com/SymbiFlow/symbiflow-examples/actions

.. image:: https://readthedocs.org/projects/symbiflow-examples/badge/?version=latest
   :target: https://symbiflow-examples.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

This repository provides example FPGA designs that can be built using the
SymbiFlow open source toolchain. These examples target the Xilinx 7-Series and
the QuickLogic EOS S3 devices.

The repository includes:

* `xc7/ <./xc7>`_ and `eos-s3/ <./eos-s3>`_ - Examples for Xilinx 7-Series and EOS-S3 devices, including:

  * Verilog code
  * Pin constraints files
  * Timing constraints files
  * Makefiles for running the SymbiFlow toolchain
* `docs/ <./docs>`_ - Guide on how to get started with SymbiFlow and build provided examples
* `.github/ <./.github>`_ - Directory with CI configuration and scripts

Please refer to the `project documentation <https://symbiflow-examples.readthedocs.io>`_
for a proper guide on how to run these examples. The examples provided by this
repository are automatically built by extracting necessary code snippets with
`tuttest <https://github.com/antmicro/tuttest>`_.

Building those docs
-------------------

To build Sphinx documentation, you need at least Python 3.6. You will also need
to install Sphinx v3.3.0 and additional dependencies, which you can get with
``pip``::

   pip install -r docs/requirements.txt

Next, just run::

   make -C docs html

The output will be found in the ``docs/_build/html`` directory.

Running "CI" locally
--------------------

The CI uses a bunch of scripts in the `.github/scripts/ <./.github/scripts>`_
directory to execute the needed tests. You can use the same scripts locally
to test without having to wait for the online CIs to pass if you
want to quickly test stuff.

For this, you will need `tuttest <https://github.com/antmicro/tuttest/>`_,
which you can install with::

    pip install git+https://github.com/antmicro/tuttest

* ``<fpga-family>`` is one of ``{eos-s3, xc7}`` (the two currently
  covered platforms - EOS-S3 and Xilinx series 7).
* ``<os>`` is one of ``{ubuntu, debian, centos}`` (currently supported operating systems).

To install the toolchain (just the first time), run::

   .github/scripts/install-toolchain.sh <fpga-family> <os> | bash -c "$(cat /dev/stdin)"

To build all the examples locally, just run::

   .github/scripts/build-examples.sh <fpga-family>  | bash -c "$(cat /dev/stdin)"