Example designs showing different ways to use F4PGA toolchains.
Go to file
Unai Martinez-Corral 56a7deeb5d docs/conf: add admonition in the prolog, pointing to F4PGA
Signed-off-by: Unai Martinez-Corral <umartinezcorral@antmicro.com>
2022-04-08 12:26:02 +02:00
.github ci: add Automerge and convert sphinx-tuttest to a reusable workflow 2022-04-07 16:38:02 +02:00
common Merge pull request #272 from KennethWilke/master 2022-04-06 21:45:17 +02:00
docs docs/conf: add admonition in the prolog, pointing to F4PGA 2022-04-08 12:26:02 +02:00
eos-s3 Pinned quicklogic-fasm version used in CI 2021-09-08 14:28:05 +02:00
projf-makefiles/hello/hello-arty Raname to F4PGA 2022-02-18 18:15:44 +01:00
scripts/make Raname to F4PGA 2022-02-18 18:15:44 +01:00
third_party xc7: lite sata add third party code for VexRiscV and improve docs 2021-11-30 13:41:25 +01:00
xc7 Pin requirements 2022-04-05 11:39:43 +02: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
.gitmodules xc7: lite sata add third party code for VexRiscV and improve docs 2021-11-30 13:41:25 +01:00
.readthedocs.yml readthedocs: do not fail on warnings 2022-03-15 12:25:43 +01:00
.style.yapf changes after initial review 2021-05-13 12:07:04 -06:00
LICENSE Relicense to Apache-2.0 2022-02-02 19:41:06 +01:00
Makefile Raname to F4PGA 2022-02-18 18:15:44 +01:00
README.rst Raname to F4PGA 2022-02-18 18:15:44 +01:00

README.rst

F4PGA examples
==============

Please refer to the `project documentation <https://f4pga-examples.readthedocs.io>`_
for a proper guide on how to run these examples as well as instructions on how to build and
compile your own HDL designs using the F4PGA toolchain.

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

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

This repository provides example FPGA designs that can be built using the
F4PGA 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 F4PGA toolchain
* `docs/ <./docs>`_ - Guide on how to get started with F4PGA and build provided examples
* `.github/ <./.github>`_ - Directory with CI configuration and scripts

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)"