README.md 3.1 KB
Newer Older
Jack Hickish's avatar
Jack Hickish committed
1
# The CASPER Toolflow
bjbford's avatar
bjbford committed
2 3 4



Jack Hickish's avatar
Jack Hickish committed
5
## What is mlib_devel?
bjbford's avatar
bjbford committed
6 7


Jack Hickish's avatar
Jack Hickish committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
`mlib_devel` is a set of FPGA DSP libraries and programming tools maintained by the [Collaboration for Astronomical Signal Processing and Electronics Research (CASPER)](http://casper.berkeley.edu/>). Within the collaboration, it is affectionately referred to as *The Toolflow.*

``mlib_devel`` 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).

CASPER also maintain a set of [tutorials](https://casper-tutorials.readthedocs.io), designed to introduce new users to the toolflow.

> ***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 riase Github issues!

## Directory structure

<dl>
  <dt>casper_library</dt>
  <dd>Simulink DSP libraries</dd>
  <dt>xps_library</dt>
  <dd>Simulink libraries for tool-flow supported modules (ADC interfaces, Ethernet cores, etc.)</dd>
  <dt>xps_base</dt>
  <dd>HDL code and Xilinx EDK wrappers used in older (ROACH2 and earlier) versions of the toolflow.</dd>
  <dt>docs</dt>
  <dd><a href="https://casper-toolflow.readthedocs.io">Sphinx documentation</a> for the software in this project.</dd>
  <dt>jasper_library</dt>
  <dd>
    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:
  <dl>
    <dt>jasper_library/platforms</dt>
    <dd>YAML files defining the compile parameters and physical constraints of CASPER-supported FPGA platforms.</dd>
    <dt>jasper_library/golden</dt>
    <dd>Golden boot images for FPGA platforms which require them.</dd>
    <dt>jasper_library/hdl_sources</dt>
    <dd>HDL source files for all toolflow-suppled modules (eg. ADC interfaces, Ethernet cores, etc.).</dd>
    <dt>jasper_library/sw</dt>
    <dd>Codebase for embedded software processors used by the toolflow.</dd>
    <dt>jasper_library/yellow_blocks</dt>
    <dd>Python classes for each yellow block in the simulink `xps_library`.</dd>
    </dl>
  </dd>
</dl>