Axon: The STICK Software Development Kit

The brain encodes information using precise spike timing, not just rates or continuous activations. Inspired by this, Axon is a software framework for building, simulating, and compiling symbolic spiking neural networks (SNNs) using the STICK (Spike Time Interval Computational Kernel) model.

Axon Architecture

Axon provides an end-to-end pipeline for deploying interval-coded SNNs to ultra-low-power neuromorphic hardware, such as the ADA chip. It is built for embedded deployment, yet flexible enough for rapid prototyping and evaluation on general-purpose CPUs.

Axon includes:

  • A Python-based simulator for cycle-accurate emulation of interval-coded symbolic computation.
  • A hardware-aware compiler that translates modular spiking circuits into a compact binary model format.
  • A runtime API (RT API) to interface with the ADA coprocessor over TL-UL or SPI.
  • Tools for resource reporting, cycle estimation, and model profiling.

If you’re building symbolic SNNs for embedded inference, control, or cryptographic tasks, Axon bridges software models with neuromorphic execution.


Axon Structure

ComponentDescription
axon.simulatorSpiking network simulator with support for STICK primitives and gating logic
axon.compilerConverts network graphs into optimized model binaries for ADA execution
axon.utilsData loading, waveform generation, testbench scripting

Requirements

Axon is built in Python and depends on:

  • Python ≥ 3.8
  • NumPy
  • NetworkX
  • TQDM
  • Matplotlib (for visual debugging)
  • PyVCD (optional, for waveform output)

To simulate hardware behavior with Verilator (optional for advanced use):

  • Verilator ≥ 5.034
  • C++17 toolchain

Installation

Install the SDK from source:

git clone https://github.com/neucom/axon.git
cd axon
pip install -e .

Example: Multiplication Network

from axon.simulator import Simulator
from axon.networks import MultiplierNetwork
from axon.utils import encode_interval

# Encode input spikes
x1_spikes = encode_interval(0.4)
x2_spikes = encode_interval(0.25)

# Build network
net = MultiplierNetwork()
sim = Simulator(net)

# Inject spikes and simulate
sim.inject(x1=x1_spikes, x2=x2_spikes)
sim.run()

# View results
sim.plot_chronogram()

Citation

If you use Axon or ADA in your research, please cite:

@misc{axon2025,
  title        = {Axon: A Software Development Kit for Symbolic Spiking Networks},
  author       = {Neucom},
  howpublished = {\url{https://github.com/neucom/axon}},
  year         = {2025}
}

Contact

If you’re working with Axon or STICK-based hardware and want to share your application, request features, or report issues, reach out via GitHub Issues or contact the Neucom team at contact@neucom.ai.

Neucom Logo