From bd1113b303c687a00b2dc46b8fe63ff8d430abba Mon Sep 17 00:00:00 2001
From: "Travis F. Collins" <travis.collins@analog.com>
Date: Fri, 1 Nov 2024 10:33:22 -0600
Subject: [PATCH 1/5] Enhance AD9084 class to access side B DMAs and DDSs

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
---
 adi/ad9084.py | 64 +++++++++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 59 insertions(+), 5 deletions(-)

diff --git a/adi/ad9084.py b/adi/ad9084.py
index 4f48d97ce..3b689386b 100644
--- a/adi/ad9084.py
+++ b/adi/ad9084.py
@@ -4,7 +4,9 @@
 
 from typing import Dict, List
 
+from adi.adrv9002 import rx1, rx2, tx1, tx2
 from adi.context_manager import context_manager
+from adi.obs import obs, remap, tx_two
 from adi.rx_tx import rx_tx
 from adi.sync_start import sync_start
 
@@ -59,19 +61,39 @@ class ad9084(rx_tx, context_manager, sync_start):
 
     _complex_data = True
     _rx_channel_names: List[str] = []
+    _rx2_channel_names: List[str] = []
     _tx_channel_names: List[str] = []
+    _tx2_channel_names: List[str] = []
     _tx_control_channel_names: List[str] = []
     _rx_coarse_ddc_channel_names: List[str] = []
     _tx_coarse_duc_channel_names: List[str] = []
     _rx_fine_ddc_channel_names: List[str] = []
     _tx_fine_duc_channel_names: List[str] = []
     _dds_channel_names: List[str] = []
+    _dds2_channel_names: List[str] = []
     _device_name = ""
 
     _path_map: Dict[str, Dict[str, Dict[str, List[str]]]] = {}
 
-    def __init__(self, uri=""):
-
+    def __init__(
+        self,
+        uri="",
+        rx1_device_name="axi-ad9084-rx-hpc",
+        rx2_device_name="axi-ad9084b-rx-b",
+        tx1_device_name="axi-ad9084-tx-hpc",
+        tx2_device_name="axi-ad9084-tx-b",
+    ):
+        """Create a new instance of the AD9084 MxFE
+
+        rx1_device_name is used as the name for the control device and RX1/TX1 data device
+
+        Args:
+            uri: URI of device
+            rx1_device_name: Name of RX1 device driver. Default is 'axi-ad9084-rx-hpc'
+            rx2_device_name: Name of RX2 device driver. Default is 'axi-ad9084b-rx-b'
+            tx1_device_name: Name of TX1 device driver. Default is 'axi-ad9084-tx-hpc'
+            tx2_device_name: Name of TX2 device driver. Default is 'axi-ad9084-tx-b'
+        """
         # Reset default channel lists
         self._rx_channel_names = []
         self._tx_channel_names = []
@@ -84,10 +106,19 @@ def __init__(self, uri=""):
 
         context_manager.__init__(self, uri, self._device_name)
         # Default device for attribute writes
-        self._ctrl = self._ctx.find_device("axi-ad9084-rx-hpc")
+        self._ctrl = self._ctx.find_device(rx1_device_name)
         # Devices with buffers
-        self._rxadc = self._ctx.find_device("axi-ad9084-rx-hpc")
-        self._txdac = self._ctx.find_device("axi-ad9084-tx-hpc")
+        self._rxadc = self._ctx.find_device(rx1_device_name)
+        self._txdac = self._ctx.find_device(tx1_device_name)
+        self._rxadc2 = self._ctx.find_device(rx2_device_name)
+        self._txdac2 = self._ctx.find_device(tx2_device_name)
+        # Checks
+        for dev, name in zip(
+            [self._rxadc, self._txdac, self._rxadc2, self._txdac2],
+            [rx1_device_name, tx1_device_name, rx2_device_name, tx2_device_name],
+        ):
+            if dev is None:
+                raise Exception(f"No device found with name {name}")
 
         # Get DDC and DUC mappings
         paths = {}
@@ -101,16 +132,27 @@ def __init__(self, uri=""):
         for ch in self._rxadc.channels:
             if ch.scan_element and not ch.output:
                 self._rx_channel_names.append(ch._id)
+        for ch in self._rxadc2.channels:
+            if ch.scan_element and not ch.output:
+                self._rx2_channel_names.append(ch._id)
         for ch in self._txdac.channels:
             if ch.scan_element:
                 self._tx_channel_names.append(ch._id)
             else:
                 self._dds_channel_names.append(ch._id)
+        for ch in self._txdac2.channels:
+            if ch.scan_element:
+                self._tx2_channel_names.append(ch._id)
+            else:
+                self._dds2_channel_names.append(ch._id)
 
         # Sort channel names
         self._rx_channel_names = _sortconv(self._rx_channel_names)
+        self._rx2_channel_names = _sortconv(self._rx2_channel_names)
         self._tx_channel_names = _sortconv(self._tx_channel_names)
+        self._tx2_channel_names = _sortconv(self._tx2_channel_names)
         self._dds_channel_names = _sortconv(self._dds_channel_names, dds=True)
+        self._dds2_channel_names = _sortconv(self._dds2_channel_names, dds=True)
 
         # Map unique attributes to channel properties
         self._rx_fine_ddc_channel_names = []
@@ -132,6 +174,18 @@ def __init__(self, uri=""):
                         self._tx_coarse_duc_channel_names.append(channels[0])
                         self._tx_fine_duc_channel_names += channels
 
+        # Setup second DMA path
+        self._rx2 = obs(self._ctx, self._rxadc2, self._rx2_channel_names)
+        setattr(ad9084, "rx1", rx1)
+        setattr(ad9084, "rx2", rx2)
+        remap(self._rx2, "rx_", "rx2_", type(self))
+
+        self._tx2 = tx_two(self._ctx, self._txdac2, self._tx2_channel_names)
+        setattr(ad9084, "tx1", tx1)
+        setattr(ad9084, "tx2", tx2)
+        remap(self._tx2, "tx_", "tx2_", type(self))
+        remap(self._tx2, "dds_", "dds2_", type(self))
+
         rx_tx.__init__(self)
         sync_start.__init__(self)
         self.rx_buffer_size = 2 ** 16

From d3f281733b2a2ab65fe82da4ecb3d18f95b1e810 Mon Sep 17 00:00:00 2001
From: "Travis F. Collins" <travis.collins@analog.com>
Date: Fri, 1 Nov 2024 10:33:46 -0600
Subject: [PATCH 2/5] Add tests for new AD9084 side B features

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
---
 test/emu/hardware_map.yml | 14 ++++++++++++++
 test/test_ad9084.py       | 25 +++++++++++++++++++++++++
 2 files changed, 39 insertions(+)

diff --git a/test/emu/hardware_map.yml b/test/emu/hardware_map.yml
index 48b1938f9..4ba0ac05d 100644
--- a/test/emu/hardware_map.yml
+++ b/test/emu/hardware_map.yml
@@ -272,6 +272,20 @@ packrf:
   - cf-ad9361-lpc,4
   - pyadi_iio_class_support:
       - ad9361
+adsy1100:
+    - axi-ad9084-rx-hpc
+    - axi-ad9084-tx-hpc
+    - axi-ad9084b-rx-b
+    - axi-ad9084-tx-b
+    - pyadi_iio_class_support:
+        - ad9084
+    - emulate:
+        - filename: adsy1100.xml
+        - data_devices:
+            - iio:device4
+            - iio:device5
+            - iio:device6
+            - iio:device7
 
 # Generics
 ad9361:
diff --git a/test/test_ad9084.py b/test/test_ad9084.py
index 291b5e3b8..6c994686f 100644
--- a/test/test_ad9084.py
+++ b/test/test_ad9084.py
@@ -304,3 +304,28 @@ def test_ad9084_nco_loopback(
 
 
 #########################################
+@pytest.mark.iio_hardware("adsy1100")
+def test_split_rx_buffers(iio_uri):
+    import adi
+
+    dev = adi.ad9084(uri=iio_uri)
+    dev.rx_buffer_size = 2 ** 10
+
+    d = dev.rx()
+    d1 = dev.rx1()
+    d2 = dev.rx2()
+
+    assert d is not None
+    assert d1 is not None
+    assert d2 is not None
+
+
+#########################################
+@pytest.mark.iio_hardware("adsy1100")
+@pytest.mark.parametrize("classname", [(classname)])
+@pytest.mark.parametrize("channel", [0, 1])
+@pytest.mark.parametrize("use_tx2", [False, True])
+def test_ad9084_tx_data_split_buffers(
+    test_dma_tx, iio_uri, classname, channel, use_tx2
+):
+    test_dma_tx(iio_uri, classname, channel, use_tx2)

From c1f4ddbbb1809817764d4e4248068453516e69a5 Mon Sep 17 00:00:00 2001
From: "Travis F. Collins" <travis.collins@analog.com>
Date: Fri, 1 Nov 2024 10:34:06 -0600
Subject: [PATCH 3/5] Update doc for AD9084 side B features

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
---
 doc/source/devices/adi.ad9084.rst | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/doc/source/devices/adi.ad9084.rst b/doc/source/devices/adi.ad9084.rst
index 7025ab869..c3e6cc560 100644
--- a/doc/source/devices/adi.ad9084.rst
+++ b/doc/source/devices/adi.ad9084.rst
@@ -1,6 +1,8 @@
 ad9081
 =================
 
+AD9084 is a tiled chip with 2 halves or sides. The control interfaces are unified but the DMA and DDS controls are split into multiple methods. This is similar to ADRV9002 and its split DMA modes. There are multiple **rx** and **tx** methods to control the DMA and DDS for each side of the chip. The **rx** (and **rx1**) and **tx** (and **tx1**) methods are used to control the DMA and DDS for the first side of the chip. The **rx2** and **tx2** methods are used to control the DMA and DDS for the second side of the chip.
+
 .. automodule:: adi.ad9084
    :members:
    :undoc-members:

From 9a63a61a747c181886f147bb202164fa5e90cccd Mon Sep 17 00:00:00 2001
From: "Travis F. Collins" <travis.collins@analog.com>
Date: Fri, 1 Nov 2024 10:34:26 -0600
Subject: [PATCH 4/5] Add emulate context for ADSY1100

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
---
 test/emu/devices/adsy1100.xml | 4 ++++
 1 file changed, 4 insertions(+)
 create mode 100755 test/emu/devices/adsy1100.xml

diff --git a/test/emu/devices/adsy1100.xml b/test/emu/devices/adsy1100.xml
new file mode 100755
index 000000000..31ac21939
--- /dev/null
+++ b/test/emu/devices/adsy1100.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?><!DOCTYPE context [<!ELEMENT context (device | context-attribute)*><!ELEMENT context-attribute EMPTY><!ELEMENT device (channel | attribute | debug-attribute | buffer-attribute)*><!ELEMENT channel (scan-element?, attribute*)><!ELEMENT attribute EMPTY><!ELEMENT scan-element EMPTY><!ELEMENT debug-attribute EMPTY><!ELEMENT buffer-attribute EMPTY><!ATTLIST context name CDATA #REQUIRED description CDATA #IMPLIED><!ATTLIST context-attribute name CDATA #REQUIRED value CDATA #REQUIRED><!ATTLIST device id CDATA #REQUIRED name CDATA #IMPLIED><!ATTLIST channel id CDATA #REQUIRED type (input|output) #REQUIRED name CDATA #IMPLIED><!ATTLIST scan-element index CDATA #REQUIRED format CDATA #REQUIRED scale CDATA #IMPLIED><!ATTLIST attribute name CDATA #REQUIRED filename CDATA #IMPLIED value CDATA #IMPLIED><!ATTLIST debug-attribute name CDATA #REQUIRED value CDATA #IMPLIED><!ATTLIST buffer-attribute name CDATA #REQUIRED value CDATA #IMPLIED>]><context name="network" description="192.168.2.1 Linux buildroot 6.1.0-ge7a40bdae4e5 #1 Mon Jun 10 08:46:07 UTC 2024 microblaze" ><context-attribute name="local,kernel" value="6.1.0-ge7a40bdae4e5" /><context-attribute name="uri" value="ip:192.168.2.1" /><context-attribute name="ip,ip-addr" value="192.168.2.1" /><device id="iio:device0" name="adf4382" ><channel id="altvoltage1" type="output" ><attribute name="en" filename="out_altvoltage1_en" value="0" /><attribute name="frequency" filename="out_altvoltage_frequency" value="12800000000" /><attribute name="output_power" filename="out_altvoltage1_output_power" value="0" /></channel><channel id="altvoltage0" type="output" ><attribute name="en" filename="out_altvoltage0_en" value="1" /><attribute name="frequency" filename="out_altvoltage_frequency" value="12800000000" /><attribute name="output_power" filename="out_altvoltage0_output_power" value="11" /></channel><attribute name="phase" value="0" /><attribute name="waiting_for_supplier" value="0" /><debug-attribute name="direct_reg_access" value="0x18" /></device><device id="iio:device1" name="hmc7044" ><channel id="altvoltage9" name="CORE_CLK_RX" type="output" ><attribute name="frequency" filename="out_altvoltage9_CORE_CLK_RX_frequency" value="200000000" /><attribute name="label" filename="out_altvoltage9_CORE_CLK_RX_label" value="CORE_CLK_RX" /><attribute name="phase" filename="out_altvoltage9_CORE_CLK_RX_phase" value="0.000000" /></channel><channel id="altvoltage10" name="FPGA_REFCLK" type="output" ><attribute name="frequency" filename="out_altvoltage10_FPGA_REFCLK_frequency" value="400000000" /><attribute name="label" filename="out_altvoltage10_FPGA_REFCLK_label" value="FPGA_REFCLK" /><attribute name="phase" filename="out_altvoltage10_FPGA_REFCLK_phase" value="0.000000" /></channel><channel id="altvoltage8" name="CORE_CLK_TX" type="output" ><attribute name="frequency" filename="out_altvoltage8_CORE_CLK_TX_frequency" value="200000000" /><attribute name="label" filename="out_altvoltage8_CORE_CLK_TX_label" value="CORE_CLK_TX" /><attribute name="phase" filename="out_altvoltage8_CORE_CLK_TX_phase" value="0.000000" /></channel><channel id="altvoltage12" name="CORE_CLK_TX_B" type="output" ><attribute name="frequency" filename="out_altvoltage12_CORE_CLK_TX_B_frequency" value="200000000" /><attribute name="label" filename="out_altvoltage12_CORE_CLK_TX_B_label" value="CORE_CLK_TX_B" /><attribute name="phase" filename="out_altvoltage12_CORE_CLK_TX_B_phase" value="0.000000" /></channel><channel id="altvoltage3" name="FPGA_SYSREF" type="output" ><attribute name="frequency" filename="out_altvoltage3_FPGA_SYSREF_frequency" value="6250000" /><attribute name="label" filename="out_altvoltage3_FPGA_SYSREF_label" value="FPGA_SYSREF" /><attribute name="phase" filename="out_altvoltage3_FPGA_SYSREF_phase" value="0.000000" /></channel><channel id="altvoltage11" name="CORE_CLK_RX_B" type="output" ><attribute name="frequency" filename="out_altvoltage11_CORE_CLK_RX_B_frequency" value="200000000" /><attribute name="label" filename="out_altvoltage11_CORE_CLK_RX_B_label" value="CORE_CLK_RX_B" /><attribute name="phase" filename="out_altvoltage11_CORE_CLK_RX_B_phase" value="0.000000" /></channel><channel id="altvoltage1" name="DEV_SYSREF" type="output" ><attribute name="frequency" filename="out_altvoltage1_DEV_SYSREF_frequency" value="6250000" /><attribute name="label" filename="out_altvoltage1_DEV_SYSREF_label" value="DEV_SYSREF" /><attribute name="phase" filename="out_altvoltage1_DEV_SYSREF_phase" value="0.000000" /></channel><attribute name="mute_request" value="0" /><attribute name="reseed_request" value="0" /><attribute name="reset_dividers_request" value="0" /><attribute name="sleep_request" value="0" /><attribute name="sync_pin_mode" value="sync" /><attribute name="sync_pin_mode_available" value="disable sync sysref sync_else_sysref" /><attribute name="sysref_request" value="0" /><attribute name="waiting_for_supplier" value="0" /><debug-attribute name="status" value="ERROR" /><debug-attribute name="direct_reg_access" value="0x0" /></device><device id="iio:device2" name="ad9088-fft-sniffer-A" ><channel id="index" type="input" ><scan-element index="0" format="le:u9/16&gt;&gt;0" /></channel><channel id="voltage0_i" type="input" ><scan-element index="1" format="le:s9/16&gt;&gt;0" /><attribute name="max_threshold" filename="in_voltage0_i_max_threshold" value="20" /><attribute name="min_threshold" filename="in_voltage_min_threshold" value="0" /><attribute name="mode" filename="in_voltage_mode" value="instant" /><attribute name="mode_available" filename="in_voltage_mode_available" value="normal instant" /></channel><channel id="voltage0_q" type="input" ><scan-element index="2" format="le:s9/16&gt;&gt;0" /><attribute name="max_threshold" filename="in_voltage0_q_max_threshold" value="20" /><attribute name="min_threshold" filename="in_voltage_min_threshold" value="0" /><attribute name="mode" filename="in_voltage_mode" value="instant" /><attribute name="mode_available" filename="in_voltage_mode_available" value="normal instant" /></channel><channel id="magn0" type="input" ><scan-element index="3" format="le:u9/16&gt;&gt;0" /><attribute name="max_threshold" filename="in_magn0_max_threshold" value="20" /><attribute name="min_threshold" filename="in_magn_min_threshold" value="0" /><attribute name="mode" filename="in_magn_mode" value="instant" /><attribute name="mode_available" filename="in_magn_mode_available" value="normal instant" /></channel><attribute name="waiting_for_supplier" value="0" /><buffer-attribute name="data_available" value="14336" /><buffer-attribute name="direction" value="in" /><debug-attribute name="adc_sampling_rate_Hz" value="12800000000" /><debug-attribute name="delay_capture_ms" value="100" /><debug-attribute name="run_fft_engine_background" value="0" /><debug-attribute name="adc" value="1" /><debug-attribute name="alpha_factor" value="0" /><debug-attribute name="dither_enable" value="0" /><debug-attribute name="low_power_enable" value="0" /><debug-attribute name="window_enable" value="0" /><debug-attribute name="bottom_fft_enable" value="0" /><debug-attribute name="continuous_mode" value="0" /><debug-attribute name="sort_enable" value="1" /><debug-attribute name="min_threshold" value="0" /><debug-attribute name="max_threshold" value="20" /><debug-attribute name="real_mode" value="1" /><debug-attribute name="fft_enable_sel" value="1" /><debug-attribute name="fft_hold_sel" value="1" /><debug-attribute name="direct_reg_access" value="0xF0" /></device><device id="iio:device3" name="ad9088-fft-sniffer-B" ><channel id="index" type="input" ><scan-element index="0" format="le:u9/16&gt;&gt;0" /></channel><channel id="voltage0_i" type="input" ><scan-element index="1" format="le:s9/16&gt;&gt;0" /><attribute name="max_threshold" filename="in_voltage0_i_max_threshold" value="20" /><attribute name="min_threshold" filename="in_voltage_min_threshold" value="0" /><attribute name="mode" filename="in_voltage_mode" value="instant" /><attribute name="mode_available" filename="in_voltage_mode_available" value="normal instant" /></channel><channel id="voltage0_q" type="input" ><scan-element index="2" format="le:s9/16&gt;&gt;0" /><attribute name="max_threshold" filename="in_voltage0_q_max_threshold" value="20" /><attribute name="min_threshold" filename="in_voltage_min_threshold" value="0" /><attribute name="mode" filename="in_voltage_mode" value="instant" /><attribute name="mode_available" filename="in_voltage_mode_available" value="normal instant" /></channel><channel id="magn0" type="input" ><scan-element index="3" format="le:u9/16&gt;&gt;0" /><attribute name="max_threshold" filename="in_magn0_max_threshold" value="20" /><attribute name="min_threshold" filename="in_magn_min_threshold" value="0" /><attribute name="mode" filename="in_magn_mode" value="instant" /><attribute name="mode_available" filename="in_magn_mode_available" value="normal instant" /></channel><attribute name="waiting_for_supplier" value="0" /><buffer-attribute name="data_available" value="0" /><buffer-attribute name="direction" value="in" /><debug-attribute name="adc_sampling_rate_Hz" value="12800000000" /><debug-attribute name="delay_capture_ms" value="100" /><debug-attribute name="run_fft_engine_background" value="0" /><debug-attribute name="adc" value="1" /><debug-attribute name="alpha_factor" value="0" /><debug-attribute name="dither_enable" value="0" /><debug-attribute name="low_power_enable" value="0" /><debug-attribute name="window_enable" value="0" /><debug-attribute name="bottom_fft_enable" value="0" /><debug-attribute name="continuous_mode" value="0" /><debug-attribute name="sort_enable" value="1" /><debug-attribute name="min_threshold" value="0" /><debug-attribute name="max_threshold" value="20" /><debug-attribute name="real_mode" value="1" /><debug-attribute name="fft_enable_sel" value="1" /><debug-attribute name="fft_hold_sel" value="1" /><debug-attribute name="direct_reg_access" value="0xF0" /></device><device id="iio:device4" name="axi-ad9084b-rx-b" ><channel id="voltage0_i" type="input" ><scan-element index="0" format="le:S16/16&gt;&gt;0" /></channel><channel id="voltage0_q" type="input" ><scan-element index="1" format="le:S16/16&gt;&gt;0" /></channel><channel id="voltage1_i" type="input" ><scan-element index="2" format="le:S16/16&gt;&gt;0" /></channel><channel id="voltage1_q" type="input" ><scan-element index="3" format="le:S16/16&gt;&gt;0" /></channel><attribute name="sampling_frequency" value="400000000" /><attribute name="waiting_for_supplier" value="0" /><buffer-attribute name="data_available" value="0" /><buffer-attribute name="direction" value="in" /><buffer-attribute name="length_align_bytes" value="16" /><debug-attribute name="direct_reg_access" value="0xA0300" /></device><device id="iio:device5" name="axi-ad9084-tx-hpc" ><channel id="voltage0_i" type="output" ><scan-element index="0" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage0_i_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage0_i_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage0_q" type="output" ><scan-element index="1" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage0_q_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage0_q_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage1_i" type="output" ><scan-element index="2" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage1_i_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage1_i_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage1_q" type="output" ><scan-element index="3" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage1_q_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage1_q_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="altvoltage3" name="TX1_Q_F2" type="output" ><attribute name="frequency" filename="out_altvoltage3_TX1_Q_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage3_TX1_Q_F2_label" value="TX1_Q_F2" /><attribute name="phase" filename="out_altvoltage3_TX1_Q_F2_phase" value="0" /><attribute name="raw" filename="out_altvoltage3_TX1_Q_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage3_TX1_Q_F2_scale" value="0.000000" /></channel><channel id="altvoltage1" name="TX1_I_F2" type="output" ><attribute name="frequency" filename="out_altvoltage1_TX1_I_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage1_TX1_I_F2_label" value="TX1_I_F2" /><attribute name="phase" filename="out_altvoltage1_TX1_I_F2_phase" value="90000" /><attribute name="raw" filename="out_altvoltage1_TX1_I_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage1_TX1_I_F2_scale" value="0.000000" /></channel><channel id="altvoltage0" name="TX1_I_F1" type="output" ><attribute name="frequency" filename="out_altvoltage0_TX1_I_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage0_TX1_I_F1_label" value="TX1_I_F1" /><attribute name="phase" filename="out_altvoltage0_TX1_I_F1_phase" value="90000" /><attribute name="raw" filename="out_altvoltage0_TX1_I_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage0_TX1_I_F1_scale" value="0.251160" /></channel><channel id="altvoltage7" name="TX2_Q_F2" type="output" ><attribute name="frequency" filename="out_altvoltage7_TX2_Q_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage7_TX2_Q_F2_label" value="TX2_Q_F2" /><attribute name="phase" filename="out_altvoltage7_TX2_Q_F2_phase" value="0" /><attribute name="raw" filename="out_altvoltage7_TX2_Q_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage7_TX2_Q_F2_scale" value="0.000000" /></channel><channel id="altvoltage6" name="TX2_Q_F1" type="output" ><attribute name="frequency" filename="out_altvoltage6_TX2_Q_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage6_TX2_Q_F1_label" value="TX2_Q_F1" /><attribute name="phase" filename="out_altvoltage6_TX2_Q_F1_phase" value="0" /><attribute name="raw" filename="out_altvoltage6_TX2_Q_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage6_TX2_Q_F1_scale" value="0.251160" /></channel><channel id="altvoltage5" name="TX2_I_F2" type="output" ><attribute name="frequency" filename="out_altvoltage5_TX2_I_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage5_TX2_I_F2_label" value="TX2_I_F2" /><attribute name="phase" filename="out_altvoltage5_TX2_I_F2_phase" value="90000" /><attribute name="raw" filename="out_altvoltage5_TX2_I_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage5_TX2_I_F2_scale" value="0.000000" /></channel><channel id="altvoltage2" name="TX1_Q_F1" type="output" ><attribute name="frequency" filename="out_altvoltage2_TX1_Q_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage2_TX1_Q_F1_label" value="TX1_Q_F1" /><attribute name="phase" filename="out_altvoltage2_TX1_Q_F1_phase" value="0" /><attribute name="raw" filename="out_altvoltage2_TX1_Q_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage2_TX1_Q_F1_scale" value="0.251160" /></channel><channel id="altvoltage4" name="TX2_I_F1" type="output" ><attribute name="frequency" filename="out_altvoltage4_TX2_I_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage4_TX2_I_F1_label" value="TX2_I_F1" /><attribute name="phase" filename="out_altvoltage4_TX2_I_F1_phase" value="90000" /><attribute name="raw" filename="out_altvoltage4_TX2_I_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage4_TX2_I_F1_scale" value="0.251160" /></channel><attribute name="sync_start_enable" value="disarm" /><attribute name="sync_start_enable_available" value="arm disarm trigger_manual" /><attribute name="waiting_for_supplier" value="0" /><buffer-attribute name="data_available" value="0" /><buffer-attribute name="direction" value="out" /><buffer-attribute name="length_align_bytes" value="16" /><debug-attribute name="pl_ddr_fifo_enable" value="1" /><debug-attribute name="direct_reg_access" value="0x90262" /></device><device id="iio:device6" name="axi-ad9084-tx-b" ><channel id="voltage0_i" type="output" ><scan-element index="0" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage0_i_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage0_i_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage0_q" type="output" ><scan-element index="1" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage0_q_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage0_q_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage1_i" type="output" ><scan-element index="2" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage1_i_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage1_i_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage1_q" type="output" ><scan-element index="3" format="le:S16/16&gt;&gt;0" /><attribute name="calibphase" filename="out_voltage1_q_calibphase" value="0.000000" /><attribute name="calibscale" filename="out_voltage1_q_calibscale" value="1.000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="altvoltage3" name="TX1_Q_F2" type="output" ><attribute name="frequency" filename="out_altvoltage3_TX1_Q_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage3_TX1_Q_F2_label" value="TX1_Q_F2" /><attribute name="phase" filename="out_altvoltage3_TX1_Q_F2_phase" value="0" /><attribute name="raw" filename="out_altvoltage3_TX1_Q_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage3_TX1_Q_F2_scale" value="0.000000" /></channel><channel id="altvoltage1" name="TX1_I_F2" type="output" ><attribute name="frequency" filename="out_altvoltage1_TX1_I_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage1_TX1_I_F2_label" value="TX1_I_F2" /><attribute name="phase" filename="out_altvoltage1_TX1_I_F2_phase" value="90000" /><attribute name="raw" filename="out_altvoltage1_TX1_I_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage1_TX1_I_F2_scale" value="0.000000" /></channel><channel id="altvoltage0" name="TX1_I_F1" type="output" ><attribute name="frequency" filename="out_altvoltage0_TX1_I_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage0_TX1_I_F1_label" value="TX1_I_F1" /><attribute name="phase" filename="out_altvoltage0_TX1_I_F1_phase" value="90000" /><attribute name="raw" filename="out_altvoltage0_TX1_I_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage0_TX1_I_F1_scale" value="0.251160" /></channel><channel id="altvoltage7" name="TX2_Q_F2" type="output" ><attribute name="frequency" filename="out_altvoltage7_TX2_Q_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage7_TX2_Q_F2_label" value="TX2_Q_F2" /><attribute name="phase" filename="out_altvoltage7_TX2_Q_F2_phase" value="0" /><attribute name="raw" filename="out_altvoltage7_TX2_Q_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage7_TX2_Q_F2_scale" value="0.000000" /></channel><channel id="altvoltage6" name="TX2_Q_F1" type="output" ><attribute name="frequency" filename="out_altvoltage6_TX2_Q_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage6_TX2_Q_F1_label" value="TX2_Q_F1" /><attribute name="phase" filename="out_altvoltage6_TX2_Q_F1_phase" value="0" /><attribute name="raw" filename="out_altvoltage6_TX2_Q_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage6_TX2_Q_F1_scale" value="0.251160" /></channel><channel id="altvoltage5" name="TX2_I_F2" type="output" ><attribute name="frequency" filename="out_altvoltage5_TX2_I_F2_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage5_TX2_I_F2_label" value="TX2_I_F2" /><attribute name="phase" filename="out_altvoltage5_TX2_I_F2_phase" value="90000" /><attribute name="raw" filename="out_altvoltage5_TX2_I_F2_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage5_TX2_I_F2_scale" value="0.000000" /></channel><channel id="altvoltage2" name="TX1_Q_F1" type="output" ><attribute name="frequency" filename="out_altvoltage2_TX1_Q_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage2_TX1_Q_F1_label" value="TX1_Q_F1" /><attribute name="phase" filename="out_altvoltage2_TX1_Q_F1_phase" value="0" /><attribute name="raw" filename="out_altvoltage2_TX1_Q_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage2_TX1_Q_F1_scale" value="0.251160" /></channel><channel id="altvoltage4" name="TX2_I_F1" type="output" ><attribute name="frequency" filename="out_altvoltage4_TX2_I_F1_frequency" value="39996948" /><attribute name="label" filename="out_altvoltage4_TX2_I_F1_label" value="TX2_I_F1" /><attribute name="phase" filename="out_altvoltage4_TX2_I_F1_phase" value="90000" /><attribute name="raw" filename="out_altvoltage4_TX2_I_F1_raw" value="1" /><attribute name="sampling_frequency" filename="out_altvoltage_sampling_frequency" value="400000000" /><attribute name="scale" filename="out_altvoltage4_TX2_I_F1_scale" value="0.251160" /></channel><attribute name="sync_start_enable" value="disarm" /><attribute name="sync_start_enable_available" value="arm disarm trigger_manual" /><attribute name="waiting_for_supplier" value="0" /><buffer-attribute name="data_available" value="0" /><buffer-attribute name="direction" value="out" /><buffer-attribute name="length_align_bytes" value="16" /><debug-attribute name="pl_ddr_fifo_enable" value="1" /><debug-attribute name="direct_reg_access" value="0x90262" /></device><device id="iio:device7" name="axi-ad9084-rx-hpc" ><channel id="voltage0_i" type="input" ><scan-element index="0" format="le:S16/16&gt;&gt;0" /><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage0_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage0_i_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage0_i_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage0_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage0_i_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage0_i_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage0_i_en" value="1" /><attribute name="label" filename="in_voltage0_i_label" value="Side-A:FDDC0->CDDC0->ADC0" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage0_i_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage0_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage0_i_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage0_i_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage0_i_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage0_i_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage0_q" type="input" ><scan-element index="1" format="le:S16/16&gt;&gt;0" /><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage0_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage0_q_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage0_q_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage0_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage0_q_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage0_q_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage0_q_en" value="1" /><attribute name="label" filename="in_voltage0_q_label" value="Side-A:FDDC0->CDDC0->ADC0" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage0_q_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage0_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage0_q_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage0_q_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage0_q_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage0_q_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage1_i" type="input" ><scan-element index="2" format="le:S16/16&gt;&gt;0" /><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage1_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage1_i_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage1_i_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage1_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage1_i_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage1_i_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage1_i_en" value="1" /><attribute name="label" filename="in_voltage1_i_label" value="Side-A:FDDC2->CDDC1->ADC1" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage1_i_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage1_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage1_i_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage1_i_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage1_i_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage1_i_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage1_q" type="input" ><scan-element index="3" format="le:S16/16&gt;&gt;0" /><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage1_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage1_q_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage1_q_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage1_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage1_q_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage1_q_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage1_q_en" value="1" /><attribute name="label" filename="in_voltage1_q_label" value="Side-A:FDDC2->CDDC1->ADC1" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage1_q_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage1_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage1_q_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage1_q_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage1_q_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage1_q_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage2_q" type="input" ><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage2_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage2_q_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage2_q_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage2_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage2_q_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage2_q_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage2_q_en" value="1" /><attribute name="label" filename="in_voltage2_q_label" value="Side-B:FDDC0->CDDC0->ADC0" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage2_q_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage2_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage2_q_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage2_q_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage2_q_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage2_q_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="temp0" type="input" ><attribute name="input" filename="in_temp0_input" value="41000" /><attribute name="label" filename="in_temp0_label" value="Side-A:FDDC0->CDDC0->ADC0" /></channel><channel id="voltage3_q" type="input" ><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage3_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage3_q_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage3_q_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage3_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage3_q_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage3_q_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage3_q_en" value="1" /><attribute name="label" filename="in_voltage3_q_label" value="Side-B:FDDC2->CDDC1->ADC1" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage3_q_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage3_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage3_q_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage3_q_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage3_q_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage3_q_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage2_i" type="input" ><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage2_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage2_i_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage2_i_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage2_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage2_i_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage2_i_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage2_i_en" value="1" /><attribute name="label" filename="in_voltage2_i_label" value="Side-B:FDDC0->CDDC0->ADC0" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage2_i_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage2_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage2_i_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage2_i_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage2_i_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage2_i_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage2_q" type="output" ><attribute name="cfir_en" filename="out_voltage2_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage2_q_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage2_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage2_q_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage2_q_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage2_q_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage2_q_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage2_q_en" value="1" /><attribute name="invsinc_en" filename="out_voltage2_q_invsinc_en" value="1" /><attribute name="label" filename="out_voltage2_q_label" value="Side-B:FDUC0->CDUC0->DAC0" /><attribute name="main_nco_frequency" filename="out_voltage2_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage2_q_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage2_q_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage2_q_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage2_i" type="output" ><attribute name="cfir_en" filename="out_voltage2_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage2_i_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage2_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage2_i_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage2_i_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage2_i_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage2_i_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage2_i_en" value="1" /><attribute name="invsinc_en" filename="out_voltage2_i_invsinc_en" value="1" /><attribute name="label" filename="out_voltage2_i_label" value="Side-B:FDUC0->CDUC0->DAC0" /><attribute name="main_nco_frequency" filename="out_voltage2_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage2_i_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage2_i_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage2_i_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage3_i" type="input" ><attribute name="adc_frequency" filename="in_voltage_adc_frequency" value="12800000000" /><attribute name="cfir_en" filename="in_voltage3_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="in_voltage3_i_cfir_profile_sel" value="0" /><attribute name="channel_6db_digital_gain_en" filename="in_voltage3_i_channel_6db_digital_gain_en" value="1" /><attribute name="channel_nco_frequency" filename="in_voltage3_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="in_voltage3_i_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_phase" filename="in_voltage3_i_channel_nco_phase" value="0" /><attribute name="en" filename="in_voltage3_i_en" value="1" /><attribute name="label" filename="in_voltage3_i_label" value="Side-B:FDDC2->CDDC1->ADC1" /><attribute name="main_hb1_6db_digital_gain_en" filename="in_voltage3_i_main_hb1_6db_digital_gain_en" value="0" /><attribute name="main_nco_frequency" filename="in_voltage3_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="in_voltage_main_nco_frequency_available" value="[-6400000000 1 6400000000]" /><attribute name="main_nco_phase" filename="in_voltage3_i_main_nco_phase" value="0" /><attribute name="main_tb1_6db_digital_gain_en" filename="in_voltage3_i_main_tb1_6db_digital_gain_en" value="0" /><attribute name="nyquist_zone" filename="in_voltage3_i_nyquist_zone" value="odd" /><attribute name="nyquist_zone_available" filename="in_voltage_nyquist_zone_available" value="odd even" /><attribute name="sampling_frequency" filename="in_voltage_sampling_frequency" value="400000000" /><attribute name="test_mode" filename="in_voltage3_i_test_mode" value="off" /><attribute name="test_mode_available" filename="in_voltage_test_mode_available" value="ERROR" /></channel><channel id="voltage1_q" type="output" ><attribute name="cfir_en" filename="out_voltage1_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage1_q_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage1_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage1_q_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage1_q_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage1_q_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage1_q_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage1_q_en" value="1" /><attribute name="invsinc_en" filename="out_voltage1_q_invsinc_en" value="1" /><attribute name="label" filename="out_voltage1_q_label" value="Side-A:FDUC1->CDUC1->DAC1" /><attribute name="main_nco_frequency" filename="out_voltage1_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage1_q_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage1_q_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage1_q_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage0_q" type="output" ><attribute name="cfir_en" filename="out_voltage0_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage0_q_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage0_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage0_q_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage0_q_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage0_q_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage0_q_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage0_q_en" value="1" /><attribute name="invsinc_en" filename="out_voltage0_q_invsinc_en" value="1" /><attribute name="label" filename="out_voltage0_q_label" value="Side-A:FDUC0->CDUC0->DAC0" /><attribute name="main_nco_frequency" filename="out_voltage0_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage0_q_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage0_q_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage0_q_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage3_q" type="output" ><attribute name="cfir_en" filename="out_voltage3_q_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage3_q_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage3_q_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage3_q_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage3_q_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage3_q_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage3_q_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage3_q_en" value="1" /><attribute name="invsinc_en" filename="out_voltage3_q_invsinc_en" value="1" /><attribute name="label" filename="out_voltage3_q_label" value="Side-B:FDUC1->CDUC1->DAC1" /><attribute name="main_nco_frequency" filename="out_voltage3_q_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage3_q_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage3_q_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage3_q_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage1_i" type="output" ><attribute name="cfir_en" filename="out_voltage1_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage1_i_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage1_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage1_i_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage1_i_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage1_i_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage1_i_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage1_i_en" value="1" /><attribute name="invsinc_en" filename="out_voltage1_i_invsinc_en" value="1" /><attribute name="label" filename="out_voltage1_i_label" value="Side-A:FDUC1->CDUC1->DAC1" /><attribute name="main_nco_frequency" filename="out_voltage1_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage1_i_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage1_i_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage1_i_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage0_i" type="output" ><attribute name="cfir_en" filename="out_voltage0_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage0_i_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage0_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage0_i_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage0_i_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage0_i_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage0_i_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage0_i_en" value="1" /><attribute name="invsinc_en" filename="out_voltage0_i_invsinc_en" value="1" /><attribute name="label" filename="out_voltage0_i_label" value="Side-A:FDUC0->CDUC0->DAC0" /><attribute name="main_nco_frequency" filename="out_voltage0_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage0_i_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage0_i_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage0_i_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><channel id="voltage3_i" type="output" ><attribute name="cfir_en" filename="out_voltage3_i_cfir_en" value="0" /><attribute name="cfir_profile_sel" filename="out_voltage3_i_cfir_profile_sel" value="0" /><attribute name="channel_nco_frequency" filename="out_voltage3_i_channel_nco_frequency" value="100000000" /><attribute name="channel_nco_frequency_available" filename="out_voltage_channel_nco_frequency_available" value="[-1600000000 1 1600000000]" /><attribute name="channel_nco_gain_scale" filename="out_voltage3_i_channel_nco_gain_scale" value="ERROR" /><attribute name="channel_nco_phase" filename="out_voltage3_i_channel_nco_phase" value="0" /><attribute name="channel_nco_test_tone_en" filename="out_voltage3_i_channel_nco_test_tone_en" value="0" /><attribute name="channel_nco_test_tone_scale" filename="out_voltage3_i_channel_nco_test_tone_scale" value="0.000000000" /><attribute name="dac_frequency" filename="out_voltage_dac_frequency" value="25600000000" /><attribute name="en" filename="out_voltage3_i_en" value="1" /><attribute name="invsinc_en" filename="out_voltage3_i_invsinc_en" value="1" /><attribute name="label" filename="out_voltage3_i_label" value="Side-B:FDUC1->CDUC1->DAC1" /><attribute name="main_nco_frequency" filename="out_voltage3_i_main_nco_frequency" value="1000000000" /><attribute name="main_nco_frequency_available" filename="out_voltage_main_nco_frequency_available" value="[-12800000000 1 12800000000]" /><attribute name="main_nco_phase" filename="out_voltage3_i_main_nco_phase" value="0" /><attribute name="main_nco_test_tone_en" filename="out_voltage3_i_main_nco_test_tone_en" value="0" /><attribute name="main_nco_test_tone_scale" filename="out_voltage3_i_main_nco_test_tone_scale" value="0.000000000" /><attribute name="sampling_frequency" filename="out_voltage_sampling_frequency" value="400000000" /></channel><attribute name="cfir_config" value="ERROR" /><attribute name="jesd204_fsm_ctrl" value="1" /><attribute name="jesd204_fsm_error" value="0" /><attribute name="jesd204_fsm_paused" value="0" /><attribute name="jesd204_fsm_resume" value="ERROR" /><attribute name="jesd204_fsm_state" value="opt_post_running_stage" /><attribute name="pfilt_config" value="ERROR" /><attribute name="sync_start_enable" value="disarm" /><attribute name="sync_start_enable_available" value="arm disarm trigger_manual" /><attribute name="waiting_for_supplier" value="0" /><buffer-attribute name="data_available" value="0" /><buffer-attribute name="direction" value="in" /><buffer-attribute name="length_align_bytes" value="16" /><debug-attribute name="generic" value="0" /><debug-attribute name="rx_sniffer_test" value="0" /><debug-attribute name="hsci_enable" value="0" /><debug-attribute name="temperature_status" value="ERROR" /><debug-attribute name="chip_version" value="AD9084 Rev. 0 Grade 3" /><debug-attribute name="api_version" value="0.2.41" /><debug-attribute name="bist_prbs_error_counters_jrx" value="A: lane-10 0/0
+A: lane-8 0/0
+B: lane-4 0/0
+B: lane-6 0/0" /><debug-attribute name="bist_prbs_select_jtx" value="0" /><debug-attribute name="bist_prbs_select_jrx" value="0" /><debug-attribute name="status" value="ERROR" /><debug-attribute name="pseudorandom_err_check" value="ERROR" /><debug-attribute name="direct_reg_access" value="0xF0" /></device></context>
\ No newline at end of file

From e7acf211c1e8942d07803dd72e1da7403d8b0eea Mon Sep 17 00:00:00 2001
From: "Travis F. Collins" <travis.collins@analog.com>
Date: Tue, 12 Nov 2024 09:24:06 -0700
Subject: [PATCH 5/5] Use newer ADSY1100 devices modeles for emulation

Signed-off-by: Travis F. Collins <travis.collins@analog.com>
---
 test/test_ad9084.py | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/test/test_ad9084.py b/test/test_ad9084.py
index 6c994686f..65550eee0 100644
--- a/test/test_ad9084.py
+++ b/test/test_ad9084.py
@@ -3,7 +3,8 @@
 
 import pytest
 
-hardware = ["ad9084", "ad9084_tdd"]
+# hardware = ["ad9084", "ad9084_tdd"] # older builds
+hardware = ["adsy1100"]
 classname = "adi.ad9084"
 
 
@@ -96,7 +97,7 @@ def test_ad9084_rx_data(test_dma_rx, iio_uri, classname, channel):
 #########################################
 @pytest.mark.iio_hardware(hardware)
 @pytest.mark.parametrize("classname", [(classname)])
-@pytest.mark.parametrize("channel", [0, 1, 2, 3])
+@pytest.mark.parametrize("channel", [0, 1])
 def test_ad9084_tx_data(test_dma_tx, iio_uri, classname, channel):
     test_dma_tx(iio_uri, classname, channel)
 
@@ -104,7 +105,7 @@ def test_ad9084_tx_data(test_dma_tx, iio_uri, classname, channel):
 #########################################
 @pytest.mark.iio_hardware(hardware)
 @pytest.mark.parametrize("classname", [(classname)])
-@pytest.mark.parametrize("channel", [0, 1, 2, 3])
+@pytest.mark.parametrize("channel", [0, 1])
 @pytest.mark.parametrize(
     "param_set",
     [
@@ -134,7 +135,7 @@ def test_ad9084_cyclic_buffers(
 #########################################
 @pytest.mark.iio_hardware(hardware)
 @pytest.mark.parametrize("classname", [(classname)])
-@pytest.mark.parametrize("channel", [0, 1, 2, 3])
+@pytest.mark.parametrize("channel", [0, 1])
 @pytest.mark.parametrize(
     "param_set",
     [