README.md 3.89 KB
Newer Older
1 2
# The CASPER Toolflow [![Documentation Status](https://readthedocs.org/projects/casper-toolflow/badge/?version=latest)](https://casper-toolflow.readthedocs.io/en/latest/?badge=latest)

bjbford's avatar
bjbford committed
3

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

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

Jack Hickish's avatar
Jack Hickish committed
8
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
9

Jack Hickish's avatar
Jack Hickish committed
10
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
11 12 13

## Using mlib_devel

Brian Bradford's avatar
Brian Bradford committed
14
For more information about installing and using the CASPER Toolflow, see the project's [documentation](https://casper-toolflow.readthedocs.io).
Jack Hickish's avatar
Jack Hickish committed
15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
If you want to build the documentation for a particular version of this repository you can do so by following [these instructions](docs/README.md).

## Tutorials

CASPER 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 raise Github issues!
Jack Hickish's avatar
Jack Hickish committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58

## 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
59
    <dd>Python classes for each yellow block in the simulink xps_library.</dd>
Jack Hickish's avatar
Jack Hickish committed
60 61 62
    </dl>
  </dd>
</dl>
Brian Bradford's avatar
Brian Bradford committed
63

Wesley New's avatar
Wesley New committed
64
## Getting Involved
Brian Bradford's avatar
Brian Bradford committed
65
If you are a CASPER collaborator, or you’re just interested in what we’re up to, feel free to join our mailing list by sending a blank email [here.](casper+subscribe@lists.berkeley.edu)
Wesley New's avatar
Wesley New committed
66 67

If would like to get involved in the development of the tools, please join our dev mailing list by sending a blank email [here.](casper-dev+subscribe@lists.berkeley.edu)