File size: 4,032 Bytes
e4cdd5f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | ---
license: apache-2.0
tags:
- neuromorphic
- spiking-neural-networks
- fpga
- verilog
- hardware
- edge-ai
- loihi
- rtl
- noc
- stdp
language:
- en
library_name: neurocore
pipeline_tag: other
---
# Catalyst N1
Open source 128-core neuromorphic processor with full mesh NoC, STDP learning, and RISC-V management. Verilog RTL, validated on FPGA.
## Specifications
| Parameter | Value |
|-----------|-------|
| Cores | 128 |
| Neurons per core | 1,024 |
| Total neurons | 131,072 |
| Neuron model | Leaky Integrate-and-Fire (16-bit fixed-point) |
| Synapse pool | 131,072 entries per core |
| Learning | STDP, 14-opcode programmable learning ISA |
| Network-on-Chip | Configurable XY mesh with multicast |
| Host interface | UART (FPGA) / AXI-Lite (F2) / PCIe MMIO |
| Management | RV32IM RISC-V cluster |
| Multi-chip | Chip link with routing table |
| Clock | 100 MHz (simulation default) |
## Directory Structure
```
catalyst-n1/
rtl/ 25 Verilog modules (core, NoC, memory, host, RISC-V)
tb/ 46 testbenches (unit, integration, regression)
sdk/ Python SDK with CPU, GPU, and FPGA backends
fpga/ FPGA build files (Arty A7, AWS F2, Kria K26)
sim/ Simulation scripts and visualization
Makefile Compile and run simulation
```
## Simulation
Requires [Icarus Verilog](https://github.com/steveicarus/iverilog) (v12+).
```bash
# Compile and run basic simulation
make sim
# Run full regression (25 testbenches)
bash run_regression.sh
# Run a single testbench
iverilog -g2012 -DSIMULATION -o out.vvp \
rtl/sram.v rtl/spike_fifo.v rtl/uart_tx.v rtl/uart_rx.v \
rtl/scalable_core_v2.v rtl/neuromorphic_mesh.v \
rtl/host_interface.v rtl/neuromorphic_top.v rtl/sync_tree.v \
rtl/rv32i_core.v rtl/mmio_bridge.v rtl/rv32im_cluster.v \
tb/tb_p24_final.v
vvp out.vvp
# View waveforms (requires GTKWave)
make waves
```
## SDK
Python SDK for building, simulating, and deploying spiking neural networks. See [`sdk/README.md`](sdk/README.md) for full documentation.
```bash
cd sdk
pip install -e .
```
```python
import neurocore as nc
net = nc.Network()
inp = net.population(100, params={'threshold': 1000, 'leak': 10}, label='input')
hid = net.population(50, params={'threshold': 1000, 'leak': 5}, label='hidden')
out = net.population(10, params={'threshold': 1000, 'leak': 5}, label='output')
net.connect(inp, hid, weight=500, probability=0.3)
net.connect(hid, out, weight=400, probability=0.5)
sim = nc.Simulator()
sim.deploy(net)
for t in range(100):
sim.inject(inp, neuron_ids=[0, 5, 10], current=1500)
sim.step()
result = sim.get_result()
result.raster_plot(show=True)
```
Four backends: CPU simulator, GPU simulator (PyTorch CUDA), FPGA via UART (Arty A7), AWS F2 via PCIe. All share the same API.
## FPGA
### Arty A7
```bash
# Vivado batch build
vivado -mode batch -source fpga/build_vivado.tcl
```
Constraints: `fpga/arty_a7.xdc`. Top module: `fpga/fpga_top.v`.
### AWS F2
```bash
# Build on F2 build instance
cd fpga/f2
bash run_build.sh
```
CL wrapper: `fpga/f2/cl_neuromorphic.sv`. Host driver: `fpga/f2_host.py`.
### Kria K26
```bash
vivado -mode batch -source fpga/kria/build_kria.tcl
```
Wrapper: `fpga/kria/kria_neuromorphic.v`.
## Benchmarks
SHD (Spiking Heidelberg Digits) spoken digit classification:
```bash
cd sdk
python benchmarks/shd_train.py --data-dir benchmarks/data/shd --epochs 200
python benchmarks/shd_deploy.py --checkpoint benchmarks/shd_model.pt --data-dir benchmarks/data/shd
```
Additional benchmarks in `sdk/benchmarks/`: DVS gesture recognition, XOR classification, temporal patterns, scaling, stress tests.
## Links
- [GitHub Repository](https://github.com/catalyst-neuromorphic/catalyst-n1)
- [catalyst-neuromorphic.com](https://catalyst-neuromorphic.com)
- [Cloud API](https://github.com/catalyst-neuromorphic/catalyst-cloud-python)
- [Catalyst-Neurocore](https://github.com/catalyst-neuromorphic/catalyst-neurocore)
## License
Apache 2.0. See [LICENSE](LICENSE).
|