From Casper

Jump to: navigation, search

Set up Guide and Help Page

Casper Berkeley Workshop 2014 Tutorials Help Page


These tutorials were constructed using Xilinx System Generator 14.7 and MATLAB 2012b. Other mutually compatible versions of Xilinx and MATLAB tools may work correctly, but have not been tested.

These tutorials use the casper-astro repository, specifically git commit 4c7ba5efb4

If you plan to use these tutorials on your own system, you are most likely to have success if you use these libraries. You can obtain them from github:

git clone git://github.com/casper-astro/mlib_devel.git

cd mlib_devel

git checkout 4c7ba5efb4

We try to maintain working versions of the following tutorials:

Tutorial 1: Introduction to Simulink

Introduction to Simulink, communication with FPGAs. Build a simple program that flashes LEDs, counts and adds numbers on demand. Communicate with ROACH's FPGA using the PPC's BORPH operating system and also using raw KATCP commands. Includes step-by-step walkthrough for building your design, compiling it, loading onto ROACH and communicating with it.

Prerequisites: just your enthusiastic self, your computer with 11.4 libraries and a ROACH board.

Tutorial 1 Instructions (ROACH1)

Tutorial 1 Instructions (ROACH2)

Tutorial 1 on GIT

Tutorial 1 Model File

Tutorial 2: 10GbE Interface

Construct a design that transmits a counter over 10GbE to another ROACH port. During this tutorial, you will learn more about the CASPER hardware interfaces, communicating with ROACH remotely using KATCP and the supplied Python libraries.

Prerequisites: Introduction tutorial (we expect conceptual understanding of software registers and PPC/FPGA mapped memory regions along with some basic Simulink experience). Also useful, but not required, is some experience in programming in Python, since the sample script for configuring and controlling the system is provided in Python. You will need a ROACH board and a 10GbE cable.

Tutorial 2 Instructions (ROACH1)

Tutorial 2 Instructions (ROACH2)

Tutorial 2 on GIT

Tutorial 2 Model File

Tutorial 2 Python control script

Tutorial 3: Wideband Spectrometer

Build a 512MHz "wideband" spectrometer with 2048 FFT channels on ROACH.

This will introduce the ADC boards, the CASPER DSP libraries including the wideband PFB and FFT blocks as well as demonstrate the use of vector accumulators, shared BRAMs and readout through the PPC's 1GbE port. We will make use of KATCP for remote control of the ROACHes using Python libraries to plot the output.

Prerequisites: tutorials 1 and 2. This design is complete and tested working. You'll need a ROACH board and either a katADC or an iADC board, as well as a synthesiser / clock source.

Tutorial 3 Instructions

Tutorial 3 on GIT

Tutorial 3 Model File

Tutorial 3 Python control script

Tutorial 3 Precompiled Boffile

Tutorial 4: Wideband Pocket Correlator

Build a wideband 2 antenna x 2 polarization correlator, for use on ROACH. This is a good starting point for your field-deployable correlator and demonstrates the use of requantisation after the FFT.

Tutorial 4 Instructions

Tutorial 4 on GIT

Tutorial 5: Heterogeneous Instrumentation

In this tutorial, you will learn how to use a combination of FPGA and Graphics Processing Unit (GPU) technologies to build an astronomical signal-processing instrument. The aim of the tutorial is to use a ROACH board, along with a PC with an NVIDIA Fermi-class GPU to build a PFB spectrometer. This tutorial consists of three parts - an FPGA design that digitizes and transmits time-domain data from a ROACH board to a PC over a 10GbE link, a data acquisition program in Python that records this data to disk, and a CUDA/C GPU program that performs online spectrometry.

Tutorial 5 Instructions

Tutorial 5 on GIT

Tutorial 6: Introduction to embedding Verilog within a Simulink design

This tutorial gives a brief introduction to embedding Verilog (or VHDL) code in your Simulink models using the Xilinx "Black Box" block.

Tutorial 6 Instructions

Tutorial 6 on GIT

Tutorial 7: Creating a Yellow Block

This tutorial will guide you through the creation of a new yellow block interface. Starting with a compile of a skeleton ROACH model, you will learn how the various components of the CASPER toolflow work together to automatically instantiate custom IP in a simulink compile.

Tutorial 7 Instructions

Tutorial 7 on GIT

Tutorial 8: Using PlanAhead to close timing (easy introduction)

Tutorial 8 Instructions

Clocking Options

Clocking Options - Notes on how to choose a User IP Clock Source.


Other Resources

Deprecated Tutorials

Old Tutorials

Personal tools