ADRV9009 and ADRV9009-ZU11EG JESD Parametrization

HDL

If the desired design has a configuration other than the default one, some modifications to the HDL and devicetree are required.

First, check that the project is parametrized for this flow by verifying the MAX_TX/RX/RX_OS_NUM_OF_LANES variable in common/adrv9009zu11eg_bd.tcl.

If that condition is met, skip to the last step in this section.

Otherwise, configure the AXI_XCVR IP with MAX_TX/RX/RX_OS_NUM_OF_LANES instead of TX/RX/RX_OS_NUM_OF_LANES. Check for the ad_xcvrcon function call and use it with a partial lane map as in this example:

ad_xcvrcon  util_adrv9009_som_xcvr axi_adrv9009_som_tx_xcvr axi_adrv9009_som_tx_jesd {0 1 2 3 4 5 6 7} core_clk_a {} $MAX_TX_NUM_OF_LANES {0 1 4 5}

This gives the util the maximum number of lanes, but only binds those in the partial lane map (the last list). The lane map (first list) must contain all lanes; the order may differ depending on hardware configuration and FMC connections.

After making the modifications above, build with:

make TX_JESD_L=4

ADRV9009 Transceiver Evaluation Software

Download the transceiver evaluation software from the Transceiver Evaluation Software page, under the ADRV9008/ADRV9009 Evaluation Software with GUI for Evaluation Board section.

On the first page of the configuration panel, set the device to ADRV9009, the desired device clock frequency, the channels to enable, and the profile for each channel.

https://media.githubusercontent.com/media/analogdevicesinc/system-level/wiki_migration/adrv9009zu11eg_landing/docs/solutions/reference-designs/adrv9009-zu11eg/images/talise3.png

Figure 1 ADRV9009 Transceiver Evaluation Software — configuration panel

Move to the JESD204b Setup tab. Select the lanes to use in the design, keeping in mind that the lanes must correspond to those chosen in HDL.

https://media.githubusercontent.com/media/analogdevicesinc/system-level/wiki_migration/adrv9009zu11eg_landing/docs/solutions/reference-designs/adrv9009-zu11eg/images/talise4.png

Figure 2 ADRV9009 Transceiver Evaluation Software — JESD204b Setup tab

From the top left corner, click Tools → Create Script → Init .c Files. A success message confirms that a .c file has been generated containing values that correspond to the devicetree setup.

Devicetree

Create a new .dts file whose name includes the number of lanes in use (e.g. zynqmp-adrv9009-zu11eg-tx-l4.dts), then include the devicetree file that is normally used. All that remains is to overwrite the JESD parameters that differ, according to the .c file generated by the evaluation software.

Example for adrv9009-zu11eg-tx-l4.dts:

#include "zynqmp-adrv9009-zu11eg-revb-adrv2crr-fmc-revb-jesd204-fsm.dts"
&spi0 {
    trx0_adrv9009: adrv9009-phy@0 {
        /* JESD204 */

        /* JESD204 OBS */
        adi,jesd204-framer-b-m = <4>;

        /* JESD204 TX */
        adi,jesd204-deframer-a-deserializer-lanes-enabled = <0x03>;
    };
    trx1_adrv9009: adrv9009-phy-b@1 {
        /* JESD204 */

        /* JESD204 OBS */
        adi,jesd204-framer-b-m = <4>;

        /* JESD204 TX */
        adi,jesd204-deframer-a-deserializer-lanes-enabled = <0x03>;
    };
};

The parameters overwritten here control the TX number of lanes and the RX_OS number of converters. Because TX and RX_OS share the same clock, it is recommended to use the same M value for both.