⚠️ Under Construction
This repository is actively evolving. Updates will be pushed regularly.
LIMCA is a novel framework that leverages Large Language Models (LLMs) to automate the design and evaluation of analog In-Memory Computing (IMC) crossbar architectures. By integrating an automated pipeline for SPICE netlist generation and validation, LIMCA significantly reduces design space exploration time and minimizes human intervention—all while satisfying strict power, area, and accuracy constraints.
Think of LIMCA as your intelligent hardware design assistant: just like how a skilled engineer can translate system requirements into detailed circuit designs, LIMCA uses LLMs to automatically generate and optimize IMC architectures based on your specifications.
- 🤖 Automated Design Generation — Generate IMC crossbar designs under constraints (e.g., power ≤ 3 W, accuracy ≥ 96%)
- 🔧 LLM-Based SPICE Netlist Creation — Translate high-level specs into detailed SPICE netlists
- 🚫👨💻 No-Human-In-Loop (NHIL) Verification — Automated verification for hardware-aware constraints
- 📊 Extensible IMC Dataset — Structured dataset capturing 400+ analog/digital IMC variants
- 🔄 Design Space Exploration — Systematic exploration across technology nodes and device types
- ⚡ Hardware Automation — Streamlined workflow from specification to validated design
LIMCA Framework
├── 🧠 LLM Engine (Design Generation)
├── 🔌 SPICE Netlist Generator
├── ✅ NHIL Verification System
├── 📈 Performance Analyzer
└── 📚 IMC Design Database
This project builds upon and references iCAS-Lab/IMAC-Sim as a Git submodule. We do not copy code from IMAC-Sim; we reference it at extern/IMAC-Sim.
💡 Important: If you're cloning this repository, please use the
--recurse-submodulesflag below to fetch IMAC-Sim.
- Python 3.8 or higher
- Git with submodule support
- SPICE simulator (for netlist validation) - HSPICE
# Generate IMC crossbar design with constraints
limca generate \
--spec configs/crossbar/16x16_7nm_RRAM \
--constraints power<=3W accuracy>=96% \
--out runs/exp001
# Verify generated design
limca verify --run runs/exp001 --nhil
# Analyze results
limca analyze --run runs/exp001 --report# Generate variations across technology nodes
python scripts/generate_variations.py \
--template configs/base_template.py \
--output datasets/imc_variations \
--tech-nodes 7nm,14nm,16nm \
--devices MRAM,RRAM,PCMOur comprehensive IMC dataset includes:
- 400+ Design Variants across multiple technology nodes (7nm to 20nm)
- 4 Memory Technologies: MRAM, RRAM, CBRAM, PCM
- 3 Cell Architectures: 1T1R, 2T1R, 1TG1R
- Performance Metrics: Power consumption, area, accuracy, error rates
- SPICE Netlists: Validated circuit implementations
| Technology Node | Memory Type | Cell Type | Configurations | Status |
|---|---|---|---|---|
| 7nm - 20nm | MRAM | 1T1R, 2T1R, 1TG1R | 72 variants | ✅ Complete |
| 7nm - 20nm | RRAM | 1T1R, 2T1R, 1TG1R | 72 variants | ✅ Complete |
| 7nm - 20nm | CBRAM | 1T1R, 2T1R, 1TG1R | 72 variants | ✅ Complete |
| 7nm - 20nm | PCM | 1T1R, 2T1R, 1TG1R | 72 variants | ✅ Complete |
LIMCA is designed for researchers and engineers working on:
- In-Memory Computing Architecture Design
- Hardware-Software Co-Design
- AI Accelerator Development
- Neuromorphic Computing Systems
- Edge AI Hardware Optimization
We welcome contributions! Please see our Contributing Guidelines for details.
---
## 📚 Citation
If you use LIMCA in your research, please cite our paper:
```bibtex
@misc{vungarala2025limcallmautomatinganalog,
title={LIMCA: LLM for Automating Analog In-Memory Computing Architecture Design Exploration},
author={Deepak Vungarala and Md Hasibul Amin and Pietro Mercati and Arnob Ghosh and Arman Roohi and Ramtin Zand and Shaahin Angizi},
year={2025},
eprint={2503.13301},
archivePrefix={arXiv},
primaryClass={cs.AR},
url={https://arxiv.org/abs/2503.13301},
}
This project is licensed under the MIT License.
Acknowledgment: We reference iCAS-Lab/IMAC-Sim as an external dependency via Git submodule. Please consult their repository for their licensing terms. No code from IMAC-Sim is copied into this repository.
- 📫 Issues: GitHub Issues
- 💬 Discussions: GitHub Discussions
- 📧 Email: Contact the maintainers through GitHub