SkillAgentSearch skills...

AnalogCoderPro

[TCAD 2026] AnalogCoder-Pro: Unifying Analog Circuit Generation and Optimization via Multi-modal LLMs

Install / Use

/learn @laiyao1/AnalogCoderPro
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

AnalogCoder-Pro: Unifying Analog Circuit Generation and Optimization via Multi-modal LLMs

Yao Lai<sup>1</sup>, Souradip Poddar<sup>2</sup>, Sungyoung Lee<sup>2</sup>, Guojin Chen<sup>3</sup>, Mengkang Hu<sup>1</sup>, Bei Yu<sup>3</sup>, Ping Luo<sup>1</sup>, David Z. Pan<sup>2</sup>.

<sup>1</sup> The University of Hong Kong, <sup>2</sup> The University of Texas at Austin, <sup>3</sup> The Chinese University of Hong Kong.

[Paper]

This work is an extension of AnalogCoder (AAAI 2025) [repo].

🔔 Updates

  • Our work has been accepted in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (TCAD) 2026! 🎉

🎯 Overview

  • Challenge: Analog front-end design still relies heavily on expert intuition and iterative simulations, with limited automation.
  • Solution: AnalogCoder-Pro — a unified multimodal LLM-based framework for analog design automation.
  • Key Features:
    • Joint circuit topology generation and device sizing optimization
    • Automatic generation of performance-specific schematic netlists
    • Multimodal diagnosis & repair using specifications and waveform images
    • Automated extraction of design parameters and parameter space formulation
  • Outcome: Improves design success rate and circuit performance, enabling an end-to-end automated workflow.

✅ Project Checklist

  • [x] Update the LLM run scripts.
  • [x] Update the sample waveform figures.
  • [ ] Update the BO optimization.
  • [ ] Update all ablation study prompts.

🧪 Benchmark

  • Task descriptions are in the file problem_set.tsv.
  • Sample circuits are in the sample_design directory.
  • Test benches are in the problem_check directory.

Environment Settings

git clone git@github.com:laiyao1/AnalogCoderPro.git
cd AnalogCoderPro
conda create -n analog python==3.10
conda activate analog
pip install matplotlib pandas numpy scipy openai
conda install -c conda-forge ngspice -y
conda install -c conda-forge pyspice

Quick Start

python run.py --task_id=19 --num_per_task=3  --model=gpt-5-mini --api_key="[API_KEY]" --base_url="[BASE_URL]"

This script will attempt Mixer generation 3 times. The mapping of task IDs can be found in problem_set.tsv.

📊 Waveform Gallery

Here are example waveforms for different circuit types, demonstrating the appropriate analysis methods for each design.

<table> <colgroup><col style="width:50%"><col style="width:50%"></colgroup> <tr> <td align="center"><strong>Mixer</strong> — Transient + FFT Spectrum</td> <td align="center"><strong>Schmitt Trigger</strong> — Transient + DC Transfer</td> </tr> <tr> <td align="center"><img src="sample_design/p19/p19_waveform.png" alt="Mixer" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> <td align="center"><img src="sample_design/p28/p28_waveform.png" alt="Schmitt Trigger" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> </tr> <tr> <td align="center"><strong>Oscillator</strong> — Transient</td> <td align="center"><strong>Integrator</strong> — Transient</td> </tr> <tr> <td align="center"><img src="sample_design/p22/p22_waveform.png" alt="Oscillator" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> <td align="center"><img src="sample_design/p24/p24_waveform.png" alt="Integrator" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> </tr> <tr> <td align="center"><strong>Differentiator</strong> — Transient</td> <td align="center"><strong>BandStop Filter</strong> — AC</td> </tr> <tr> <td align="center"><img src="sample_design/p25/p25_waveform.png" alt="Differentiator" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> <td align="center"><img src="sample_design/p13/p13_waveform.png" alt="BandStop Filter" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> </tr> <tr> <td align="center"><strong>Comparator</strong> — DC Sweep</td> <td align="center"></td> </tr> <tr> <td align="center"><img src="sample_design/p9/p9_waveform.png" alt="Comparator" style="width:95%; border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,0.1);"></td> <td align="center"></td> </tr> </table>

📚 Citation

If you find our work useful, we would appreciate a citation of our paper.


@article{lai2025analogcoder,
    title={AnalogCoder: Analog Circuit Design via Training-Free Code Generation},
    volume={39},
    DOI={10.1609/aaai.v39i1.32016},
    number={1},
    journal={Proceedings of the AAAI Conference on Artificial Intelligence},
    author={Lai, Yao and Lee, Sungyoung and Chen, Guojin and Poddar, Souradip and Hu, Mengkang and Pan, David Z. and Luo, Ping},
    year={2025},
    pages={379-387}
}

@article{lai2026analogcoderpro,
    author={Lai, Yao and Poddar, Souradip and Lee, Sungyoung and Chen, Guojin and Hu, Mengkang and Yu, Bei and Luo, Ping and Pan, David Z.},
    journal={IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems}, 
    title={AnalogCoder-Pro: Unifying Analog Circuit Generation and Optimization via Multi-modal LLMs}, 
    year={2026},
    doi={10.1109/TCAD.2026.3673493}
}

Related Skills

View on GitHub
GitHub Stars45
CategoryDevelopment
Updated1d ago
Forks7

Languages

Python

Security Score

75/100

Audited on Mar 27, 2026

No findings