ISSCC27: A Pulse-Programmable STT-MRAM Stochastic Primitive for Uncertainty-Aware Neural Inference - #198
ISSCC27: A Pulse-Programmable STT-MRAM Stochastic Primitive for Uncertainty-Aware Neural Inference#198taanayd wants to merge 3 commits into
Conversation
Readme file of the notebook
Submission overview — ISSCC 2027 Code-a-ChipA Pulse-Programmable STT-MRAM Stochastic Primitive for Uncertainty-Aware Neural Inference Author: Tanay Das (AMD India) · License: Apache 2.0 Research questionCan a stochastic MTJ be engineered into a calibrated hardware primitive whose probability, electrical interface, physical implementation, variation sensitivity, and system-level behavior are all characterized in one open, reproducible workflow? FlowMTJ physics (Néel-Brown) → pulse-width-controlled switching probability → calibration engine (p* → PW*) → SKY130 CMOS access circuit (official Key results
ScopeThe MTJ is an abstract interface — a fixed behavioral resistor in SPICE and an abstract M2/M3 device in layout (SKY130 has no MTJ process). Switching is decided by the analytical model in Python; ngspice evaluates the resulting electrical state. Variation magnitudes are assumed stress-test values. Not claimed: energy efficiency, a fabricated MRAM cell, or an embedded-MRAM SKY130 implementation. ReproducibilityRuns end-to-end on Google Colab (Runtime → Run all, ~15–25 min). The notebook installs ngspice, downloads a pinned SKY130 PDK build, builds Magic from source, installs Netgen, and fetches MNIST / Fashion-MNIST automatically. If Magic/Netgen cannot be installed, the layout sections fall back to reference results embedded in the notebook and say so explicitly. Note on the failing CI checksBoth checks fail before reaching any notebook: the workflows use |
Submission overview — ISSCC 2027 Code-a-Chip
A Pulse-Programmable STT-MRAM Stochastic Primitive for Uncertainty-Aware Neural Inference
Open-source 1T1MTJ stochastic primitive using a SKY130 CMOS access circuit with an abstract MTJ interface, DRC/LVS-verified layout, device-variation analysis, and Monte-Carlo dropout demonstration.
Author: Tanay Das (AMD India) · License: Apache 2.0
Files:
ISSCC27/submitted_notebooks/stt_mram_uncertainty_aware_inference/— notebook (executed, with outputs),README.md,LICENSEResearch question
Can a stochastic MTJ be engineered into a calibrated hardware primitive whose probability, electrical interface, physical implementation, variation sensitivity, and system-level behavior are all characterized in one open, reproducible workflow?
Flow
MTJ physics (Néel-Brown) → pulse-width-controlled switching probability → calibration engine (p* → PW*) → SKY130 CMOS access circuit (official
sky130_fd_pr__nfet_01v8, ngspice) → Magic layout (cell + 4×4 array) → DRC / LVS / PEX → post-layout simulation → device-variation analysis → Monte-Carlo dropout on MNIST with Fashion-MNIST OODKey results
Scope
The MTJ is an abstract interface — a fixed behavioral resistor in SPICE and an abstract M2/M3 device in layout (SKY130 has no MTJ process). Switching is decided by the analytical model in Python; ngspice evaluates the resulting electrical state. Variation magnitudes are assumed stress-test values. Not claimed: energy efficiency, a fabricated MRAM cell, or an embedded-MRAM SKY130 implementation.
Reproducibility
Runs end-to-end on Google Colab (Runtime → Run all, ~15–25 min). The notebook installs ngspice, downloads a pinned SKY130 PDK build, builds Magic from source, installs Netgen, and fetches MNIST / Fashion-MNIST automatically. If Magic/Netgen cannot be installed, the layout sections fall back to reference results embedded in the notebook and say so explicitly.
Note on the failing CI checks
Both checks fail before reaching any notebook: the workflows use
**/*.ipynb, which in bash withoutshopt -s globstarmatches only one directory level, so notebooks underISSCC27/submitted_notebooks/<project>/are never found ("collected 0 items" / "No such file or directory"). This affects all ISSCC27 submissions. Possible fix: addshopt -s globstarbefore the commands, or usefind . -name "*.ipynb". I have not modified any files outside my project directory, per the submission rules.