Overview#

Basil is a modular data acquisition (DAQ) framework developed by SiLab for the characterization of monolithic and hybrid pixel detectors. It comprises a library of HDL modules (written in Verilog) for custom FPGA readout boards, paired with a collection of Python code that control the hardware over USB, Ethernet, or serial interfaces from a host PC. Basil also includes Python drivers for common lab instruments such as power supplies, oscilloscopes, and other lab equipment.

Features#

Firmware:
Software:
  • Layer structure following hardware

  • Generation based on YAML file

  • Simulator interface allows software test against simulated RTL (thanks to cocotb)

  • Python drivers for lab instruments (power supplies, oscilloscopes, chillers, X-ray tubes, etc.)

Installation#

A (currently-in-need-of-update) version is available via PyPi:

pip install basil-daq

or for development from source:

git clone https://github.com/SiLab-Bonn/basil.git
cd basil
pip install -e .

Simulation#

Basil has a simulation interface (SiSim) which allows communication with a simulator as if talking to real hardware, thanks to cocotb.

To run a simulation you need:
  • a Verilog simulator (e.g. Icarus )

  • cocotb library

  • set interface type to SiSim

Basil unit tests make extensive use of this feature. See the tests folder.

License#

If not stated otherwise:

Host Software:

The host software is distributed under the BSD 3-Clause (“BSD New” or “BSD Simplified”) License.

FPGA Firmware:

The FPGA firmware is distributed under the GNU Lesser General Public License, version 3.0 (LGPLv3).