| =============== | 
 | 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 | 
 |         } | 
 |     } |