This project leverages the Amaranth HDL to test a particle detector ASIC design. It includes a bunch of counters to count pulses from the detector, and a serial protocol to start/stop/reset and read the counters.
- Written in Python using Amaranth HDL.
- Simulates and verifies the counter's behavior.
- Designed for integration with particle detector systems.
- Python 3.10<=>3.14
- Amaranth HDL library.
You first need install Lattice iCE40 toolchain (yosys, nextpnr, icestorm) and iverilog for simulation. On Fedora, you can install them using:
sudo dnf install iverilog icestorm yosys nextpnr python3-pipYou can also have a look to the OSS CAD Suite project, which provides pre-built toolchain binaries for various platforms.
- Clone the repository:
git clone <repository_url> cd ASIC_Counter
- Install python dependencies using uv:
uv venv uv pip install -e .[dev]
- Run tests:
uv run pytest
- Build and program the FPGA:
uv run python -m asic_counter.top --program
- Optionally, specify the number of counter channels:
uv run python -m asic_counter.top --program --channels-count 16
This project is licensed under the GPL-3.0-or-later License. See the LICENSE file for details.