187 lines
4.5 KiB
ReStructuredText
187 lines
4.5 KiB
ReStructuredText
.. _intel:
|
|
|
|
Intel notes
|
|
###########
|
|
|
|
Intel/Altera
|
|
============
|
|
|
|
.. NOTE::
|
|
|
|
* CYC1000
|
|
* C10LP-RefKit
|
|
* DE0
|
|
* de0nano
|
|
|
|
Loading a bitstream
|
|
-------------------
|
|
|
|
SVF and RBF files are supported.
|
|
|
|
``sof`` to ``svf`` generation:
|
|
|
|
.. code-block:: bash
|
|
|
|
quartus_cpf -c -q 12.0MHz -g 3.3 -n p project_name.sof project_name.svf
|
|
|
|
``sof`` to ``rbf`` generation:
|
|
|
|
.. code-block:: bash
|
|
|
|
quartus_cpf --option=bitstream_compression=off -c project_name.sof project_name.rbf
|
|
|
|
.. WARNING::
|
|
As mentioned in ``cyclone`` handbooks, real-time decompression is not supported by FPGA in JTAG mode.
|
|
Keep in mind to disable this option.
|
|
|
|
You can have Quartus automatically generate SVF and RBF files by adding these lines to the ``qsf`` file, or include them in a ``tcl`` file in FuseSoC
|
|
|
|
.. code-block::
|
|
|
|
set_global_assignment -name ON_CHIP_BITSTREAM_DECOMPRESSION OFF
|
|
set_global_assignment -name GENERATE_RBF_FILE ON
|
|
set_global_assignment -name GENERATE_SVF_FILE ON
|
|
|
|
file load:
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader -b boardname project_name.svf
|
|
# or
|
|
openFPGALoader -b boardname project_name.rbf
|
|
|
|
with ``boardname`` = ``de0``, ``cyc1000``, ``c10lp-refkit``, ``de0nano``, ``de0nanoSoc`` or ``qmtechCycloneV``.
|
|
|
|
SPI flash
|
|
---------
|
|
|
|
RPD and RBF are supported. POF is only supported for MAX10 (internal flash).
|
|
|
|
``pof`` to ``rpd``:
|
|
|
|
.. code-block:: bash
|
|
|
|
quartus_cpf -c project_name.pof project_name.rpd
|
|
|
|
``sof`` to ``rpd``:
|
|
|
|
.. code-block:: bash
|
|
|
|
# CYC1000
|
|
quartus_cpf -o auto_create_rpd=on -c -d EPCQ16A -s 10CL025YU256C8G project_name.svf project_name.jic
|
|
# C10LP-RefKit
|
|
quartus_cpf -o auto_create_rpd=on -c -d EPCQ16A -s 10CL055YU484C8G project_name.svf project_name.jic
|
|
|
|
file load:
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader -b boardname -r project_name_auto.rpd
|
|
# or
|
|
openFPGALoader -b boardname -r project_name.rbf
|
|
|
|
with ``boardname`` = ``cyc1000``, ``c10lp-refkit``.
|
|
|
|
MAX10: FPGA Programming Guide
|
|
=============================
|
|
|
|
Supported Boards:
|
|
|
|
* step-max10_v1
|
|
* analogMax
|
|
|
|
Supported File Types:
|
|
|
|
* ``svf``
|
|
* ``svf``
|
|
* ``bin`` (arbitrary binary files)
|
|
|
|
Using ``svf``
|
|
-------------
|
|
|
|
.. note::
|
|
|
|
This method is required to load a bitstream into *SRAM*.
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader [-b boardname] -c cablename the_svf_file.svf
|
|
|
|
Parameters:
|
|
|
|
* ``boardname``: One of the boards supported by ``openFPGALoader`` (optional).
|
|
* ``cablename``: One of the supported cables (see ``--list-cables``).
|
|
|
|
Using ``pof``
|
|
-------------
|
|
|
|
When writing the bitstream to internal flash, using a ``pof`` file is the fastest approach.
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader [-b boardname] [--flash-sector] -c cablename the_pof_file.pof
|
|
|
|
Parameters:
|
|
|
|
* ``boardname``: One of the boards supported by ``openFPGALoader`` (optional).
|
|
* ``cablename``: One of the supported cables (see ``--list-cables``).
|
|
* ``--flash-sector``: Specifies which internal flash sectors to erase/update instead of modifying the entire flash. One
|
|
or more section may be provided, with ``,`` as separator. When this option isn't provided a full internal flash erase/
|
|
update is performed
|
|
|
|
Accepted Flash Sectors:
|
|
|
|
* ``UFM0``, ``UFM1``: User Flash Memory sections.
|
|
* ``CFM0``, ``CFM1``, ``CFM2``: Configuration Flash Memory sectors.
|
|
|
|
Example:
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader -c usb-blaster --flash-sector UFM1,CFM0,CFM2 the_pof_file.pof
|
|
|
|
This command updates ``UFM1``, ``CFM0``, and ``CFM2``, while leaving other sectors unchanged.
|
|
|
|
Using an arbitrary binary file
|
|
------------------------------
|
|
|
|
This command updates only *User Flash Memory* sectors without modifying ``CFMx``. Unlike Altera Quartus, it supports
|
|
any binary format without limitations (not limited to a ``.bin``.
|
|
|
|
.. note:: This approach is useful to updates, for example, a softcore CPU firmware.
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader [-b boardname] -c cablename the_bin_file.bin
|
|
|
|
* ``boardname``: One of the boards supported by ``openFPGALoader`` (optional).
|
|
* ``cablename``: One of the supported cables (see ``--list-cables``).
|
|
|
|
Behavior:
|
|
|
|
``UFM0`` and ``UFM1`` will be erased before writing the binary file.
|
|
|
|
.. note:: Depending on the internal flash configuration, ``CFM1`` and ``CFM2`` may also store arbitrary data. However, currently, ``openFPGALoader`` only supports writing to ``UFMx``.
|
|
|
|
Intel/Altera (Old Boards)
|
|
=========================
|
|
|
|
.. NOTE::
|
|
|
|
* Cyclone II (FPGA) (Tested OK: EP2C5T144C8N)
|
|
* Max II (CPLD) (Tested OK: EPM240T100C5N)
|
|
|
|
Loading a Serial Vector Format (.svf)
|
|
-------------------------------------
|
|
|
|
SVF files are supported.
|
|
|
|
To load the file:
|
|
|
|
.. code-block:: bash
|
|
|
|
openFPGALoader -c usb-blaster project_name.svf
|
|
|
|
|
|
|