flowchart LR
    subgraph End devices
        subgraph USB devices
            SDRMini["LimeSDR-Mini"]
            SDR["LimeSDR-USB"]
        end
        subgraph PCIe devices
            X3["LimeSDR X3"]
            XTRX["LimeSDR XTRX"]
            MMX8["LimeSDR MMX8"]
        end
    end

    subgraph Communication libraries
        subgraph USB
            subgraph UNIX
                libusb["libusb library"]
            end
            subgraph Windows
                Cypress["Cypress FX3 library"]
                FTD3XX["FTD3XX Library"]
            end
        end
        subgraph PCIe
            litepcie["litepcie library"]
        end
    end

    TRXLooper-->IDMA

    IDMA-.->LitePCIeDMA-->LitePCIe-->litepcie-->X3 & XTRX & MMX8
    IDMA-.->USBDMAEmulation-->IUSB-.->FX3 & FT601

    FX3-->|On Windows|Cypress-->SDR
    FT601-->|On Windows|FTD3XX-->SDRMini
    FX3 & FT601-->|On UNIX|libusb

    libusb-->|Using FT601|SDRMini 
    libusb-->|Using FX3|SDR
