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 https://github.com/casper-astro/tutorials_devel.git``. 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. Environment setup --------------------- The recommended OS is Ubuntu (currently 20.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 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |SNAP | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |Red Pitaya | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |ZCU216 | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |ZCU208 | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |ZCU111 | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |PYNQ RFSoC 4x2 | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |HTG ZRF16-29DR | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ |HTG ZRF16-49DR | Ubuntu 20.04 | 2021a | Vivado 2021.1 | branch: `m2021a` | Python 3.8 | +----------------+---------------------+--------------------+--------------------+---------------------------------+-------------------+ 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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ **ROACH1/2** 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. Vivado ^^^^^^^^^ **SNAP** 1. Introduction Tutorial: :doc:`Step-by-Step ` or `Completed `_ 2. 10GbE Tutorial: :doc:`Step-by-Step ` or `Completed `__ 3. Spectrometer Tutorial :doc:`Step-by-Step ` or `Completed `__ 4. Correlator Tutorial :doc:`Step-by-Step ` or `Completed `__ 5. Yellow Block Tutorial: :doc:`Bidirectional GPIO ` .. toctree:: :maxdepth: 1 :hidden: :caption: SNAP Tutorials tutorials/snap/tut_intro tutorials/snap/tut_ten_gbe tutorials/snap/tut_spec tutorials/snap/tut_corr tutorials/snap/tut_gpio_bidir **SKARAB** 1. Introduction Tutorial :doc:`Step-by-Step ` or `Completed `__ 2. 40GbE Tutorial :doc:`Step-by-Step ` or `Completed `__ 3. HMC Tutorial :doc:`Step-by-Step ` or `Completed `__ 4. Spectrometer Tutorials :doc:`Step-by-Step ` or `Completed `__ 5. :doc:`ADC Synchronous Data Acquisition Tutorials ` .. toctree:: :maxdepth: 2 :hidden: :caption: SKARAB Tutorials tutorials/skarab/tut_intro tutorials/skarab/tut_40gbe tutorials/skarab/tut_hmc tutorials/skarab/tut_spec/tut_spec_index tutorials/skarab/tut_adc/tut_adc_index **Red Pitaya** 1. :doc:`Guide to Setting Up Your New Red Pitaya ` 2. Introduction Tutorial :doc:`Step-by-Step ` or `Completed `__ 3. ADC and DAC Interface Tutorial :doc:`Step-by-Step ` or `Completed `__ 4. Spectrometer Tutorial :doc:`Step-by-Step ` or `Completed `__ .. toctree:: :maxdepth: 1 :hidden: :caption: Red Pitaya Tutorials tutorials/redpitaya/red_pitaya_setup tutorials/redpitaya/tut_intro tutorials/redpitaya/tut_adc_dac tutorials/redpitaya/tut_spec **RFSoC** 1. :doc:`CASPER RFSoC README ` 2. :doc:`Getting Started With RFSoC ` 3. RFSoC Platform Yellow Block and Simulink Overview :doc:`Step-by-Step ` or `Completed `__ 4. Using the RFDC's ADC :doc:`Step-by-Step ` or `Completed `__ 5. Using the RFDC's DAC :doc:`Step-by-Step ` or `Completed `__ 6. Spectrometer Tutorial :doc:`Step-by-Step ` or `Completed `__ 7. 100 Gigabit Ethernet :doc:`Step-by-Step ` or `Completed `__ .. toctree:: :maxdepth: 1 :hidden: :caption: RFSoC Tutorials tutorials/rfsoc/readme tutorials/rfsoc/tut_getting_started tutorials/rfsoc/tut_platform tutorials/rfsoc/tut_rfdc tutorials/rfsoc/tut_dac tutorials/rfsoc/tut_spec tutorials/rfsoc/tut_100g .. toctree:: :hidden: :maxdepth: 1 :caption: Documentation CASPER Documentation AXI Documentation Block Documentation The CASPER Toolflow Toolflow Sourcecode casperfpga Sourcecode ISE ^^^^^ **ROACH1/2** 1. :doc:`Introduction Tutorial ` 2. :doc:`10GbE Tutorial ` 3. :doc:`Spectrometer Tutorial ` 4. :doc:`Correlator Tutorial ` .. toctree:: :maxdepth: 1 :hidden: :caption: ROACH Tutorials tutorials/roach/tut_intro tutorials/roach/tut_ten_gbe tutorials/roach/tut_spec tutorials/roach/tut_corr **Board Info** 1. :doc:`RFSoC2x2 Board Info ` 2. :doc:`RFSoC4x2 Board Info ` 3. :doc:`ZCU111 Board Info ` 4. :doc:`ZCU208 Board Info ` 5. :doc:`ZCU216 Board Info ` 6. :doc:`ZRF16 Board Info ` .. toctree:: :maxdepth: 1 :hidden: :caption: Board Info tutorials/rfsoc/platforms/rfsoc2x2 tutorials/rfsoc/platforms/rfsoc4x2 tutorials/rfsoc/platforms/zcu111 tutorials/rfsoc/platforms/zcu208 tutorials/rfsoc/platforms/zcu216 tutorials/rfsoc/platforms/zrf16