About the Collaboration

So, you’re new to CASPER and the CASPER Community and you want to get started with the tools and hardware. Before that you might be thinking “What is the collaboration about?”, or “Why does CASPER have its own ‘toolflow‘?”.

If not, click here to get started.

The CASPER Philosophy

The CASPER philosophy is that minimizing time-to-science, the time between conception of an instrument and its deployment, is a priority when designing instrumentation. CASPER promotes open-source hardware, software and programming tools, which can be collectively developed by the community and re-used in multiple experiments to best leverage the cost and time of development. The CASPER philosophy favours keeping the hardware development efforts of an instrument as low as possible, and achieving cost efficiency through regular upgrades. This, in turn, allows instruments to best exploit Moore’s law.

CASPER’s design philosophy allows groups with the expertise and budgets to develop hardware to benefit the entire community. To this end, the collaboration is responsible for the development of several generations of open-source FPGA hardware which are compatible with an array of analog-to-digital converters (ADCs) and digital-to-analog converter (DAC) modules. These boards are accompanied by a suite of open-source parameterized libraries, designed to cater for the wide-ranging needs of the radio-astronomy community, and an FPGA-programming toolflow enabling portability of designs between generations of hardware.

CASPER hardware and software now powers over 45 radio-astronomy instruments worldwide including some of the largest, most advanced telescopes ever built, such as the upcoming MeerKAT Array, the newly commissioned Five-hundred metre Spherical Aperture Telescope (FAST), and the Robert C. Byrd Green Bank Telescope. The CASPER group have released two new (Xilinx) FPGA-based boards to the radio-astronomy community and has also overhauled its FPGA-programming toolflow to improve future extensibility and support the latest Xilinx software.

CASPER Tools

There are two main components of the Software-based CASPER Tools involved in designing, generating and programming bitstreams to your CASPER Hardware.

mlib_devel

mlib_devel is a set of DSP libraries and tools maintained by the people of CASPER. Within the collaboration, it is affectionately referred to as The Toolflow. mlib_devel allows you to generate firmware designs which can run on supported Xilinx FPGA hardware platforms

It uses Xilinx ISE/Vivado (depending on your target hardware platform) to perform compiles of designs into FPGA bitcode, and MATLAB Simulink and Xilinx System Generator as a frontend to provide a graphical interface which makes it easy to design DSP pipelines. mlib_devel contains a suite of libraries providing common functionality needed by DSP systems used in radio astronomy, for example: Flexible FFTs, FIR filters, correlator modules, etc. Crucially, it also contains blocks providing high-level interfaces to board-level resources, such as:

  • Memories,
  • High-speed (Ethernet) IO,
  • Analog-to-digital Converters (ADCs), and
  • Digital-to-Analog Converters (DACs)

mlib_devel is designed to be used with casperfpga, a software suite which makes it easy to interact with firmware while it is running on an FPGA. The tools create an ISE/Vivado project which is compiled using a generated TCL script. The output bitstream contains more than just the bitstream and includes major design configuration and a memory map of the devices in the design accessible from software.

casperfpga

casperfpga is a python library used to interact and interface with CASPER Hardware. Functionality includes being able to reconfigure firmware (with images generated by the toolflow), as well as read and write registers across various communication interfaces. Its github wiki lays out all the information you need to get up and running, and then some.

CASPER Mailing List:

The CASPER mail list currently circulates to a few hundred members. We meet each year at the annual collaboration meeting, where developers and users present their research. Check out the meetings pages for information about upcoming meets.