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:
Simple single control bus definition
Multiple HDL modules (ex. SPI, SEQ)
Multiple interfaces (UART, USB2, USB3, Ethernet)
- 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:
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).