Re: [casper] roach reference designs

2009-12-23 Thread Danny Price

Hey all

To help put the 'C' in CASPER, I've made up some documentation for 
Jason's Workshop 2009 spectrometer tutorial, complete with bad jokes. 
I'll upload the word document to the tutorial directory once I have an 
SVN account, but as I wanted to send it out for christmas, I've put up a 
PDF version on the wiki:


http://casper.berkeley.edu/wiki/Tutorials#Wideband_spectrometer

Hope it comes in handy

Merry Christmas
Danny



[casper] roach reference designs

2009-12-20 Thread Jason Manley

Hi all

It came to my attention that not many people know about the ROACH  
reference designs from the last CASPER workshop. The reference designs  
can be found in SVN here: http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/ 
 and provide a great way to get started with CASPER and ROACH.


The tutorials at the 2009 CASPER workshop are as follows:

1) Introduction
===
Introduction to Simulink, communication with FPGAs. Build a simple  
program that flashes LEDs, counts and adds numbers on demand, captures  
raw ADC data. 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 10.1 libraries and a ROACH board.

   * PDF walkthrough: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut1_intro/tut1_intro.pdf
   * Completed Simulink model file: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut1_intro/tut1.mdl

2) 10GbE, KATCP
===
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 sample scripts for configuring and controlling the system are  
provided. You will need a ROACH board and a 10GbE cable. Please also  
ensure that you're running the latest versions of tcpborphserver and  
tgtap on your ROACH, else the 10GbE may not function correctly. Get  
'em here: http://casper.berkeley.edu/svn/trunk/roach/sw/binaries/

   * PDF walkthrough: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut2_10GbE/tut2_10gbe.pdf
   * Simulink model file: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut2_10GbE/tut2.mdl
   * Python control script: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut2_10GbE/tut2.py

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, but is not  
documented. You'll need a ROACH board and an iADC board. Revision 102  
had a design flaw in the VACC (bit growth), so rev103 adds  
requantisation after the FFT. Careful of configuring this correctly  
for your given signal type. See comments in Python code. Or, you can  
forego to requantisation if you opt for a 64-bit VACC (not  
demonstrated).

   * Revision 103, tested working: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut3_wideband_spec/r_spec_2048_r103.mdl
   * Compiled bitstream, ready for execution on ROACH: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut3_wideband_spec/r_spec_2048_r103_2009_Nov_23_1234.bof
   * Python script to configure it: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut3_wideband_spec/spectrometer.py

4.1) Wideband pocket correlator
===
Build a wideband correlator, ported from the original IBOB design for  
use on ROACH. This is a good starting point for your field-deployable  
correlator and demonstrates the use of requantisation after the FFT.  
It is not documented. Code is commented, so you could probably figure  
it out. You'll need a ROACH board and two iADCs.
   * Revision 311 Simulink model file using standard CASPER 10.1  
libraries: http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut4_1_wideband_poco/poco_wide_10_r311.mdl

   * Revision 311 compiled bitstream, ready for execution on ROACH: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut4_1_wideband_poco/poco_wide_10_r311_2009_Aug_27_1805.bof
   * Python control package, including scripts to plot output: 
http://casper.berkeley.edu/svn/trunk/ref_designs_tutorials/workshop_2009/roach_tut4_1_wideband_poco/poco_wide_0.2.0.tar.gz

4.2) Narrowband pocket correlator INCOMPLETE and UNTESTED
=
Build a 250MHz, 1024 channel single board correlator on ROACH. This  
tutorial demonstrates the use of