mirror of https://github.com/openXC7/prjxray.git
84 lines
2.3 KiB
ReStructuredText
84 lines
2.3 KiB
ReStructuredText
===============
|
|
cell data files
|
|
===============
|
|
|
|
The *cell data* files are meant for specific primitives which have a common attribute format. The data contained in these files is generated/copied from the corresponding primitives' fuzzers.
|
|
|
|
Naming convention
|
|
-----------------
|
|
|
|
The naming scheme for the cell data files is the following::
|
|
|
|
<primitive_name>_<data_file_type>.json
|
|
|
|
Example files:
|
|
|
|
- ``gtpe2_common_attrs.json``
|
|
- ``gtpe2_channel_ports.json``
|
|
|
|
File format
|
|
-----------
|
|
|
|
There are two main data file types:
|
|
|
|
- *Ports*
|
|
- *Attributes*
|
|
|
|
Attributes files
|
|
~~~~~~~~~~~~~~~~
|
|
|
|
This is a JSON file containing a dictionary of parameters, each one with, at most, four attributes:
|
|
|
|
- Type: one of BIN, INT, STR, BOOL.
|
|
- Values: all possible values that this parameter can assume. In case of `BIN` types, the values list contains only the maximum value reachable.
|
|
- Digits: number of digits (or bits) required to enable a parameter.
|
|
- Encoding: This is present only for `INT` types of parameters. These reflect the actual encoding of the parameter value in the bit array.
|
|
|
|
As an example of parameter please, refer to the following::
|
|
|
|
{
|
|
"PLL0_REFCLK_DIV": {
|
|
"type": "INT",
|
|
"values": [1, 2],
|
|
"encoding": [16, 0],
|
|
"digits": 5
|
|
},
|
|
"RXLPMRESET_TIME": {
|
|
"type": "BIN",
|
|
"values": [127],
|
|
"digits": 7
|
|
},
|
|
"RX_XCLK_SEL": {
|
|
"type": "STR",
|
|
"values": ["RXREC", "RXUSR"],
|
|
"digits": 1
|
|
},
|
|
"TX_LOOPBACK_DRIVE_HIZ": {
|
|
"type": "BOOL",
|
|
"values": ["FALSE", "TRUE"],
|
|
"digits": 1
|
|
},
|
|
}
|
|
|
|
Ports files
|
|
~~~~~~~~~~~
|
|
|
|
This is a JSON file containing a dictionary of ports, each one with two attributes:
|
|
|
|
- Direction: Corresponds to the port directiona and can have the ``input``, ``output``, ``clock`` values.
|
|
Note that the ``clock`` value is implicitly considered also as an ``input``.
|
|
- Width: Indicates the width of the port bus.
|
|
|
|
As an example of parameter please, refer to the following::
|
|
|
|
{
|
|
"CFGRESET": {
|
|
"direction": "input",
|
|
"width": 1
|
|
},
|
|
"CLKRSVD0": {
|
|
"direction": "input",
|
|
"width": 1
|
|
}
|
|
}
|