This is a fast generative model for stochastic memory cells. It helps determine how real-world devices would perform in large-scale circuits, for example when used as resistive weights in a neuromorphic system.
The model is trained on measurement data and closely replicates
- cross-correlations and history dependence of switching parameters
- cycle-to-cycle and device-to-device distributions
- multi-level resistance states
- resistance non-linearity
It is currently implemented in
- Julia for machine learning and general purpose programming (Synaptogen.jl)
- Python (NumPy) (Synaptogen.py)
- Verilog-A for circuit-level simulations (Synaptogen.va)
You can check the respective subdirectories for instructions and examples.
You can learn more about the model in the following publications:
A high throughput generative vector autoregression model for stochastic synapses
Synaptogen: A cross-domain generative device model for large-scale neuromorphic circuit design
- Tyler Hennen (Synaptogen.jl & Synaptogen.py)
- Leon Brackmann (Synaptogen.va)