Vector Network Analyzer

Some interesting links on network analyzers:

Hardware

The basic blocks of the system are shown on the following diagram:

Multichannel Pulse Height Analyzer

The projects/vna directory contains three Tcl files: block_design.tcl, rx.tcl, tx.tcl. The code in these files instantiates, configures and interconnects all the needed IP cores.

Software

The projects/vna/server directory contains the source code of the TCP server (vna.c) that receives control commands and transmits the data to the control program running on a remote PC.

The projects/vna/client directory contains the source code of the control program (vna.py).

vna client

Getting started with MS Windows (pre-built control program)

Getting started with MS Windows (manual Python installation)

C:\Python34\python.exe -m pip install --upgrade pip
C:\Python34\Scripts\pip.exe install matplotlib mpldatacursor
C:\Python34\pythonw.exe vna.py

Getting started with GNU/Linux

sudo apt-get install python3-dev python3-pip python3-numpy python3-pyqt5 libfreetype6-dev
sudo pip3 install matplotlib mpldatacursor
git clone https://github.com/pavel-demin/red-pitaya-notes
cd red-pitaya-notes/projects/vna/client
python3 vna.py

Building from source

The installation of the development machine is described at this link.

The structure of the source code and of the development chain is described at this link.

Setting up the Vivado environment:

source /opt/Xilinx/Vivado/2016.4/settings64.sh

Cloning the source code repository:

git clone https://github.com/pavel-demin/red-pitaya-notes
cd red-pitaya-notes

Building vna.bit:

make NAME=vna tmp/vna.bit

Building vna:

arm-linux-gnueabihf-gcc -static -O3 -march=armv7-a -mcpu=cortex-a9 -mtune=cortex-a9 -mfpu=neon -mfloat-abi=hard -ffast-math -fsingle-precision-constant -mvectorize-with-neon-quad projects/vna/server/vna.c -o vna -lm -lpthread

Building SD card image zip file:

source helpers/vna-ecosystem.sh