Hawaii RFSOC quickstart - IAA-BURSTT/document GitHub Wiki

Introduction

This guide assumes that the system has been configured. The document is intended to provide an overview of the basic operation.

The first RFSOC (also referred to as just the FPGA) has a control IP of 192.168.40.215.

account setup (once per account)

Some of the functions mentioned here require setting up the account environment.

  • link the rfsoc working directory (to your home directory)

cd

ln -fs /data/rfsoc .

  • add the following into your .bashrc (/home/your_name/.bashrc)

source /data/kylin/bin/start_bashrc.example

export PATH1=$PATH

alias rfsoc="export PATH=$PATH:$HOME/rfsoc/python_zcu216:$HOME/rfsoc/python_zcu216/config_arp; . /data/kylin/bin/mod_activate.sh rfsoc; cd $HOME/rfsoc/python_zcu216"

alias rfsoc_off="conda deactivate; module rm python/miniconda3; export PATH=$PATH1"

  • the current terminal can be closed. and new terminals will have the needed command to start various environments:

bda --> will start the (bursttda) environment for data analysis

rfsoc --> will start the (rfsoc) environment for interacting with the RFSOC/FPGA

After booting up the server and making all the connections

  • verify/restart the FPGA control DHCP service (dnsmasq) is running

sudo systemctl status dnsmasq

sudo systemctl restart dnsmasq

When the DHCP works properly, one can ping the FPGA or ssh into it. i.e.

ssh 192.168.40.215

  • loading the bitcode

start a terminal as 'ubuntu'

type 'rfsoc' to enable the (rfsoc) python environment, which also switches the working directory to /home/ubuntu/rfsoc/python_zcu216/.

./zcu216_100g_config_log.py -c fpga_configs/burstth1_cal.config 192.168.40.215

  • interacting with loaded kernel

start another terminal as 'ubuntu'

type 'rfsoc'

cd config_arp

python -i zcu_newcontrol.py

(in the interactive python)

fhi = connect(['215'])

status(fhi)

  • capture a snapshot of the FFT spectrum from the FPGA

(in the first (rfsoc) terminal, where the bitcode was loaded)

./zcu216_accum_spec_16inp.py 215 -q -d

start receiving packets with the server

  • verify that packets are being received by the server network interfaces

start a new terminal as 'ubuntu'

wireshark &

(the line indicating data rate for the connected interface should be high, as shown below)

double clicking on the receiver interface will start capturing the raw packets. quickly click the 'stop capture' button (red square) at the top to avoid taking up too much temporary disk space with this capture. the status summary of the capture should look like the figure below:

  • receiving packets

start a new terminal as 'ubuntu'

cd /home/ubuntu/rudp16

sudo ./sock2shmd

sudo ./submit16_h1_cal.sh

to stop the data receiving, type this command:

./sendsocket -cmd -1

  • monitoring the data rate

start another new terminal as 'ubuntu'

cd /home/ubuntu/rudp16

./readshm