# The CASPER Toolflow [![Documentation Status](https://readthedocs.org/projects/casper-toolflow/badge/?version=latest)](https://casper-toolflow.readthedocs.io/en/latest/?badge=latest) Welcome to the CASPER Toolflow repository, `mlib_devel`! ## What is mlib_devel? The `mlib_devel` repository contains a set of FPGA DSP libraries and programming tools developed and maintained by the [Collaboration for Astronomical Signal Processing and Electronics Research (CASPER)](http://casper.berkeley.edu/>). Within the collaboration, this collection of software is affectionately referred to as *The Toolflow.* The CASPER toolflow allows you to generate signal processing designs using MATLAB's graphical programming tool `Simulink`. These designs can be turned into FPGA bitstreams and loaded onto a variety of supported hardware platforms to perform real-time digital signal processing systems. CASPER also provides a Python software library for interacting with running designs: [casperfpga ](https://github.com/casper-astro/casperfpga). ## Using mlib_devel For more information about installing and using the CASPER Toolflow, see the project's [documentation](https://casper-toolflow.readthedocs.io).[![Documentation Status](https://readthedocs.org/projects/casper-toolflow/badge/?version=latest)](https://casper-toolflow.readthedocs.io/en/latest/?badge=latest) CASPER also maintain a set of [tutorials](https://casper-tutorials.readthedocs.io), designed to introduce new users to the toolflow.[![Documentation Status](https://readthedocs.org/projects/casper-tutorials/badge/?version=latest)](https://casper-tutorials.readthedocs.io/en/latest/?badge=latest) > ***Updating an Existing Toolflow Installation*** > >You can always update your installation of `mlib_devel` by pulling updated code from this repository. If you do this, chances are you'll need to update your Simulink models to match your new `mlib_devel` libraries. A script is provided to automate this process. With your model open and active, in your MATLAB prompt, run >```matlab >update_casper_blocks(bdroot) >``` > This script will resynchronize every CASPER block in your design with its latest library version. Depending on the size of your model, it may take many minutes to complete! >As always, back up your designs before attempting such a major operation. And, if you experience problems, please raise Github issues! ## Directory structure
casper_library
Simulink DSP libraries
xps_library
Simulink libraries for tool-flow supported modules (ADC interfaces, Ethernet cores, etc.)
xps_base
HDL code and Xilinx EDK wrappers used in older (ROACH2 and earlier) versions of the toolflow.
docs
Sphinx documentation for the software in this project.
jasper_library
Python and MATLAB scripts required to drive the compilation process. Also platform-dependent configuration information and source-code for IP modules used by the toolflow in the following directories:
jasper_library/platforms
YAML files defining the compile parameters and physical constraints of CASPER-supported FPGA platforms.
jasper_library/golden
Golden boot images for FPGA platforms which require them.
jasper_library/hdl_sources
HDL source files for all toolflow-suppled modules (eg. ADC interfaces, Ethernet cores, etc.).
jasper_library/sw
Codebase for embedded software processors used by the toolflow.
jasper_library/yellow_blocks
Python classes for each yellow block in the simulink xps_library.