CASPER Tutorials

Welcome to the CASPER tutorials page! Here you will find all the current tutorials for the SNAP, SKARAB and Red Pitaya platforms.

The tutorial repository can be found on github and can be downloaded with the command git clone

It is recommended to start with the introduction tutorial for the platform of your liking, then do that platform’s GBE tutorial and finally move onto the spectrometer or correlator tutorial or the next difficulty tutorial.

Currently there are tutorials available for five hardware platforms within the CASPER community:

  1. ROACH
  2. ROACH2
  4. SNAP
  5. Red Pitaya

Environment setup

The recommended OS is Ubuntu (currently 16.04) as it is what the majority of the collaboration are using. This makes it easier for us to support you. If you are so inclined, you could also use Red Hat, but we definitely do not support Windows. You are welcome to try but you will be on your own. You could always run Linux in a VM although this will increase your compile times.

The current compatibility matrix of software needed to run these tutorials is below:

(Note that official support for ROACH plaforms is no longer provided, however this version of mlib_devel contains all ROACH related documentation and ROACH tutorials can be found here)

Hardware Operating System Matlab Version Xilinx Version mlib_devel branch / commit Python Version
ROACH1/2 Ubuntu 14.04 2013b ISE 14.7 branch: roach Python 2.7
SKARAB Ubuntu 16.04 2018a Vivado 2019.1.1 branch: master Python 3
SNAP Ubuntu 16.04 2018a Vivado 2019.1.1 branch: master Python 3
Red Pitaya Ubuntu 16.04 2018a Vivado 2019.1.1 branch: master Python 3

Instructions on setting up an environment in which to run these tutorials can be found here. Instructions on setting up the toolflow-proper can be found here.

Modifications to be run after installs


Xilinx removed support for several hardware pcores we use for ROACH1/2 from ISE 14. So the current solution is to add the following pcores from the Xilinx 11 install to your XPS_ROACH_BASE/pcores folder or to your 14 install directory at Xilinx/14.7/ISE_DS/EDK/hw/XilinxProcessorIPLib/pcore.

OPB pcores

  • bram_if_cntlr_v1_00_a
  • bram_if_cntlr_v1_00_b
  • ipif_common_v1_00_c
  • opb_arbiter_v1_02_e
  • opb_bram_if_cntlr_v1_00_a
  • opb_ipif_v3_00_a
  • opb_opb_lite_v1_00_a
  • opb_v20_v1_10_c
  • proc_common_v1_00_a

Tutorial Instructions

If you are new to astronomy signal processing, here is Tutorial 0: some basic introduction into astronomy signal processing. If you already have a lot of experience on it, you can go directly to the introduction tutorials below for CASPER FPGA design and implementation.

If you are a beginner, we recommend the Step-by-Step tutorials, however if you should get stuck, prefer a less tedious method of learning, or already have decent feel for these tools, links to Completed tutorials are available with commented models.



  1. Introduction Tutorial: Step-by-Step or Completed
  2. 10GbE Tutorial: Step-by-Step or Completed
  3. Spectrometer Tutorial Step-by-Step or Completed
  4. Correlator Tutorial Step-by-Step or Completed
  5. Yellow Block Tutorial: Bidirectional GPIO


  1. Introduction Tutorial Step-by-Step or Completed
  2. 40GbE Tutorial Step-by-Step or Completed
  3. HMC Tutorial Step-by-Step or Completed
  4. Spectrometer Tutorials Step-by-Step or Completed
  5. ADC Synchronous Data Acquisition Tutorials

Red Pitaya

  1. Guide to Setting Up Your New Red Pitaya
  2. Introduction Tutorial Step-by-Step or Completed
  3. ADC and DAC Interface Tutorial Step-by-Step or Completed
  4. Spectrometer Tutorial Step-by-Step or Completed


  2. Getting Started With RFSoC
  3. RFSoC Platform Yellow Block and Simulink Overview Step-by-Step or Completed
  4. Using the RFDC Step-by-Step or Completed
  5. [Under Construction] Spectrometer Tutorial Step-by-Step or Completed
  6. [Under Construction] 100 Gigabit Ethernet Step-by-Step or Completed