=============== site_type files =============== The *site_type files* are generated for every FPGA :term:`site ` type. They store the information about the pins and :term:`PIPs ` of the :term:`site `. Naming convention ----------------- The naming scheme for the :term:`site ` type files is the following:: site_type_.json Example files: - ``site_type_IDELAYE2.json`` - ``site_type_PLLE2_ADV.json`` - ``site_type_SLICEL.json`` File format ----------- The :term:`site ` type files are JSON files with the following scheme:: { "site_pins": { "": { "direction": "" }, <...> }, "site_pips": { "": { "from_pin": "", "to_pin": "" } }, "type": "" } where: - ** - specifies the :term:`site ` pin name - ** - specifies the :term:`site ` :term:`pip ` name - ** - is a direction of a pin (either **IN** or **OUT**) - ** - specifies the :term:`site ` type The ``"site_pins"`` section describes the input pins of a :term:`site ` and its directions. The ``"site_pips"`` describes the :term:`PIPs ` inside the :term:`site ` and which wires they can connect. Example ------- Below there is a part of ``site_type_SLICEL.json`` file for the *artix7* architecture:: { "site_pins": { "A": { "direction": "OUT" }, "A1": { "direction": "IN" }, "A2": { "direction": "IN" }, "A3": { "direction": "IN" }, "A4": { "direction": "IN" }, "A5": { "direction": "IN" }, "A6": { "direction": "IN" }, <...> }, "site_pips": { "A5FFMUX:IN_A": { "from_pin": "IN_A", "to_pin": "OUT" }, "A5FFMUX:IN_B": { "from_pin": "IN_B", "to_pin": "OUT" }, "A5LUT:A1": { "from_pin": "A1", "to_pin": "O5" }, "A5LUT:A2": { "from_pin": "A2", "to_pin": "O5" }, "A5LUT:A3": { "from_pin": "A3", "to_pin": "O5" }, "A5LUT:A4": { "from_pin": "A4", "to_pin": "O5" }, "A5LUT:A5": { "from_pin": "A5", "to_pin": "O5" }, <...> }, "type": "SLICEL" } Compare the description with the `Xilinx documentation`_ of that :term:`site `. .. _Xilinx documentation: https://www.xilinx.com/support/documentation/user_guides/ug474_7Series_CLB.pdf#page=20