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

Jack Hickish's avatar
Jack Hickish committed
3
Welcome to the CASPER Toolflow repository, `mlib_devel`!
bjbford's avatar
bjbford committed
4

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

Jack Hickish's avatar
Jack Hickish committed
7
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.*
bjbford's avatar
bjbford committed
8

Jack Hickish's avatar
Jack Hickish committed
9
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).
Jack Hickish's avatar
Jack Hickish committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23

## 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!
24
>As always, back up your designs before attempting such a major operation. And, if you experience problems, please raise Github issues!
Jack Hickish's avatar
Jack Hickish committed
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

## 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>
Jack Hickish's avatar
Jack Hickish committed
50
    <dd>Python classes for each yellow block in the simulink xps_library.</dd>
Jack Hickish's avatar
Jack Hickish committed
51 52 53
    </dl>
  </dd>
</dl>