| GTPE2\_COMMON Primitive Configuration fuzzer | 
 | ============================================ | 
 |  | 
 | This fuzzer is used to document the parameters corresponding to the GTPE2\_COMMON primitive. | 
 |  | 
 | It uses pre-built JSON containing a dictionary of parameters, each one with four attributes: | 
 |  | 
 | - Type: one of Binary, Integer, String, Boolean. | 
 | - 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 use 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. | 
 |  | 
 | E.g.: | 
 |  | 
 | ```json | 
 | { | 
 |     "PLL0_REFCLK_DIV": { | 
 |         "type": "INT", | 
 |         "values": [1, 2], | 
 |         "encoding": [16, 0], | 
 |         "digits": 5 | 
 |     } | 
 | } | 
 | ``` | 
 |  | 
 | In addition, there exist wires and PIPs that allow the connections of the `GTREFCLK` ports to clocks coming from the device fabric instead of the `IBUFDS_GTE2` primitive. | 
 |  | 
 | In fact, if the clock comes from the device fabric, the physical `GTGREFCLK[01]` port is used instead of the `GTREFCLK[01]` one (even though the design's primitive port is always `GTREFCLK`). | 
 |  | 
 | In the [User Guide (pg 27)](https://www.xilinx.com/support/documentation/user_guides/ug482_7Series_GTP_Transceivers.pdf), it is stated that the `GTGREFCLK[01]` port is used for "internal testing purposes". | 
 | Using this port is highly discouraged to get the reference clock from the fabric, as the recommended way is to get the clock from an external source using the `IBUFDS_GTE2` primitive. | 
 |  | 
 | Therefore, in addition to the parameters, `IN_USE` and `ZINV\INV` features, this fuzzer documents also the `GTREFCLK[01]_USED` and `BOTH_GTREFCLK[01]_USED` features. |