2022-02-18 12:15:44 -05:00
|
|
|
Running Project F designs in F4PGA
|
|
|
|
==================================
|
2021-08-27 12:53:59 -04:00
|
|
|
|
|
|
|
.. warning::
|
2022-02-13 12:56:16 -05:00
|
|
|
F4PGA does not currently support the MMCME2_BASE primitive--a key commponent in Project F's clock_gen_480p module
|
|
|
|
and all designs involving video output.
|
|
|
|
As such, all of the designs in project F that require a display (all designs in FPGA graphics) will fail when run
|
|
|
|
through the toolchain. Only the designs in :gh:`Hello Arty <projf/projf-explore/tree/master/hello/hello-arty>` are
|
|
|
|
currently officially supported.
|
2022-05-21 04:07:45 -04:00
|
|
|
To track the progress of the MMCME2_BASE see :ghissue:`153` and issue :gh:`SymbiFlow/f4pga-arch-defs#2246 <SymbiFlow/f4pga-arch-defs/issues/2246>`.
|
2022-02-13 12:56:16 -05:00
|
|
|
One user was able to successfully run most of the display designs in project F by replacing the MMCM in
|
|
|
|
``clock_gen_480p.sv`` with a PLLE2_ADV.
|
|
|
|
For details on that see :ghissue:`180` in f4pga-examples.
|
2021-08-27 12:53:59 -04:00
|
|
|
|
|
|
|
Project F is an amazing repository containing many high quality FPGA example designs that show
|
|
|
|
some of the more impressive things you can do with an FPGA. You can find detailed documentation on
|
2022-02-13 12:56:16 -05:00
|
|
|
the designs and how they work on `the developers blog <https://projectf.io/sitemap/>`_.
|
2021-08-27 12:53:59 -04:00
|
|
|
|
2022-02-18 12:15:44 -05:00
|
|
|
To build the Designs in Project F using F4PGA, first ensure that you have installed the Project F
|
|
|
|
submodule locally. Enter into the ``f4pga-examples`` directory and run:
|
2021-08-27 12:53:59 -04:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
:name: import-projectf
|
|
|
|
|
2022-02-13 12:56:16 -05:00
|
|
|
git submodule update --init --recursive
|
2021-08-27 12:53:59 -04:00
|
|
|
|
|
|
|
After installing the Submodules, you can run any supported design by calling its makefile:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
TARGET="<board type>" make -C projf-makefiles/<design module>/<design subset>/<design number or part name>
|
|
|
|
|
|
|
|
For example, to build the first design in project F's hello ary designs:
|
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
|
|
|
TARGET="arty_35" make -C projf-makefiles/hello/hello-arty/A
|
2022-02-13 12:56:16 -05:00
|
|
|
|
|
|
|
To download the bitstream to the board run ``make download``.
|
|
|
|
For example, to download the first design from hello arty, run the following in F4PGA's root directory:
|
2021-08-27 12:53:59 -04:00
|
|
|
|
|
|
|
.. code-block:: bash
|
|
|
|
|
2021-10-02 13:05:25 -04:00
|
|
|
TARGET="arty_35" make download -C projf-makefiles/hello/hello-arty/A
|