diff --git a/docs/conf.py b/docs/conf.py index 21883cc..4411150 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -172,8 +172,10 @@ man_pages = [ intersphinx_mapping = { "python": ("https://docs.python.org/3/", None), "arch-defs": ("https://f4pga.readthedocs.io/projects/arch-defs/en/latest/", None), - "interchange": ("https://fpga-interchange-schema.readthedocs.io/", None), + "constraints": ("https://hdl.github.io/constraints/", None), "fasm": ("https://fasm.readthedocs.io/en/latest/", None), + "interchange": ("https://fpga-interchange-schema.readthedocs.io/", None), + "openfpgaloader": ("https://trabucayre.github.io/openFPGALoader/", None), "prjtrellis": ("https://prjtrellis.readthedocs.io/en/latest/", None), "prjxray": ("https://f4pga.readthedocs.io/projects/prjxray/en/latest/", None), "vtr": ("https://docs.verilogtorouting.org/en/latest/", None), diff --git a/docs/environment.yml b/docs/environment.yml index 99c90ee..fd0e76d 100644 --- a/docs/environment.yml +++ b/docs/environment.yml @@ -15,12 +15,11 @@ # SPDX-License-Identifier: Apache-2.0 name: f4pga-docs + channels: - - symbiflow - conda-forge - - defaults + dependencies: - - cmake - pygobject - pip - pip: diff --git a/docs/getting-started.rst b/docs/getting-started.rst index 3da5262..47f332f 100644 --- a/docs/getting-started.rst +++ b/docs/getting-started.rst @@ -18,3 +18,51 @@ your FPGA. * `Project Trellis ➚ `__ * :gh:`Project Icestorm ➚ ` + + +.. _GettingStarted:LoadingBitstreams: + +Loading bitstreams +================== + +For every board, the loading process may vary and different tools may be required. +Typically, each tool supports a specific target family or the lines of products of a vendor. +Some of the most known are listed in :ref:`hdl/constraints: Programming and debugging `. +The tools used in the F4PGA Toolchain are e.g. ``OpenOCD``, ``tinyfpgab`` or ``tinyprog``. +Moreover, :gh:`OpenFPGALoader ` is a universal utility for programming FPGA devices, which is +becoming an alternative to the fragmentation in bitstream loading tools. +OpenFPGALoader supports many different boards with FPGAs based on the architectures including xc7, ECP5, iCE40 and many +more. +It can utilize a variety of the programming adapters based on JTAG, DAP interface, ORBTrace, DFU and FTDI chips. + +Installing OpenFPGALoader +------------------------- + +OpenFPGALoader is available in several packaging solutions. +It can be installed with distribution specific package managers on Arch Linux and Fedora. +There are also prebuilt packages available in `conda `__ +or packages in tool :gh:`repository `. +OpenFPGALoader can also be built from sources. +For installation guidelines using both prebuilt packages and building from source, please refer to instructions in +:gh:`readme `. + +Usage +----- + +For programming the FPGA, use one of these commands: + +.. sourcecode:: bash + + openFPGALoader -b # (e.g. arty) + openFPGALoader -c # (e.g. digilent) + openFPGALoader -d # (e.g. /dev/ttyUSB0) + +You can also list the supported boards, cables and FPGAs: + +.. sourcecode:: bash + + openFPGALoader --list-boards + openFPGALoader --list-cables + openFPGALoader --list-fpga + +If you encounter any issues, please refer to :doc:`openfpgaloader:index`.