Energy-efficient, spike-triggered SNN accelerator on PYNQ-Z2 with a native Python/PyTorch-style software stack.
- FPGA target:
Zynq-7020 (PYNQ-Z2) - Canonical PL clock:
80 MHz - Maintained workflow: native library-first
- Supported scenarios:
- GPU training -> FPGA inference
- FPGA on-chip STDP train + inference
git clone https://github.com/metr0jw/Event-Driven-Spiking-Neural-Network-Accelerator-for-FPGA.git
cd Event-Driven-Spiking-Neural-Network-Accelerator-for-FPGA
./setup.shimport numpy as np
from snn_fpga_accelerator import SNNAccelerator
accel = SNNAccelerator(simulation_mode=True)
output = accel.forward(np.array([[0, 0.0, 1.0]], dtype=np.float32))This repository uses a native workflow built around snn_fpga_accelerator.
- Maintained path: native PyTorch-style training/export/runtime
- Removed from supported path:
SpikingJelly auto-conversion
- Fixed-point LIF neuron and event-router hardware
- On-chip STDP and R-STDP support
- Native Python/PyTorch-style API
- Host/runtime tooling for export, parity, and board execution
- RTL + HLS co-design for inference and learning
python examples/pytorch/mnist_training_example.py
python examples/pytorch/r_stdp_learning_example.py
python examples/pytorch/mozafari_rstdp_faithful.pyhardware/
software/python/
examples/
docs/
scripts/
tests/
@misc{lee2025snnaccelerator,
title={Event-Driven Spiking Neural Network Accelerator for FPGA},
author={Lee, Jiwoon},
year={2025},
url={https://github.com/metr0jw/Event-Driven-Spiking-Neural-Network-Accelerator-for-FPGA}
}MIT License - see LICENSE