hudp_setup

Usage
usage: hudp_setup.py [-h] [--netmask NETMASK] [--tx_ip TX_IP] [--rx_ip RX_IP] [--gw GW] [--port PORT] [--run0 RUN0] [--play0 PLAY0] [--broadcast BROADCAST]
                     [--disco DISCO] [--hudp_relay HUDP_RELAY] [--spp SPP] [--hudp_decim HUDP_DECIM]
                     txuut rxuut

Positional Arguments

txuut

transmit uut (if it’s a PC, type one of (‘none’, ‘pc’))

rxuut

rx uut (if it’s a PC, type one of (‘none’, ‘pc’))

Named Arguments

--netmask

netmask

Default: “255.255.255.0”

--tx_ip

tx ip address

Default: “10.12.198.128”

--rx_ip

rx ip address

Default: “10.12.198.129”

--gw

gateway

--port

port

Default: “53676”

--run0

set tx sites+spad or notouch if set elsewhere

Default: “1 1,16,0”

--play0

set rx sites+spad or notouch if set elsewhere

Default: “1 16”

--broadcast

broadcast the data

Default: 0

--disco

enable discontinuity check at index x

--hudp_relay

0..N: relay LLC VI out HUDP txt offset in vector

--spp

samples per packet

Default: 1

--hudp_decim

hudp decimation, 1..16

Default: 1

Outline:

hudp_setup.py : configure Hardware UDP

hudp_setup.py [opts] TXUUT RXUUT

sets up a one way transfer from TXUUT to RXUUT

Increasing spp reduces the packet rate per sample, potentially enabling a higher sample rate (do NOT exceed MTU 1400 bytes)

Increasing decimation reduces the packet rate, suitable for spp=1 low latency control, while full rate data flows to DRAM for archive

The DISCOntinuity check is a packet data checker.

Typically, the TX data comes from ACQ2106 with SPAD enabled, and the DISCO index is SPAD[0], sample ramp.

If either TXUUT or RXUUT is NOT an ACQ2106, or has already been configured for one direction, specify “none”

Examples:

Send data from UUT acq2106_363 at tx_ip ip 10.12.198.128 to UUT acq2106_364 at rx_ip=10.12.198.129:

./user_apps/acq2106/hudp_setup.py --rx_ip=10.12.198.128 --tx_ip 10.12.198.129 --run0='1 1,16,0' --play0='1 16' acq2106_363 acq2106_364

Send data from UUT acq2106_363 at tx_ip ip 10.12.198.128 to non-HUDP destination rx_ip=10.12.198.254:

./user_apps/acq2106/hudp_setup.py --rx_ip=10.12.198.254 --tx_ip 10.12.198.128 --run0='1 1,16,0' acq2106_363 none

Send data from non-HUDP source at tx_ip 10.12.198.254 to UUT acq2106_363 at rx_ip 10.12.198.128:

./user_apps/acq2106/hudp_setup.py --rx_ip=10.12.198.128 --tx_ip 10.12.198.254 --play0='1 16' none acq2106_363

In all cases,

for UUT Tx, run0 specifies data from site1 followed by a 16 column ScratchPAD.

for UUT Rx, play0 specifues datas to site1 followed by a 16 column TrashCAN.

This allows, for example a 32 channel, 16 bit ADC to play data direct to a 32 channel DAC, including instrumentation that could be checked with –disco=16 (SPAD[0] at offset 16 LW)

[pgm@hoy5 acq400_hapi]$ cat /home/pgm/PROJECTS/ACQ400/ACQ420FMC/NOTES/HUDPDEMO.txt
#!/bin/bash
set -x
TX1=${TX1:-acq2106_189}
RX1=${RX1:-acq2106_274}
RX2=${RX2:-acq2106_130}
IP_TX1=${IP_TX1:-10.12.198.128}
IP_RX1=${IP_RX1:-10.12.198.129}
IP_RX2=${IP_RX2:-10.12.198.130}

echo HUDP Demo TX1:$TX1,$IP_TX1 RX1:$RX1,$IP_RX1 RX2:$RX2,$IP_RX2
echo set clk/trg
./user_apps/acq400/sync_role.py --fin=50k --fclk=50k --si5326_bypass 1 --toprole=fpmaster,strg acq2106_189
echo 'UNICAST ->' $RX1
./user_apps/acq2106/hudp_setup.py --tx_ip $IP_TX1 --rx_ip $IP_RX1 --broadcast=0 $TX1 $RX1
read continue
echo 'UNICAST ->' $RX2
./user_apps/acq2106/hudp_setup.py --tx_ip $IP_TX1 --rx_ip $IP_RX2 --broadcast=0 $TX1 $RX2
echo 'BROADCAST ->' $RX1 $RX2 and naboo
./user_apps/acq2106/hudp_setup.py --tx_ip $IP_TX1 --rx_ip $IP_RX1 --broadcast=1 $TX1 $RX1
./user_apps/acq2106/hudp_setup.py --tx_ip $IP_TX1 --rx_ip $IP_RX2 --broadcast=1 $TX1 $RX2
hudp_init(args, uut, ip)[source]
hudp_enable(uut)[source]
init_arp_req(uut)[source]
ip_broadcast(args)[source]
config_tx_uut(txuut, args)[source]
config_rx_uut(rxuut, args)[source]
run_main(args)[source]
get_parser()[source]