==========
part files
==========
Both the ``part.json`` and ``part.yaml`` files contain information about
the configuration resources of the FPGA chip. The files include information
about bus types and the number of :term:`frames ` that
are available for the given configurational :term:`column `.
Additionally, the file stores information about the device ID and
available *IO BANKS*.
File format
-----------
Both files contain the same information, but since the ``part.yaml`` is
less accessible, the description will be based on the ``part.json`` file.
The ``part.json`` file is of the following form::
{
"global_clock_regions": {
"bottom": {
"rows": {
"" : {
"configuration_buses": {
"": {
"configurational_columns": {
"": {
"frame_count":
}
<...>
}
}
<...>
}
}
<...>
}
},
"top": {
"rows": {
"" : {
"configuration_buses": {
"": {
"configurational_columns": {
"": {
"frame_count":
}
<...>
}
}
<...>
}
}
<...>
}
},
}
},
"idcode" : ,
"iobanks" : {
"": ",
<...>
}
}
The file contains three main entries:
- ``"global_clock_regions"`` - Contains the information about the configurational
resources of the FPGA chip. The 7-Series FPGAs are divided into two
:term:`halves ` - ``top`` and ``bottom``. This explains the origin of
those entries in the file.
Every half contains a few ``rows`` associated with
the global :term:`clock regions `. The particular row of the
global :term:`clock regions ` is indicated by the ````.
Since every row can be configured by one of three configurational buses:
``CLK_IO_CLKB``, ``BLOCK_RAM`` or ``CFG_CLB``, the appropriate bus is indicated by
the ````.
There are many :term:`columns ` connected to a single bus. Each column
is described by appropriate ```` entry which contains the
information about the number of frames (````) which can be
used to configure the particular column.
- ``"idcode"`` - ID of the given chip package
- ``"iobanks"`` - a dictionary that contains the *IO Bank* ID (````) and
their position in the FPGA grid (````).
Examples
--------
.. code-block:: javascript
{
global_clock_regions": {
"bottom": {
"rows": {
"0": {
"configuration_buses": {
"BLOCK_RAM": {
"configuration_columns": {
"0": {
"frame_count": 128
},
"1": {
"frame_count": 128
},
"2": {
"frame_count": 128
}
}
},
"CLB_IO_CLK": {
"configuration_columns": {
"0": {
"frame_count": 42
},
"1": {
"frame_count": 30
},
"2": {
"frame_count": 36
},
<...>
}
}
<...>
},
},
"top" : {
<...>
}
},
"idcode": 56803475,
"iobanks": {
"0": "X1Y78",
"14": "X1Y26",
"15": "X1Y78",
"16": "X1Y130",
"34": "X113Y26",
"35": "X113Y78"
}
}