Configuration
=============

Within an FPGA, various memories (latches, block RAMs, distributed RAMs)
contain the state of signal routing, :term:`BEL` configuration, and runtime
storage. Configuration is the process of loading an initial state into all of
these memories both to define the intended logic operations as well as set
initial data for runtime memories. Note that the same mechanisms used for
configuration are also capable of reading out the active state of these
memories as well. This can be used to examine the contents of a block RAM or
other memory at any point in the device's operation.

Addressing
----------------
As described in :ref:`architecture_overview-label`, 7-Series FPGAs are constructed
out of :term:`tiles <tile>` organized into :term:`clock domains <clock
domain>`. Each tile contains a set of :term:`BELs <BEL>` and the memories used
to configure them. Uniquely addressing each of these memories
involves first identifying the :term:`horizontal clock row`, then the tile within
that row, and finally the specific bit within the tile.

:term:`Horizontal clock row` addressing follows the hierarchical structure described
in :ref:`architecture_overview-label` with a single bit used to indicate top or bottom half
and a 5-bit integer to encode the row number. Within the row, tiles are connected to
one or more configuration busses depending on the type of tile and what configuration
memories it contains. These busses are identified by a 3-bit integer:

+---------+-------------------+---------------------+
| Address | Name              | Connected tile type |
+=========+===================+=====================+
| 000     | CLB, I/O, CLB     | Interconnect (INT)  |
+---------+-------------------+---------------------+
| 001     | Block RAM content | Block RAM (BRAM)    |
+---------+-------------------+---------------------+
| 010     | CFG_CLB           | ???                 |
+---------+-------------------+---------------------+

Within each bus, the connected tiles are organized into columns. A column roughly
corresponds to a physical vertical line of tiles perpendicular to and centered over
the horizontal clock row. Each column contains varying amounts of configuration data
depending on the types of tiles attached to that column. Regardless of the amount,
a column's configuration data is organized into a multiple of :term:`frames <frame>`.
Each frame consists of 101 words with 100 words for the connected tiles and 1 word for
the horizontal clock row. The 7-bit address used to identify a specific frame within
the column is called the minor address.

Putting all these pieces together, a 32-bit frame address is constructed:

+-----------------+-------+
| Field           | Bits  |
+=================+=======+
| Reserved        | 31:26 |
+-----------------+-------+
| Bus             | 25:23 |
+-----------------+-------+
| Top/Bottom Half | 22    |
+-----------------+-------+
| Row             | 21:17 |
+-----------------+-------+
| Column          | 16:7  |
+-----------------+-------+
| Minor           | 6:0   |
+-----------------+-------+

CLB, I/O, CLB
^^^^^^^^^^^^^

Columns on this bus are comprised of 50 directly-attached interconnect tiles with various
kinds of tiles connected behind them. Frames are striped across the interconnect tiles
with each tile receiving 2 words out of the frame. The number of frames in a column
depends on the type of tiles connected behind the interconnect. For example, interconnect
tiles always have 26 frames and a CLBL tile has an additional 12 frames so a column of CLBs
will have 36 frames.

Block RAM content
^^^^^^^^^^^^^^^^^

As the name says, this bus provides access to the Block RAM contents. Block RAM configuration
data is accessed via the CLB, I/O, CLB bus. The mapping of frame words to memory locations is
not currently understood.

CFG_CLB
^^^^^^^

While mentioned in a few places, this bus type has not been seen in any bitstreams for Artix7
so far.

Loading sequence
----------------------

.. todo::

  Expand on these rough notes.

* Device is configured via a state machine controlled via a set of registers
* CRC of register writes is checked against expected values to verify data
  integrity during transmission.
* Before writing frame data:

  * IDCODE for configuration's target device is checked against actual device
  * Watchdog timer is disabled
  * Start-up sequence clock is selected and configured
  * Start-up signal assertion timing is configured
  * Interconnect is placed into Hi-Z state

* Data is then written by:

  * Loading a starting address
  * Selecting the write configuration command
  * Writing configuration data to data input register

    * Writes must be in multiples of the frame size
    * Multi-frame writes trigger autoincrementing of the frame address
    * Autoincrement can be disabled via bit in COR1 register.
    * At the end of a row, 2 frames of zeros must be inserted before data for the next row.

* After the write has finished, the device is restarted by:

  * Strobing a signal to activate IOB/CLB configuration flip-flops
  * Reactivate interconnect
  * Arms start-up sequence to run after desync
  * Desynchronizes the device from the configuration port

* Status register provides detail of start-up phases and which signals are asserted

Other
-----
* ECC of frame data is contained in word 50 alongside horizontal clock row configuration
* Loading will succeed even with incorrect ECC data
* ECC is primarily used for runtime bit-flip detection
