../_images/stfc_technology.gif

Electronic System Design Group

Documentation Status

Installation

FPGAFlow has been developed for use in a Linux based environment.

Prerequisites

Required Software

The following software is required:

- Version
python >= 2.7.14
pipenv >= 2018.05.18
svn >= 1.9.0
git >= 1.8.0

Python Modules

Python Modules are handled by pipenv and stored in: ./scripts/python/fpgaflow/Pipfile

Module Version
breathe 4.11.0
colorlog 3.1.4
doxypypy 0.8.8.6
gitpython 2.1.11
logging 0.4.9.6
lxml 4.3.0
numpy 1.16.0
pygments 2.2.0
pyyaml 3.13
releases 1.6.1
sphinx-rtd-theme 0.4.2
sphinx 1.8.2
svn 0.3.46
vunit_hdl 4.0.8

Additional Modules

The modules below can be installed from $REPO_ROOT/tools/<MODULE>/scripts/python/<MODULE>-<ORG>/dist/ using the *.tar.gz sdist source file.

pipenv_installer.py is provided in $REPO_ROOT/tools/<MODULE>/scripts/python/utils to aid the installation of additional modules from $REPO_ROOT/tools. See Utils.

Module Version
xml2vhdl-ox 0.1.16

Installed Tools

FPGAFlow assumes at least one version of either of the following tools are installed on the system where FPGAFlow is executed from:

  • Xilinx Vivado
  • Intel PSG Quartus Prime

FPGAFlow assumes at least one version of each of the following tools are installed on the system where FPGAFlow is executed:

  • Modelsim
  • doxygen
  • graphviz

Paths and licensing for these tools are configured in the config.yaml file passed to FPGAFlow using the --config argument (see Configuration for details).

Required Environment Variables

The following Environment Variables are required by FPGAFlow. These ensure that no personal locations are stored in version management systems (see: required:).

REPO_ROOT
Sets the top-level root path where all projects/libraries will be checkout out to and processed from.
BITBUCKET_USERNAME
The username used to access user controlled private git cloud hosted repositories.
GIT_USERNAME
The username used to access user controlled private git server hosted repositories.
SVN_USERNAME
The username used to access user controlled private subversion repositories.
PIPENV_SHELL
Path to the executable for the shell pipenv should run.
SIM_PRE_COMPILED_LIBS_PATH
The root path to precompiled Modelsim libraries.

Installation Instructions

  1. Checkout/Clone FPGAFlow and xml2vhdl from their repositories:
git clone https://$BITBUCKET_USERNAME@bitbucket.org/mjroberts/fpgaflow.git $REPO_ROOT/tools/fpgaflow
git clone https://$BITBUCKET_USERNAME@bitbucket.org/ricch/xml2vhdl.git $REPO_ROOT/tools/xml2vhdl
  1. Create or Modify Configuration YAML file to add tool paths, versions and license paths to: $REPO_ROOT/tools/fpgaflow/scripts/python/fpgaflow/config/<YOUR_CONFIG>.yml (see Configuration for details).
  2. Create or Modify Settings YAML file to define project: $REPO_ROOT/tools/fpgaflow/settings/<YOUR_SETTINGS>.yml (see Settings for details).
  3. Navigate to path where FPGAFlow will be executed.
  4. Install the python virtual environment using pipenv_installer.py (see pipenv_installer.py) ensuring the version of python meets the Prerequisites.
pipenv_installer.py xml2vhdl-ox fpgaflow-stfc
  1. Run FPGAFLow using pipenv in shell or run:
pipenv shell
python ./projectflow.py --config ./config/<YOUR_CONFIG>.yml --settings ../../../settings/<YOUR_SETTINGS>.yml
## Or:
pipenv run python ./projectflow.py --config ./config/<YOUR_CONFIG>.yml --settings ../../../settings/<YOUR_SETTINGS>.yml