Software

This page lists software alphabetically that SKA SA is involved in and is publicly available. Many are open-source projects which we either lead or contribute to, many through the CASPER collaboration (our DBE team, in particular). A number of these are consolidated at the SKA SA presence on github: http://github.com/ska-sa and additional CASPER software repositories are hosted at https://github.com/casper-astro. Note also the hardware pages of this website which list some of the open-source hardware designs.

borph_linux_devel - A Linux derivate providing an interesting way to interface to FPGAs

This kernel runs on the Fringe Finder and KAT-7 roaches. Without a kernel wecan't talk to the roaches. We have adapted (ported) borph to the roach boards. Brandon Hamilton has also contributed substantially to this effort. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

Provides a generic interface to ROACH boards along with correlator-specific scripts and functions. Used by most of CASPER collaborators to talk to their ROACH boards. Used by SKA-SA for KAT-7 (and MeerKAT). A

Fabric - Library and command line tool for streamlining use of SSH for application deployment or sysadmin tasks

It provides a basic suite of operations for executing local or remote

shell commands (normally or via sudo) and uploading/downloading files,as well as auxiliary functionality such as prompting the running userfor input, or aborting execution.We use it to automate deployment and other sysadmin tasks, and it isalso used by e.g. the automated shutdown script to turn off the PDUs,etc. Contributor: Neilen Marais. Licence: BSD.

HDL_framework - New Toolflow based on MyHDL aiming to replace the Matlab/Simulink/XSG design environment

We are using MyHDL to create a HDL design-flow framework that enables quick and easy design of FPGA based DSP (Digital Signal Processing) systems. MyHDL enables Python to be used as a Hardware definition language and brings with it the power to simply verify and simulate these designs.

Instead of making a series of system calls that involve file I/O we memory map the FPGA to the user process address space in the PowerPC. Memory mapping forms an association between the FPGA and the user process memory. In doing so, the abstraction is being moved from the kernel to the user application. The performance of a memory mapped FPGA device is measurably better than the previous approach of reading and writing a set of files. The contribution of memory-mapped approach is two-fold: firstly, the overhead of a system call performing I/O operations is eliminated. Secondly, unnecessary memory copies are not kept in the kernel. While the approach gives a performance benefit, it comes with a limitation of user applications requiring to track and provide FPGA symbolic register name to offset mapping. This however can be solved by building suitable logic into the user application and thereby moving the complexity from kernel to userspace. Chief maintainer: Shanly Rajan. License: GPL.

This is a backend for the Python matplotlib package that enables the use of interactive plots within a web browser based on JavaScript and the HTML5 Canvas element. An installable Python package is available at http://pypi.python.org/pypi/mplh5canvas. Chief maintainers: Simon Ratcliffe & Ludwig Schwardt. License: New BSD.

Reference python implementation of the Streaming Protocol for the Exchange of Astronomical Data (SPEAD) that is used to transport data between a variety of subsystemcomponents. Used by the CASPER collaboration as well as DBE and SPT. See also spead2 below. Chief maintainer: Simon Ratcliffe. License: GPL.

Some platforms, such as Mac OS X, do not ship with GNU readline installed. The readline extension module in the standard library of Mac "system" Python uses NetBSD's editline (libedit) library instead, which is a readline replacement with a less restrictive software license. As the alternatives to GNU readline do not have fully equivalent functionality, it is useful to add proper readline support to these platforms. This module achieves this by bundling the standard Python readline module with the GNU readline source code, which is compiled and statically linked to it. The end result is a package which is simple to install and requires no extra shared libraries. The main source code repository is at https://github.com/ludwigschwardt/python-readline. Chief maintainer: Ludwig Schwardt. Licence: GPLv3.

rinit / rinit2- Very small bootstrap utility to program uboot into ROACHES for first time

This is used by ROACH board manufacturers and installations which brick their boards to recover them. Without it, people would have topurchase an abatron jtag programmer. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

roach_monitor - Small utility to interface to the ROACH power management module via the network

This is used to turn on ROACHES remotely and to diagnose certain low-level failures.Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

This Python package provides a framework for fitting functions to data with SciPy which unifies the various available interpolation methods and provides a common interface to them. The main source code repository is at https://github.com/ludwigschwardt/scikits.fitting. Chief maintainer: Ludwig Schwardt. Licence: Modified BSD.

This is a high-performance implementation of the SPEAD protocol with bindings for both C++ and Python. For new development . The main source code repository is at https://github.com/ska-sa/spead2. Chief maintainer: Bruce Merry. Licence: LGPLv3+.

This makes it possible for FPGAs on the roaches to be controlled across the network. We are the primary authors, but most ROACH installations elsewhere also use it, we have received improvements from third parties. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

A reasonably featureful loader: supports network boot,understands USB and has a comprehensive set of builtincommandline functions. We have adapted (ported) uboot from the original version developed in Germany so that it runs on our ROACH boards, without which the ROACHESdon't boot. Chief maintainers: Marc Welz, Shanly Rajan, Adam Barta. Licence: GPL.

A tiny tool to replay UDP streams that have been captured with tcpdump, with control over the playback speed. This is being used for testing with SPEAD streams, but will work for any unidirectional UDP protocol. Chief maintainer: Bruce Merry. Licence: GPL.