Example designs showing different ways to use F4PGA toolchains.
Go to file
Tim 'mithro' Ansell b15679093c travis: Use toolchain name directly.
A small change to the naming in eos-s3/README.rst names means we can
simplify the .travis.yml to use the TOOLCHAIN value directly rather than
needing multiple if statements.

Also add comments to explain what is happening in each section.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
2020-09-28 07:15:43 -07:00
.github/travis Change README Markdown format to reStructuredText 2020-09-09 13:25:50 +02:00
eos-s3 travis: Use toolchain name directly. 2020-09-28 07:15:43 -07:00
scripts/make Change README Markdown format to reStructuredText 2020-09-09 13:25:50 +02:00
xc7 Change indent to minimize diff for PR. 2020-09-24 11:11:34 -07:00
.gitattributes update gitattributes 2020-06-09 22:16:32 +02:00
.gitignore Added gitignore 2020-05-26 19:43:20 +02:00
.travis.yml travis: Use toolchain name directly. 2020-09-28 07:15:43 -07:00
LICENSE Add LICENSE 2020-04-21 14:58:08 +02:00
Makefile Change README Markdown format to reStructuredText 2020-09-09 13:25:50 +02:00
README.rst travis: Use toolchain name directly. 2020-09-28 07:15:43 -07:00
README.src.rst Update to use named snippets 2020-09-28 12:01:46 +02:00
environment.yml Change README Markdown format to reStructuredText 2020-09-09 13:25:50 +02:00
requirements.txt Change README Markdown format to reStructuredText 2020-09-09 13:25:50 +02:00

README.src.rst

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

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

The repository includes:

* `eos-s3 </eos-s3>`_ - Example FPGA designs for the QuickLogic EOS S3 series of parts:

  * Verilog code
  * Pin constraints files
  * Timing constraints files
  * Makefiles for running the SymbiFlow toolchain

* `xc7 </xc7>`_ - Example FPGA designs for the Xilinx 7 series of parts:

  * Verilog code
  * Pin constraints files
  * Timing constraints files
  * Makefiles for running the SymbiFlow toolchain

* `.travis.yml <.travis.yml>`_ - Travis CI configuration file

Clone this repository
---------------------

If you have not already done so, clone this repository and ``cd`` into it:

.. code:: bash

    sudo apt install git
    git clone https://github.com/SymbiFlow/symbiflow-examples.git && cd symbiflow-examples


Prerequisites
-------------
The only required prerequisite is ``wget``. You can install it using:

* For Ubuntu:

.. code:: bash
   :name: install-wget-ubuntu

   apt update && apt install -y wget

* For CentOS:

.. code:: bash
   :name: install-wget-centos

   yum install -y wget

Toolchain installation
----------------------

This section describes how to install the toolchain. This procedure is divided in three steps:

- Installing the Conda package manager
- Choosing an installation directory
- Downloading the architecture definitions and installing the toolchain

1. Conda

.. code:: bash
   :name: wget-conda

   wget https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh -O conda_installer.sh

2. Choose the install directory

The install directory can either be in your home directory 
such as ``~/opt/symbiflow`` or in a system directory such as ``/opt/symbiflow``.  
If you choose a system directory, you will need root permission to perform the installation, 
and so you will need to add some ``sudo`` commands to the instructions below.

.. code:: bash

   INSTALL_DIR=~/opt/symbiflow

3. Toolchain

* For the Artix-7 devices:

.. include:: xc7/README.rst
   :start-after:.. toolchain_include_begin_label
   :end-before:.. toolchain_include_end_label


* For the EOS S3 devices:

.. include:: eos-s3/README.rst
   :start-after:.. toolchain_include_begin_label
   :end-before:.. toolchain_include_end_label


Build Example Designs
---------------------

With the toolchain installed, you can build the example designs.
The example designs are provided in separate directories:

* ``xc7`` directory for the Artix-7 devices
* ``eos-s3`` directory for the EOS S3 devices



Example designs for the Artix-7 devices:
****************************************

.. include:: xc7/README.rst
   :start-after:.. build_examples_include_begin_label
   :end-before:.. build_examples_include_end_label


Example design for the EOS S3 devices:
**************************************

.. include:: eos-s3/README.rst
   :start-after:.. build_examples_include_begin_label
   :end-before:.. build_examples_include_end_label